TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] MSP430FR5969:如何修改链接器、以便可以单独放置一个初始化值?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1467527/msp430fr5969-how-to-modify-linker-so-one-initialization-value-could-be-placed-separately

器件型号:MSP430FR5969

工具与软件:

你(们)好 在我的代码中、我想对 FRAM 部分执行 CRC 计算、然后将计算出的 CRC 值与比较的 CRC 值进行比较、如果这两个值是否相同、则执行进一步的操作。 我遇到的问题是、比较 CRC 值存储在 FRAM 段中的初始化值中。 因此、比较值包含在 CRC 计算中。 我计算 CRC 值并将其放入。 我再次计算 CRC 值、它已经改变。 我又把它放进去。 我再次计算、它再次改变...

作为解决方案、我试图创建一个大小为2字节的单独内存段来存储 CRC 比较值、但也有同样的问题、因为它的初始化值仍然存储在 FRAM 中。 我的问题是、我如何只区分该初始化值? 但如果您还有其他建议、我愿意讨论。

谢谢。

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

    我无法判断是计算在编译时还是运行时存储的初始 CRC 值。 我怀疑它是否在编译时、虽然它可能是编译后步骤。

    如果在运行时、这看起来与信息存储器完全一样。 无需链接器帮助。

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

    将其移至信息部分已正常工作。

    我正在运行时计算 CRC 值、并从 CRCINIRES 寄存器中读取计算值。 然后、我修改比较值并再次重建它。 并且 CRC 值会按预期重复变化。

    我如何才能获得 CRC 值? 是否可以在 CCS 之外(可能是从十六进制输出文件)计算它?

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

    我假设您希望在构建(编译)时计算 CRC、然后在运行时进行检查。

    看一看链接器的 crc_table 功能[参考链接器 UG (SLAU131U)部分8.9]。 这会要求链接器生成(多个) CRC、每个(请求)输出段一个 CRC。 它比单个整体 CRC 更复杂一些、但可以避免对齐间隙和散点加载带来的麻烦。