ZHCAEM6 October   2024 TPS25751 , TPS26750

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2EEPROM 引导流程
    1. 2.1 引导过程
    2. 2.2 更新 EEPROM 映像
    3. 2.3 命令
    4. 2.4 EEPROM 更新示例
  6. 3源代码示例
    1. 3.1 UpdateRegionOfEeprom()
    2. 3.2 UpdateRegionOfEeprom_Step1
    3. 3.3 UpdateRegionOfEeprom_Step2()
    4. 3.4 UpdatingRegionOfEeprom_Step3()
    5. 3.5 UpdatingRegionOfEeprom_Step4()
    6. 3.6 WriteRegionPointer()
  7. 4从 EEPROM 故障中恢复
  8. 5结语
  9. 6参考资料

WriteRegionPointer()

static int32_t WriteRegionPointer(const uint8_t region_number, const uint32_t value)
{
uint8_t outdata[MAX_BUF_BSIZE] = {0};
s_TPS_flad fladInData = {0};
uint32_t regionVal = 0;
int32_t retVal = -1;
fladInData.flashaddr = region_ptr_start[region_number];
retVal = ExecCmd(FLad, sizeof(fladInData), (uint8_t *)&fladInData, TASK_RET_CODE_LEN, &outdata[0]);
RETURN_ON_ERROR(retVal);
if(0 != outdata[1]) {retVal = -1; goto error;}
retVal = ExecCmd(FLwd, sizeof(uint32_t), (uint8_t *)&value, TASK_RET_CODE_LEN, &outdata[0]);
RETURN_ON_ERROR(retVal);
if(0 != outdata[1]) {retVal = -1; goto error;}
retVal = ExecCmd(FLrd, sizeof(uint32_t), (uint8_t *)&region_ptr_start[region_number],
sizeof(s_TPS_flrdassert), &outdata[0]);
RETURN_ON_ERROR(retVal);
regionVal = (outdata[4] << 24) | (outdata[3] << 16) | (outdata[2] << 8) | (outdata[1] << 0);
if(value != regionVal) {retVal = -1; goto error;}
error:
return retVal;
}