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.

[参考译文] CCS/RM44L520:使用 CCS &amp 进行闪存初始化;XDS200调试器未正确设置闪存 ECC

Guru**** 2540720 points
Other Parts Discussed in Thread: RM44L520

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/952669/ccs-rm44l520-flash-initialization-with-ccs-xds200-debugger-is-not-setting-flash-ecc-correctly

器件型号:RM44L520

工具/软件:Code Composer Studio

我的任务是为我们的闪存启用 ECC。  在 sys_startup.c 中,在使用  _coreEnableRamEcc_()启用 RAM ECC 后-我使用   _coreEnableFlashEcc_()启用闪存 ECC;

CCS 设置为擦除所有闪存、目标设置设置设置为自动 ECC 生成。   但是、CCS 加载此引导加载程序应用程序后、ECC 在该空存储器首次读取时失败。

我看到 CCS 擦除所有闪存、但它不会生成正确的 ECC。  


我们的软件版本号在 main 之后、在使用 F01闪存 API 之前从闪存中读取。  目前、我已将 flashecc 的启用移动、直到我们的引导加载程序和应用程序已更新。

此主题与我的情况类似、但现在已关闭。

https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/887304/3284317?tisearch=e2e-sitesearch&keymatch=rm44%252520flash%252520ecc#3284317

处理器: RM44L520、 我也使用 TMS570、但尚未尝试启用闪存 ECC。

CCS: 10.1.1

调试器: Blackhawk USB200/XDS200 JTAG

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

    您好 Chris、

    当您擦除主闪存(组0或组1)时、相应的 ECC 存储器也会被擦除。 如果闪存 ECC 被启用、擦除主闪存的任何读取操作将触发一个 ECC 错误、这是因为闪存的擦除状态不是一个有效的 ECC 条件。

    您可以使用链接器 cmd 文件为整个主闪存生成 ECC。

    请使用此链接中的指南使用链接器 cmd 文件生成 ECC:

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

    在 CCS 中、在调试属性中-有一个可生成自动 ECC 的闪存设置。  我将按照您的建议添加链接器设置、但我不希望这样做。

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

    查看要在闪存存储器区域的链接器命令文件中定义的 vfill (虚拟填充)选项。 这样、您就可以为未使用(已擦除)的闪存存储器区域生成正确的 ECC、以便对已擦除的闪存的访问不会产生 ECC 错误。

    请注意、在某些情况下、您可能希望生成 ECC 错误、因为对擦除(通常未使用)闪存的访问被视为 CPU 代码执行错误。 您甚至可以用一个值来填充未使用的闪存区域、该值会生成一个已知的异常、例如一个未定义的指令异常。 输出文件的大小和编程此代码所需的时间将更大(具体取决于应用中未使用的闪存数量)。