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:从链接器生成闪存 ECC

Guru**** 2560390 points
Other Parts Discussed in Thread: HALCOGEN, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1213024/tms570ls3137-flash-ecc-generation-from-linker

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGENUNIFLASH

您好!

我根据以下文章和文章、尝试使用链接器生成闪存 ECC:

TMS570LS3137 -通过链接器生成的 ECC -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

7.1.链接器生成的 ECC - Hercules 安全 MCU 文档

我的链接器命令文件如下所示:

MEMORY
{
    VECTORS (X)  	: origin=0x00000000 length=0x00000080 vfill = 0xffffffff
    KERN_FUNC (RX)	: origin=0x00000080 length=0x0000FF80 vfill = 0xffffffff
    FLASH0  (RX)	: origin=0x00010000 length=0x00010000 vfill = 0xffffffff
    STACKS  (RW) 	: origin=0x08000000 length=0x00001800
    KERN_DATA (RW) 	: origin=0x08001800 length=0x00000800
    RAM     (RW)	: origin=0x08002000 length=0x0003E000
    VECTORS_ECC  	: org = 0xf0400000  len = 0x10
                   ECC = { input_range = VECTORS, algorithm = eccalgo, fill = true }

   KERN_FUNC_ECC  	: org = 0xf0400010  len = 0x1FF0

                   ECC = { input_range = KERN_FUNC, algorithm = eccalgo, fill = true }
  FLASH0_ECC  	: org = 0xf0402000  len = 0x2000

                   ECC = { input_range = FLASH0, algorithm = eccalgo, fill = true }
 }
ECC
{

   eccalgo : address_mask = 0x003ffff8

             hamming_mask = R4

             parity_mask  = 0x0C

             mirroring    = F021

}

我的调试设置如下:

我在 Halcogen 中启用了闪存 ECC 校验、当我尝试从 CCS 刷写生成的二进制文件时、ESM 模块会触发 nERROR 输出。  

我已尝试从 Uniflash 刷写闪存、但具有相同的行为。

我猜链接器文件中有一些错误吗?  您能否就此提供一些反馈?

谢谢。

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

    此外、我还在 CCS 中启用了 ECC 生成功能

     

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

    Anudeep、您好!

    您的链接器 Cmd 文件中没有问题。

    设置了 ESM 状态寄存器的哪个标志?

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

    是将代码编程到闪存还是在闪存中执行代码会产生错误?

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

    您好!  

    这是相应的值  

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

    您好!  

    进一步测试我注意到、我的编译设置中可能存在一些不生成 ECC 的问题。 现在、它似乎可以按预期工作。 感谢您的支持。

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

    如果 将--ecc=on 添加到编译器选项中,则应生成 ECC。