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.

[参考译文] TMS570LS1224:闪存 SECDED 扇区禁用

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/975075/tms570ls1224-flash-secded-sector-wise-disabling

器件型号:TMS570LS1224

大家好、

对于 BANK0和 BANK7内的所有独立闪存扇区、是否可以禁用(并重新启用) SECDED?

提前感谢您!

此致、

Luis

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

    您好、Luis、

    主闪存的 SEDED 逻辑位于 CPU 内部、但闪存包装程序内 EEPROM (组7)的 SEDED 逻辑。 可以禁用和重新启用两个 SEDED 逻辑。 但我们不能仅针对一个闪存扇区禁用 ECC 保护。

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

    尊敬的 QJWang:

    感谢您的快速响应。

    我还有3个相关问题:

    • 闪存错误检测和校正扇区禁用寄存器 FEDACSDIS 和 FEDACSDIS2 -- SPNU515C,第298和317页--表示可以禁用和重新启用 EEPROM 的扇区(组7),我的理解是否正确?
    • 请考虑以下使用在闪存组0中启用 CRC 模块和 SECDED 的示例:
      • 将在 CPU 的后台检查组0中具有1M 字节的存储器区域。
      • CRC 将每1K 字节执行一次。
      • 在计算通电粒子的特征时、在特定的1K 字节数据模式中会出现由通电粒子引起的单个误差
      • 在计算 CRC 之前、闪存 SECDED 是否校正了单个误差?
      • 将计算出的 CRC 数据模式与预录 CRC 值进行比较的结果是什么?

    感谢您的参与和支持。

    此致、

    Luis

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

    您好、Luis、

    1.你是对的。 您可以为组7中的4个扇区禁用 SECDED 功能。  

    2.当 CPU 读取数据进行 CRC 计算时、应校正带有1位 ECC 错误的数据。 但校正后的数据不会写回闪存。  

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

    大家好、QJ Wang

    非常感谢您的快速响应、这非常有帮助。

    我还有其他问题,感谢您的观看。

    上下文:

    我正在从事一个项目、重点是通过 CAN 开发 MCU 引导软件。

    BOOT-SW 应为用户提供选择操作(将被删除)的功能、其中一个是预存储的应用程序 SW 映像。

    例如、应用软件映像-1存储在闪存组0、扇区8-11和闪存组0扇区12-15中的映像-2中。

    此外、BOOT-SW 还应提供重新加载(支持通过 CAN 总线进行传输并将程序编程到闪存中)用户选择的应用软件映像的功能。  

    问题

    1. 如果用户选择使用 IMAGE-1等操作、并且在一段时间后存储了 IMAGE-1的存储器区域中的 SECDED 检测到不可纠正的错误:它是否会生成 CPU 中止?
    2. 如果用户选择使用 IMAGE-1等操作、并且在一段时间后存储了 IMAGE-2的存储器区域中的 SECDED 检测到不可纠正的错误:它是否会生成 CPU 中止?
    3. 如果要重新加载新的应用软件映像,为了确保 SECDED 在重新加载后继续工作,新 的正确关联值--现在由 ECC 生成-- 必须与应用软件映像一起传输 ECC 的说明、然后在映像编程后以及在重新启用 SECDED 之前将说明编程到闪存中。 我的理解是否正确?  
    4. 根据 SPNU515c、"Cortex-R4 CPU 可能会向 ATCM 存储器空间内的任何位置生成推测取指令。"、触发取指令必须满足哪些条件?

    再次感谢您的观看。

    此致、

    Luis

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

    您好!

    1和2:是。  它将生成一个组3通道7 ESM 错误、此错误将切换 nERROR 引脚。 它 也会生成 CPU 异常中断。

    F021闪存 API 能够计算 ECC 并将 ECC 编程到 ECC 空间、同时将数据编程到主闪存。  

       fapi_issueProgrammingCommand ((uint32_t *) dst、(uint8_t *) src、(uint32_t)字节、0、0、 Fapi_AutoEccGeneration);

       Fapi_AutoGeneration–这将对闪存中提供的数据部分以及自动生成的 ECC 进行编程。 ECC 是在64位对齐地址上计算的、最高可达组的数据宽度。 未提供的数据被视为0xFF。 例如、在具有144位宽组宽度的器件上、如果数据只写入字节0x0-0x7 (或0x8-0xF)、那么 ECC 将仅针对这64位进行计算。 如果提供的数据跨越64位边界、则将为两个64位字计算 ECC。 例如、在具有144位宽组宽度的器件上、数据写入字节0x4 - 0xB、计算2个字节的 ECC 数据。 此选项也存在 Fapi_DataOnly 的数据限制。

       请参阅 F021闪存 API 参考指南 :SPNU501G.pdf

    CPU 试图从闪存和 RAM 区域进行推测取指令、以最大限度地减少较高延迟存储器访问的影响。 如果该访问恰好从没有正确编程 ECC 的位置获取、则会生成 ECC 错误。 如果 CPU 不实际执行此推测取回的指令、则不会生成中止。  

    您需要填充任何未使用的闪存存储器、然后也对相应的 ECC 代码进行编程。

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

    尊敬的 QJ Wang:

    再次感谢您的观看、最后一个问题是:

    是否可以为闪存组0和组7禁用(并重新启用) SECDED 功能的 DED 部分(并使其在 RAM 中启用)?

    换言之、是否仅启用 SECDED 函数的 SEC 部分?

    此致、

    Luis

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

    您好、Luis、

    否 但是、您可以阻止组7不可纠正的 ECC 错误(ESM 1.36)生成中断或将 nERROR 引脚置为有效。   

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

    尊敬的 QJ Wang:

    再次感谢您的支持。

    根据针对 cortex R4F 的 ARM 和 TI 参考、当在 TMC 读取(例如闪存组0)上检测到2位 ECC 错误时、会发生同步数据中止、随后由默认数据中止异常处理程序例程处理。

    用户是否可以扩展默认处理程序例程?

    如果是、是否可以通过读取数据故障地址寄存器并检查存储器地址是否位于预定义存储器区域内的方式来扩展它、如果是、处理器将恢复运行;否则强制处理器无限期循环(*)?

    (*)在这里、设计中的系统的想法是将 MCU 内部生成的看门狗馈送信号的生成停止至少一个预定义的持续时间、这会导致 MCU 外部看门狗电路触发、该电路将执行 MCU 的电源循环。  

    此致、

    Luis

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

    您好、Luis、

    除自检生成的错误外、所有不可纠正的错误都不应被忽略。 无论您如何处理 ABORT.asm 中的错误、当检测到2位 ECC 错误时、nERROR 引脚都会被置为有效。

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

    尊敬的 QJ Wang:

    再次感谢您的回答。

    我理解您的问题、但在我们的系统设计中、我们决定 nERROR 引脚不应用作 外部监控电路 MCU 故障的指示器、而是。 实际上根本不使用该引脚。 在 SW 级别、我必须处理此外部决策。 这 是我先前问题的动机。

    我假设从您之前的回答中可以 中止扩展处理程序。 ASM、是这样吗?

    感谢您的观看、

    Luís μ A