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.

[参考译文] SIMPLELINK-CC13X2-26X2-SDK:连接器命令文件中出现错误

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1397748/simplelink-cc13x2-26x2-sdk-bug-in-linker-command-files

器件型号:SIMPLELINK-CC13X2-26X2-SDK
主题中讨论的其他器件:CC2652R7CC1352P、CC2652RB、 CC1352P7CC2651P3、CC2651R3SIPA

工具与软件:

 对于影响闪存长度计算的一些或大多数示例、链接器命令文件中存在错误:

闪存存储器段定义为:

FLASH (RX):origin = flash_start、length =(flash_end - flash_start + 1)

FLASH_START 定义为:

#define FLASH_start         ENTRY_END + 1

entry_end   定义为:

#define ENTRY_START + ENTRY_SIZE - 1

如果您扩展这些宏、 闪存段将变为:

FLASH (RX):origin = flash_start、length =(flash_end - entry_start + entry_size - 1+ 1)

正确的计算方法应该是:

FLASH (RX):origin = flash_start、length =(flash_end - (entry_start + entry_size - 1+ 1)+ 1)

缺少方括号会导致闪存长度超过 entry_size 而不是小于 entry_size。 这会导致声明闪存大小过大、一旦闪存填满到最后、OAD 映像实际上会覆盖位于闪存末尾的引导加载程序代码、从而使器件闪烁。

如果将受影响的 cmd 文件链接到其中(来自 CC2642工程)、则这来自 MAP 文件:

存储器配置

文件夹          使用的原始长度   未使用  属性填充
--------------- --- --- --- --- ---
FLASH_IMG_HDR 00000000 00000090 0000008d 00000003 R X
条目      00000090 00000040 0000003c 00000004 R X
闪存      000000d0 000560d0 00056020 000000b0 R X
RTOS_SRAM   20000000 0000012c 000000e4 00000048 RW X
SRAM 20000fdf 00013021 0000de84 0000519d RW X

请注意、闪存长度应为0x56000 - 0xD0、而非0x56000+ 0xD0 (引导加载程序从0x56000开始)  

为了纠正这个错误、我们需要在 flash_start 宏周围添加一个括号:

FLASH (RX): origin = flash_start , length =(flash_end -(flash_start )+1 )

至少以下 SDK 中存在此错误:

6.20.00.29.

3.30.00.03

这是我检查的一些存在此错误的命令文件路径(示例中有数百个命令文件、因此我只检查了几个):

simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\LP_CC2652R7\ble5stack\simple_peripheral_oad_onchip\tirtos7\ticlang\cc13x2x7_cc26x2x7_app_tirtos7.cmd"

simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\LP_CC2652R7\ble5stack\simple_peripheral_oad_offchip\tirtos7\ticlang\cc13x2x7_cc26x2x7_app_tirtos7.cmd"

simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC1352R1_LAUNCHXL\ble5stack\simple_peripheral_oad_onchip\tirtos\ccs\cc13x2_cc26x2_app.cmd"

simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC1352R1_LAUNCHXL\ble5stack\simple_centr\tirtos\ccs\cc13x2_cc26x2_app.cmd"

simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC1352P1_LAUNCHXL\ble5stack\simple_peripheral_oad_onchip\tirtos\ccs\cc13x2_cc26x2_app.cmd"

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

    只是这个问题的更多信息、它似乎实际上已经在一些 cmd 文件中修复、而我在第一篇文章中提到的那些文件实际上已经修复了这个问题、flash_start 定义附带了括号:

    #define FLASH_start         (entry_end + 1)

    但是、通过快速搜索、我的库会显示此列表 、其中包含似乎尚未修复的文件:


    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352P1_LAUNCHXL\ble5stack\project_zero\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352P1_LAUNCHXL\ble5stack\simple_peripheral_oad_offchip\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC1352P_2_LAUNCHXL\ble5stack\project_zero\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352P_2_LAUNCHXL\ble5stack\simple_peripheral_oad_offchip\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_SDK_3_30_00_03\examples\rtos\CC1352P_4_LAUNCHXL\ble5stack\project_zero\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352P_4_LAUNCHXL\ble5stack\simple_peripheral_oad_offchip\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352R1_LAUNCHXL\ble5stack\multi_sensor\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352R1_LAUNCHXL\ble5stack\project_zero\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC1352R1_LAUNCHXL\ble5stack\simple_peripheral_oad_offchip\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\to\CC2652RB_LAUNCHXL\ble5stack\project_zero\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\project_zero\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\simple_peripheral_oad_offchip\tirtos\ccs\cc13x2_cc26x2_app.cmd
    simplelink_cc13x2_26x2_sdk_3_30_00_03\source\ti\ble5stack\common\cc26xx\ccs\cc26x2_app_oad_agama.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\CC1352R1_LAUNCHXL\ble5stack\multi_sensor\tirtos7\ticlang\cc13x2_cc26x2_app_tirtos7.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\LP_CC1352P7_1\ble5stack\project_zero\tirtos7\ticlang\cc13x2x7_cc26x2x7_app_tirtos7.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\to\LP_CC1352P7_4\blestack\project_zero\tirtos7\ticlang\cc13x2x7_cc26x2x7_app_tirtos7.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\to\LP_CC2651P3\ble5stack\project_zero\tirtos7\ticlang\cc13x1_cc26x1_app_tirtos7.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\LP_CC2651R3SIPA\ble5stack\project_zero\tirtos7\ticlang\cc13x1_cc26x1_app_tirtos7.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\examples\rtos\LP_CC2652R7\ble5stack\project_zero\tirtos7\ticlang\cc13x2x7_cc26x2x7_app_tirtos7.cmd
    simplelink_cc13xx_cc26xx_sdk_6_20_00_29\source\ti\ble5stack\common\cc26xx\ccs\cc26x2_app_oad_agama.cmd
    simplelink_cc13xx_cc26xx_sdk_7_40_00_77\source\ti\ble5stack\common\cc26xx\ccs\cc26x2_app_oad_agama.cmd
    simplelink_cc13xx_cc26xx_sdk_7_40_00_77\source\ti\dmm\apps\common\tirtos\ccs\cc26x2_app_oad_agama_tirtos7.cmd

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

    您好 Reto、

    感谢您报告此内容。 我们将与团队一起审查、并尽快向您报告、以便让您了解后续步骤。

    BR、

    David。