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.

[参考译文] CC2640R2F:CCS 生成的十六进制文件显示缺少地址间隙–这是预期行为吗?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1606420/cc2640r2f-ccs-generated-hex-file-shows-missing-address-gap-is-this-expected-behavior

器件型号: CC2640R2F

尊敬的团队:

我正在使用构建我的工程 Code Composer Studio (CCS) 并生成中的输出 Intel HEX 格式

在查看生成的十六进制文件时、我注意到两者之间存在明显的差距 ~7KB 地址范围之间。 十六进制文件的一个片段如下所示:

image.png

十六进制文件中似乎没有某些中间地址范围。

我的问题是:

  1. 是这样 预期行为 CCS 生成的 Intel 十六进制文件会忽略未使用/擦除的闪存区域吗?

  2. 编程过程中是否可以安全地忽略这种明显的间隙?

  3. 完整十六进制文件是否需要任何其他 CCS 链接器或编译后处理设置?

  • 输出格式:Intel hex

请确认我的理解是否正确。

谢谢你。

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

    尊敬的 Vignesh:

    与二进制文件不同、Intel 十六进制文件格式允许在闪存地址之间存在空洞。  这可以减小总体文件大小、并且在对不同存储器部分(无论是应用程序,非易失性存储器还是 CCFG)进行编程时都具有优势。  您注意到、应用程序和 CCFG 之间可能存在差异、而 CCFG 存储在闪存最后一页中、这很常见。   如果有必要、可以向十六进制实用程序构建命令添加填充值、但留下空洞也是不错的。

    https://developer.arm.com/documentation/ka003292/latest/ 
    https://en.wikipedia.org/wiki/Intel_HEX 

    此致、
    Ryan