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.

[FAQ] [参考译文] [常见问题解答] TMS570LS1224:从闪存 ECC 空间或 SRAM ECC 空间读取数据时、检测到的双位错误是否会生成数据中止?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1138224/faq-tms570ls1224-when-reading-from-flash-ecc-space-or-sram-ecc-space-does-a-double-bit-error-detected-generate-data-abort

器件型号:TMS570LS1224

Hercules 微控制器通过专用 的单纠错双纠错(SECDED)逻辑来保护对片上闪存和片上 SRAM 存储器的所有访问。  对程序存储器(组0或组1)和 SRAM 的访问受 ARM Cortex-R4F CPU 内部实现的 SECDED 逻辑保护。 到 EEPROM 仿真闪存组(组7)的访问由闪存包装程序内的专用 SECDED 逻辑保护。  

BTCM 接口的 ECC 内存空间为0x0840_0000。  在从 ECC BTCM 空间进行 Cortex-R4读取访问期间、如果 Cortex-R4检测到一个双位错误、是否会有一个数据中止?

2、ATCM 接口的 ECC 内存空间为0xF040_0000。  在从 ECC ATCM 空间进行 Cortex-R4读取访问期间、如果 Cortex-R4检测到双位错误、是否会有数据中止

EEPROM 组7 接口的 ECC 存储器空间为0xF010_0000。  在从 ECC 组7 空间进行 Cortex-R4读取访问期间、如果 Cortex-R4检测到双位错误、 是否会有数据中止

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="45190" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1138224/faq-tms570ls1224-when-reading-from-flash-ecc-space-or-sram-ecc-space-does-a-double-bit-error-detected-generate-data-abort ]1. BTCM 接口的 ECC 内存空间为0x0840_0000。  在从 ECC BTCM 空间进行 Cortex-R4读取访问期间、如果 Cortex-R4检测到双位错误、是否会有数据中止?[/QUERP]

    是的、如果 CPU 在从 ECC BTCM 空间读取时检测到双位错误、您将获得中止。 从 ECC 空间读取数据时、数据实际上是 ECC。 因此、返回 CPU 的是在64位数据总线上重复8次的8位 ECC 值、在8位 ECC 总线上再次重复同样的8位 ECC 值。 这对数据和 ECC 可能 会导致 一种故障、该故障可能超出 SECDED 的能力、在这种情况下、它可以被解释为无错误或单个位错误或双错误。  

    [引用 userid="45190" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1138224/faq-tms570ls1224-when-reading-from-flash-ecc-space-or-sram-ecc-space-does-a-double-bit-error-detected-generate-data-abort ]2. ATCM 接口的 ECC 存储器空间为0xF040_0000。  在从 ECC ATCM 空间进行 Cortex-R4读取访问期间、如果 Cortex-R4检测到双位错误、是否会有数据中止?[/QUERP]

    ATCM (主闪存) ECC 存储器空间位于0xF040_0000。 在 Cortex-R4的 AXI 总线上读取0xF040_0000。 此 AXI 读取事务将路由到闪存包装程序 Bus2接口。 Cortex-R4的 AXI 总线接口上没有内置 ECC 检查功能。  因此 、首先、从 ATCM ECC 空间读取数据时、Cortex-R4不会执行任何 ECC 检查。 因此、它不知道数据中是否存在故障。 不会生成中止、也不会更新数据故障状态和地址寄存器。 闪存包装程序将对这个总线2访问执行 ECC 检查。 如果检测到一个双位错误、它将被信号发送给 ESM。

    闪存组为144宽度、分别包含两个64位数据和两个8位 ECC。 这由闪存包装程序立即读取。 即使您正在从 CPU 的存储器映射视点(位于0xF040_0000)读取 ATCM ECC 空间、闪存包装程序实际上也会读取映射到0x0000_0000的相应64位数据。 如果0x0000_0000处有一个有效数据及其相应的 ECC、那么在从 ECC 空间读取时不会检测到任何错误、除非您有意注入一些故障来导致 ECC 错误。 如果您从 其 对应数据未填充数据或代码的 ECC 空间位置读取数据、则可能会出现 ECC 错误。 示例是从数据和 ECC 都是 F 的位置读取数据。

    [引用 userid="45190" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1138224/faq-tms570ls1224-when-reading-from-flash-ecc-space-or-sram-ecc-space-does-a-double-bit-error-detected-generate-data-abort ]3. EEPROM 组7 接口的 ECC 存储器空间为0xF010_0000。  在从 ECC 组7 空间进行 Cortex-R4读取访问期间、如果 Cortex-R4检测到一个双位错误、 是否会有数据中止

    答案与#2相同。