This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LC4357:FAPI_issueProgrammingCommandForEccAddresses() 错误会导致随机的后续闪存编程错误

Guru**** 2524550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1559482/tms570lc4357-fapi_issueprogrammingcommandforeccaddresses-error-causes-random-subsequent-flash-programming-errors

器件型号:TMS570LC4357


工具/软件:

在 使用无效的 ECC 值调用 Fapi_issueProgrammingCommandForEccAddresses 后、 对闪存的写入失败、当 FSM 返回到就绪状态时、会设置 FMSTAT 寄存器的位 4 (INVDAT) 和位 5 (Cstat)。 我可以通过调用 Fapi_issueAsyncCommand (Fapi_Clear) 来清除位 4 和 5 并继续。 我的问题是、除非在无效数据失败后重启电源、否则后续写入有效数据(使用 Fapi_issueProgrammingCommand)仅在看似随机的次数下成功、而命令数据未写入闪存。 故障似乎与写入的具体地址无关。 如果下电上电、我将一直成功地将有效数据写入闪存。

有什么想法为什么会发生这种情况? 我是否缺少一个步骤来恢复一致的闪存编程操作?

谢谢、

Cameron

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Cameron:

    提供的技术文档指示在特定的闪存编程故障时设置闪存模块状态寄存器 (FMSTAT) 中的 INVDAT(无效数据)和 CSTAT(命令状态)标志。 通过发出“清除状态命令“、可以清除这两个标志。 这些文档没有解释为什么在清除这些标志后后续闪存编程会不可靠、也没有指定除此命令之外的任何其他恢复步骤。

    是否可以共享您的代码以便进一步快速调试该问题?

    --
    此致、
    Jagadish。