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.

[参考译文] CC1352P7:TI15.4 Stack — 闪存校验和

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1535159/cc1352p7-ti15-4-stack---flash-checksum

器件型号:CC1352P7

工具/软件:

您好:

 Im、我需要定期检查是否没有任何数据损坏。 我将使用 CRC fxn 并将其与黄金值进行比较。

据我所知、我需要验证的部分是:

-.text

-.const

-.rodata

因此、我正在考虑在链接器 cmd 文件的末尾创建 6 个常量、其中我存储每段的开头和结尾、以便稍后在 CRC 计算中使用、如下所示:

__text_start = LOADADDR (.text);
__text_size = SIZEOF (.text);

__rodata_start = LOADADDR (.rodata);
__ rodata_size = SIZEOF (.rodata);

_CONST_START = LOADADDR (.const);
_CONST_SIZE = SIZEOF (.const);

问题:

1 — 我的推理是正确的还是有更好的方法来做到这一点?

2 — 我是选择了正确的地区还是应该包括其他地区?

3 — 根据链接器.cmd 文件、.text 可拆分为 FLASH_LAST 和 FLASH。 那么、如何精确地定义.text 的开头和结尾呢? 我是否将其分为两个部分? 每个器件要使用哪种尺寸?

谢谢你。

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

    假设您使用的是 tiarmclang 编译器。   

    我还假设您将软件开发套件 (SDK) 用于您的设备。  请查看该 SDK 是否有实现 CRC 的示例。  该帖子的其余部分假设没有 CRC 示例。

    请阅读文章 链接器命令文件入门。  重点关注标题为“ 在一个地址加载、从另一个地址运行“的器件。  这就是创建与输出段关联的符号的方式。  另请参阅  tiarmclang 在线手册的“地址和维度运算符“部分。   

    链接器支持 由链接器生成的 CRC 表和存储器范围的 CRC。  我不确定这是否适合您的用例。

    根据链接器.cmd 文件、.text 分别拆分为 FLASH_LAST 和 FLASH。 那么、如何精确地定义.text 的开头和结尾呢? 我是否将其分为两个部分? 每个器件要使用的尺寸是多少?

    作为一个开发步骤,减小程序的大小(只是暂时删除它的部分),并摆脱这种分裂。  然后获取 CRC。  稍后回来讨论此问题。

    谢谢。此致、

    -乔治

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

    谢谢 George、

    我将介绍这些资源。