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.

[参考译文] RM48L952:nowECC -f 不改变输出

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/702112/rm48l952-nowecc--f-not-changing-output

器件型号:RM48L952
主题中讨论的其他器件:NOWECCUNIFLASH

我正在尝试将带有 nowECC 的 ECC 值添加到使用自定义引导加载程序加载的固件中。 我怀疑-f 标志不能正常工作。 在我的引导加载程序中、它不会像 UniFlash 和 CCS 那样将不在64位边界上结束的段的末尾清零、因此我将使用-f 0xFF 来解决这一问题。 我有一个1字节常量、它是.const 段的最后一个成员、是8字节块中的4字节。 启用 ECC 验证后、加载此值时出现异常。 我发现、无论我是否指定-f 标志、ECC 值都是相同的。 是否有人可以验证此功能?

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

    让我提供更具体的信息。

    根据我的映射文件、具有 ECC 错误的两个常量值是这些值。
    00037df0调度程序_tick_period_microseconds
    00037df4 app_task_count

    这是它们所处的区域
    00037dec 00000009 userApp.obj (.const)


    调试器显示 Scheduler_tick_period_microseconds 0x000003E8和 APP_task_count 的值为0xFFFFFF05。 如果我使用 CCS 进行闪存、APP_TASK_COUNT 将为0x00000005。

    调试器显示地址0xF0406FBC 处的 ECC 值为0xF3977A33。 无论我是否使用-f 参数、该值似乎都不会改变。 我希望这会导致更改、因为 app_task_count 位于未以64位边界结束的段的末尾。

    nowECC 版本为2.22、我传递它的参数是 -R4 -f021 16M_ADD -f 55 -a filepath -i filepath

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

    0xFF 用作 nowECC 的默认填充值。 如果选择不同的填充值、您可以看到差异。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现-f 影响了一些 ECC 值、但它似乎没有在我的应用中的某个特定位置导致正确的值。 我无法解释原因、但我确实找到了链接 器的 palign 关键字、我认为无论如何这是一个更好的解决方案、因为它不会对闪存中的值做出任何假设。