主题中讨论的其他器件:C2000WARE
您好!
此代码片段来自以下示例路径:C:\ti\cc2000\C2000Ware_4_02_00_00\device_support\f2837xd\examples\dual\flash_programming\cpu01
Buffer[0]=''A';
对于(I=0、u32Index = Bzero_SectorJ_start;
(u32Index <= Bzero_SectorJ_end)&&
(oReturnCheck == Fapi_Status_Success);I+= 1、u32Index+= 1)
{//发出程序命令
oReturnCheck = Fapi_issueProgrammingCommand ((Uint32 *) u32Index、
缓冲器、1、0、0、Fapi_DataOnly);
//等待闪存程序操作结束
while (Fapi_checkFsmForReady ()== Fapi_Status_FsmBusy);
if (oReturnCheck!= Fapi_Status_Success)
{
Example_Error (oReturnCheck);
}
//读取 FMSTAT 寄存器内容以了解之后的 FSM 状态
//编程命令以查看是否存在与编程操作相关的错误
oFlashStatus = Fapi_getFsmStatus ();
if (oFlashStatus!= 0)
{
//查看闪存 API 文档以了解可能的错误
Example_Error (oReturnCheck);
}
//验证编程的值
oReturnCheck = Fapi_doVerify ((Uint32 *) u32Index、
0、(UINT32*)(缓冲器),
&oFlashStatusWord);
if (oReturnCheck!= Fapi_Status_Success)
{
Example_Error (oReturnCheck);
}
}
我的查询:
1.数据'A'被刷写到扇区 J 的所有地址中、即使我从微控制器上电、我也能够读取数据。
2.这行声明 Fapi_doVerify ((Uint32 *) u32Index、0、(Uint32*)(缓冲区)、 &oFlashStatusWord); 我 通过跟踪和错误方法传递参数、因此当我把这些参数传递为时 0 和 (UINT32*)(缓冲器) 然后我安装了 Fapi_Status_Pass、并且还将数据"A"编程到闪存中。
我想知道计算或分析,这是怎么发生的,即使我跟了闪存 API 文档( https://www.ti.com/lit/ug/spnu629a/spnu629a.pdf?ts=1681972192498&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTMS320F28379D ),但我仍然无法理解它。
3. Fapi_StatusType Fapi_doVerify (Uint32 *pu32StartAddress、Uint32 u32Length、Uint32 *pu32CheckValueBuffer、Fapi_FlashStatusWordType *poFlashStatusWord)这是什么 UINT32 u32Length、UINT32 * pu32CheckValueBuffer 这意味着、请提供一些在闪存地址中写入单个字/多个字的示例。
谢谢。
SID C