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.

[参考译文] RM57L843:组7编程- Fapi_doVerify 在某些情况下失败。

Guru**** 2478765 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/693548/rm57l843-bank-7-programming---fapi_doverify-failing-in-certain-cases

器件型号:RM57L843

您好!

一年前我就这个话题发表过、虽然它已经解决了、但却是它的背后。

定义的症状如下:我可以使用 Fapi 将存储在 RAM 中的缓冲区写入闪存组7。 写入完成后、如果我通过简单的字比较手动验证闪存内容、或者使用 Fapi_doVerify、我将获得验证失败、我还注意到存储器浏览器未更新以反映应写入闪存的值。  然而、当我复位目标时、组7显示它被正确写入并且可被验证为成功。

下面是大致的伪代码:

1.复位目标

2.初始化闪存等

3.从0xF020000处的闪存中读取4096字节到0x08007800处的 RAM 中(是对齐的)

在本示例中、0xF0200000处的值为0xAABB1235。

5. 0x08007800处的 RAM 缓冲区也在内存浏览器中显示0xAABB1235。

6.将0x08007800从0xAABB1235修改为0xAABB1234

使用 Fapi_issueProgrammingCommand 重新编程整个缓冲区、每次8个字节

每个8字节后、等待 Fapi_checkFsmForReady 并确保命令的返回代码为 Fapi_Status_Success

9.在对所有4096字节进行编程后、调用 Fapi_doVerify、该函数返回 Fapi_Error_Fail。 在读取之前、我还会调用 Fapi_flushPipeline。 请注意、Fapi_doVerify 的状态显示的是地址处的故障、其中包含上述步骤中的数据。 从这一点可以清楚地看出、甚至 Fapi 也正在读取过期数据。

10.在内存浏览器中检查,闪存未更新。

11.复位目标(只是来自 CCS 的简单 CPU 复位)

12.检查内存浏览器、0xF0200000显示0xAABB1234、这表示闪存写入正确!

13. Fapi_doVerify 现在返回成功(没有另一次编程尝试)。

我需要知道我做了什么错。 这种情况看起来像是某种缓存一致性问题、其中 RM57读取的闪存在闪存写入之前似乎是过时的缓存值。

我们使用同一个闪存驱动器、在 RM48上有一些小的#define 差异、现在已经使用了大约5年、而测试中未记录任何故障。

是否有人可以建议我需要查看的任何内容?

谢谢

太棒了!

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

    您好!

    我将与闪存 API 团队联系、尽快与您联系。

    此致、

    Sunil

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

    您好、Stomp、

    闪存 API 专家建议、不能缓存对数据闪存组的访问。 对 FEE 组的写入使用状态机完成、并绕过 CPU 的互连、因此缓存一致性逻辑无法识别任何缓存内容是否无效。 通过配置 CPU 的 MPU、您可以将 FEE 组定义为器件类型或严格排序存储器。 这将防止缓存从该数据闪存组的读取。

    此致、
    Sunil

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

    再次感谢 Sunil、

    我怀疑这是我身边的 MPU 设置问题、我会去查看。

    感谢您抽出宝贵时间与我联系。

    谢谢

    太棒了!