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.

[参考译文] TMS570LS3137:如何使用 C 语言为 pflash 和 SRAM 启用 ECC?

Guru**** 2522770 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/853506/tms570ls3137-how-to-enable-ecc-for-pflash-and-sram-using-c-language

器件型号:TMS570LS3137

根据 TI 安全手册、我了解了

1、SRAM ECC 可以通过设置系统控制协处理器辅助控制寄存器 C1的 B1TCMPCEN 和 B0TCMPCEN 位来启用  

2. 将系统控制协处理器的辅助控制寄存器 C1的 ATCMPCEN 位置位可启用 PFLASH ECC。

我找到了一些用于访问辅助控制寄存器 C1的汇编代码片段。

由于我们在项目中使用 C 语言、因此请分享有关如何使用 C 语言访问 辅助控制寄存器 C1的详细信息?

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

    您好!

    在其他几种情况下、使用汇编例程。 在 Cortex-R4/R5 CPU 中访问/配置协处理器寄存器时、通常使用汇编例程。 编译器不会生成这些用于访问协处理器寄存器的特殊指令。

    因此、C 例程仍然可以使用它们的"标签"调用这些函数。 例如、CPU 的事件总线信号通过在协处理器中启用来从 CPU 中导出。 这是通过调用 _coreEnableEventBusExport_()函数来完成的。

    您的项目中是否存在.asm 文件问题? 如果是这样、您可以创建.c 文件并放入"asm"函数、如下所示:

    asm (" nop");

    以上示例用于执行"NOP"汇编指令。 此行可以是.c 文件的一部分。 编译器不会尝试优化此行。

    此致、Sunil

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

    您好、Sunil、

    启用闪存和 SRAM ECC 后、我面临 CPU 中止问题。

    我在辅助控制系统寄存器中启用了闪存/ SRAM ECC、并在   C9、性能监控控制寄存器中启用了事件到事件总线的导出。 我已经在 CCS 中验证了这些 CPU 寄存器的值。

    我的代码中有一个函数、我在其中将数据从闪存复制到 RAM。 当闪存和 SRAM ECC 被启用时、我的程序执行在这个函数上中止。

    请注意、我正在使用 CCS 中启用的"自动 ECC 生成"对目标中的代码进行编程。

    我很困惑为什么 CPU 在我启用了"自动 ECC 生成"时中止。 如果我在这里有问题、请允许我发言。

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

    请使用 CPU 的中止状态和中止地址寄存器来识别中止的原因。 您是否获得了预取中止(在取指令时)或数据中止(在数据访问时)?