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.

[参考译文] CC2652R7:生成的.bin 文件在 CC25652R7中处于过大状态

Guru**** 2747345 points

Other Parts Discussed in Thread: CC2652R7

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1305846/cc2652r7-generated-bin-file-is-oversized-in-cc25652r7

器件型号:CC2652R7

您好  

SDK 使用: simplelink_cc13xx_cc26xx_sdk_7_10_01_24

使用的代码:simple_peripheral_lp_CC2652r7_tirtos7_ticlang

我们使用默认 SDK 代码、无需进行任何修改。  

在"Project Properties"->"Build"->"Steps"->"Post-build steams"列中 、我输入了以下语句来生成.bin 文件。  但生成的.bin 文件是超大的(720KB)

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin "${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_TOOL_ROOT}/bin/armofd "${CG_TOOL_ROOT}/bin/armhex "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin "

请在此处帮助获取优化的文件大小  

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

    尊敬的 Mohan:

    请观看本 二进制文件简介、尤其是关于孔洞及其规避的部分。

    二进制文件的格式非常简单。 没有一个紧凑的方法来表示一个空穴。 唯一可能的方法来表示一个孔是填充它...

    避免出现空洞的最佳方法是仔细控制可执行文件中已初始化段的位置。 将它们尽可能靠近。 在理想的配置中、它们都彼此相邻。

    有时无法避免空穴。 如果是这种情况、请查看这两个替代方案中的一个是否可行。

    一种替代方法是创建单独的 bin 文件。 如果有两个已初始化的段集群、则为每个集群创建一个 bin 文件。 这种方法并非总是可行的。 创建 bin 文件的实用程序可能不支持该文件。 或者、将 bin 文件读取为输入的实用程序可能只接受一个文件。

    第二种选择依赖于两种推定。 第一、所有已初始化的段都关闭、共同接受一。 第二、在初始化段的主群集附近有内存空间。 在这种情况下、请安排剩余的初始化段具有不同的加载和运行地址。 它在初始化段的主群集附近的地址加载。 在系统启动过程中、它会复制到其他运行地址。

    您无法避免单个整个 CC2652R7二进制文件出现空洞、因为 CCFG 存储在闪存的最后一页中。  如果 CCFG 只编程一次、则无需根据 CCFG 配置本身对闪存的最后一页重新编程。  但还有与 CCFG 相邻的 NV 存储器闪存页也必须加以考虑。  输出.hex 图像较小、因为它们没有相同的孔填充要求、如果您能够使其工作的话。

    此致、
    瑞安