我修改了 FLASH_programming_dcsm_CPU 示例(见附录) ,以进行额外的 Fapi_issueProgrammingCommand ()调用,然后是 ServiceDog (),再是另一个 Fapi_issueProgrammingCommand ()调用。
BufAddr[0] = 0x2;
BufAddr[1] = 0x2;
BufAddr[2] = 0x2;
BufAddr[3] = 0x2;
BufAddr[4] = 0x2;
BufAddr[5] = 0x2;
BufAddr[6] = 0x2;
BufAddr[7] = 0x2;
oReturnCheck = Fapi_issueProgrammingCommand((Uint32 *)0x82000,
BufAddr,
8,
0,
0,
Fapi_DataOnly);
if(oReturnCheck != Fapi_Status_Success)
{
Example_Error(oReturnCheck);
}
/* pet the watchdog */
ServiceDog();
BufAddr[0] = 0x3;
BufAddr[1] = 0x3;
BufAddr[2] = 0x3;
BufAddr[3] = 0x3;
BufAddr[4] = 0x3;
BufAddr[5] = 0x3;
BufAddr[6] = 0x3;
BufAddr[7] = 0x3;
oReturnCheck = Fapi_issueProgrammingCommand((Uint32 *)0x82000,
BufAddr,
8,
0,
0,
Fapi_DataOnly);
if(oReturnCheck != Fapi_Status_Success)
{
Example_Error(oReturnCheck);
}
通过单步调试器并检查内存浏览器,我可以看到第一个 Fapi_issueProgrammingCommand()(第457行)更新了内存中的指定位置。
但第2个 Fapi_issueProgrammingCommand()(第482行)也返回 Fapi_Status_Success,但存储器位置仍包含第457行的值。
在维护看门狗后、我需要进行什么 API 调用? 我尝试使用"Fapi_initializeAPI ()"重新初始化 API、但这没有帮助。
谢谢!
e2e.ti.com/.../flash_5F00_programming_5F00_dcsm_5F00_cpu01.c