打印

280049的Flash写入失效原因

[复制链接]
20159|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
z_jzhao|  楼主 | 2022-11-21 09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        当在当前地0x8DFFC写入4个字,都正常写入,接着在0x85000写入一个字后,却发现没有写入,但返回的状态位却是正确的,为什么会没有写入;代码如下:

                u32FlashAddr = APP_TESTADDR; //0x8DFFC
                oReturnCheck = Fapi_issueProgrammingCommand((Uint32 *)u32FlashAddr, u16FlasshDat, 4,0, 0,Fapi_AutoEccGeneration);
                while(Fapi_checkFsmForReady() == Fapi_Status_FsmBusy);  //写入正常


                u32FlashAddr = APP_TESTADDR; //0x85000
                oReturnCheck = Fapi_issueProgrammingCommand((Uint32 *)u32FlashAddr, u16FlasshDat, 1,0, 0,Fapi_AutoEccGeneration);
                while(Fapi_checkFsmForReady() == Fapi_Status_FsmBusy); //写入异常

使用特权

评论回复
沙发
okfarPrime| | 2023-1-8 11:33 | 只看该作者

280049的Flash写入失效原因

这种情况可能是由于在写入0x85000时出现了错误导致的。错误原因可能有很多,例如访问了不能写入的地址、写保护了该地址、写入操作超时等。
在写入Flash存储器时,应该注意以下几点:
  • 确保地址有效,不能访问不能写入的地址。
  • 确保写保护功能没有打开。
  • 确保写入操作没有超时。
  • 确保操作正确,比如在写入之前应该先读取该地址的数据并校验,以确保写入的数据与原数据不同。
  • 在写入Flash存储器之前,应该先擦除该地址所在的扇区。
  • 在写入Flash存储器时,应该注意数据对齐,例如,在C2000处理器中,Flash存储器的数据必须按照32位对齐写入。
  • 在写入Flash存储器时,应该注意代码的并发性,避免多个任务同时访问Flash存储器导致的冲突。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

72

帖子

0

粉丝