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/LAUNCHXL2-570LC43:文件加载器:验证失败

Guru**** 2478765 points
Other Parts Discussed in Thread: LAUNCHXL2-570LC43

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/696606/ccs-launchxl2-570lc43-file-loader-verification-failed

器件型号:LAUNCHXL2-570LC43

工具/软件:Code Composer Studio

您好!

我尝试将 LAUNCHXL2_570LC43:_Project_1的程序加载 到 LAUNCHXL2-570LC43。
但是在闪存被擦除后、当开始加载程序时、发生了如下验证失败。

CortexR5:文件加载程序:验证失败:地址0xF0407FF0处的值不匹配请验证目标存储器和存储器映射。

CortexR5:GEL:文件:/Users/hoge/workspace_v7/Proj1_launchxl2_rm57l_570lc43/Project1_LAUNCHXL2_570LC43/Debug/Project1_LAUNCHXL2_570LC43.out:发生数据验证错误、文件加载失败。

当我将'vfill = 0xFFFFFFFF'更改为'fill = 0xFFFFFFFFF'指令时、在链接器命令文件的 Memory{}部分映射到闪存的每一行末尾、它会成功加载程序。
但我不知道为什么。 您能告诉我为什么它适用于"填充"、而不是"填充"?

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

    您好、Kiyona、

    您是否使用 cmd 文件为闪存生成 ECC? 通常、我们对向量 存储器区域使用 fill。

    VFILL 说明符:

    已对链接器命令文件中存储器范围的填充值指定符进行了小扩展。 通常、为存储器范围指定填充值将创建初始化的数据段、以覆盖存储器之前未初始化的任何区域。 若要为整个存储器范围生成 ECC、链接器需要具有整个范围的初始化数据、或者需要知道在运行时未初始化的存储器区域将具有什么值。 为了适应用户希望为整个存储器范围生成 ECC 但不希望通过指定填充值来初始化整个范围的情况、可以使用新的"vfill"限定符代替"fill"限定符:

     内存{

       闪存:origin=0x0000 length=0x4000 vfill=0xffffffff

     }

    vfill 限定符在功能上等效于省略 fill 限定符、不同之处在于它允许针对未初始化的输入存储器范围区域生成 ECC。 这样可以减小生成的目标文件的大小。

    "vfill"限定符除在 ECC 生成中无效。 它不能与"填充"限定符一起指定、因为这会引起歧义。