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.

[参考译文] CC2652P:SDK v7.40中的代码大小发生了更改

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1359540/cc2652p-code-size-changed-in-sdk-v7-40

器件型号:CC2652P

大家好!

我将使用 SIMPLELINK-LOWPOWER-F2-SDK v7.40在 CC2652P1F 上的主机测试示例。 当我使用闪存编程器2将 GBL 文件刷写到 ble chip 时、错误提示:"Unknown record type:3"。 然后我发现 GBL 大小为445Kb、但 CC2652P 上的闪存大小为352Kb。  

要在 CC2652P 上刷写映像、是否可以减小 GBL 大小?

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

    您好!

    您如何生成 GBL 文件?

    SDK 中的 host_test 示例应生成.out 或.hex 文件、并且应使用正确的固件大小构建:
    dev.ti.com/.../node

    谢谢!
    Toby

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

    尊敬的 Toby:

    感谢您的答复。

    生成的映像应该是 hex 文件、而不是 GBL。 我很抱歉把你弄糊涂了。

    我从示例项目 CC2652PSIP LaunchPad -> TI Clang Compiler ->  host_test 创建了 hex 文件。 显示文件大小的附加图像。

    我应该选择哪个工程来生成正确的固件尺寸?

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

    嗨、West:

    这是未修改的 host_test 吗?

    您正在使用哪个 CCS 版本?

    您能否尝试构建驱动程序示例?

    在 CCS 中构建此函数时、可以看到以下用于内存分配(窗口-->显示视图-->内存分配):

    实际固件映像占用170KB 闪存。 这等效于.map 文件、其中包含以下文件:  FLASH          00000000  00056000  0002988f  0002c771 R X
    (0x2988F 是使用的闪存)。
    生成的十六进制文件为362kB。

    造成差异的原因是 hex 文件包含要编程到器件上的完整映像(包括"empty"空间)。

    您能否查看在.map 文件或"内存分配"中看到的内容?

    谢谢!
    Toby

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

    尊敬的 Toby:

    感谢您的答复。  我是 West 的同事。

    我们只做了一点修改。 更改后门的 DIO 和波特率、以及启用广播通道(添加标志 DADV_RPT_INC_CHANNEL=1)。

    以下是我的"内存分配"。  

    和映射文件中的闪存如下所示。

    闪存          00000000  00056000 0002b544 0002aabc  R X

    但是、hex 文件的大小仍保留443KB。 您能告诉我们如何减少文件中的"空"空间吗?

    谢谢!

    死记硬背

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

    尊敬的 Rote:

    哪个 CCS 版本?

    在构建未修改的示例时、hex 文件的大小是多少?

    谢谢!
    Toby

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

    尊敬的 Toby:

    我们将 使用 CCS v12构建项目。

    我从 Resource Explorer 导入了 host_test 项目、项目路径为  

    SimpleLink CC13xx CC26xx SDK (7.40.00.77)->  CC2652PSIP LaunchPad -> BLE5-Stack -> host_test -> TI Clang 编译器。 该项目是在未进行任何更改的情况下构建的、"workspace -> Release"中的.hex 文件在芯片闪存大小352KB 的基础上仍然为439KB。 .map 文件中的闪存配置为"00000000  00056000 0002af60 0002b0a0   R X"。

    希望这些信息有所帮助。

    谢谢。

    西部

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

    嗨、West:

    我想这可能与项目生成 hex 文件的方式有关。

    尝试执行以下步骤:

    1. 右键单击项目-->属性
    2. Build --> Steps --> Post-build steps -->删除其中的内容
    3. Build --> Arm Hex Utility -->启用"Arm Hex Utility"

    对我来说、这会将 hex 文件的时间缩短至更合理的值。

    谢谢!
    Toby

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

    尊敬的 Toby:

    我遵循了您的设置、.hex 减小到了101KB、感谢您的提示。

    hex 可以使用 闪存编程器2写入 CC2652P、但 在闪存芯片之后的 btool 上没有响应。 在将闪存回之前的 SDK 版本(7.10)后、btool 显示了从芯片获取的响应。 某些函数似乎在.hex 文件中丢失了。

    如何使.hex 文件可用?

    谢谢。

    西部

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

    请尝试此处的建议: e2e.ti.com/.../ccs-generated-hex-files

    具体添加一个编译后处理步骤: "${CG_TOOL_HEX}"-order ms --memwidth=8 --romwidth=8 --Intel -o "${ProjName}.hex""${ProjName}.out"

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

    尊敬的 Toby:

     设置此配置后、我可以构建大小为381KB 的.hex 文件、host_test 函数可用。

    感谢您的帮助。

    西部

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SDK v7.40中 CC2652P 的代码大小修改表明 DirecTV 计划的 开发值得注意。 无论是扩展还是减小、此类更改通常都反映了优化或附加功能。 开发人员应仔细评估对存储器使用和性能的影响、确保与现有代码库的兼容性并考虑未来项目的潜在优势。