TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1311R3: ccs12.6如何生成可用于线上升级的bin文件?

Part Number:CC1311R3Other Parts Discussed in Thread:WI-SUN

你好!

在使用自己制作的bootloader对APP进行线上升级时发现,使用ccs直接生成的.bin文件升级成功后跳转到APP时会进入faultISR,而在CCS直接下载进芯片的APP可以跳转并且正常运行。将可以正常跳转和运行的APP程序从memory中读取出来并保存为.bin文件,用这个读取出来的.bin文件来升级,程序也可以正常跳转和运行。

对比ccs直接生成的bin文件和从memory中读取出来的.bin文件,发现在文件后半段有几处地方有几个字节不相同,并且ccs直接生成的.bin不带.ccfg段。

 左边为从memory中读出来的,右边有ccs直接生成的。

请问ccs该如何配置生成可以用于升级的bin文件?

tang y:

试着先ccs直接下载,然后在不擦除ccfg段的情况下用ccs直接生成的bin文件进行升级,APP还是不能正常运行。

,

Galaxy Yue:

你好,

你的图片无法点开查看

麻烦重新发一下

tang y 说:而在CCS直接下载进芯片的APP可以跳转并且正常运行

没读懂是什么意思

tang y 说:然后在不擦除ccfg段的情况下用ccs直接生成的bin文件进行升级,

有试着擦除CCFG段之后生成的bin,app可以正常运行吗

APP是自主研发的吗?还是使用的TI TOOLS

,

tang y:

Galaxy Yue 说:有试着擦除CCFG段之后生成的bin,app可以正常运行吗

ccs生成的.bin文件就没有带ccfg段。无法运行。

Galaxy Yue 说:没读懂是什么意思

 从这里直接将app程序下载进去,程序是可以正常跳转和运行的。

Galaxy Yue 说:APP是自主研发的吗?

自主研发的。

,

Galaxy Yue:

您使用哪种技术? (Ti WI-SUN FAN 堆栈、TI 15.4 堆栈、专有 RF?)

对于每种技术,我们在用户指南中都有解释 OAD 的章节。我猜你的 bin 文件中缺少的部分是 oad 图像标题。我们使用 python 工具将其添加到文件中。

https://dev.ti.com/tirex/explore/node?node=A__AHaph7YfvcrVy2cDlmb4sQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST&placeholder=true 

我们还有 SimpleLink Academy 实验室,可完成执行 OAD 的所有步骤,包括如何准备好图像:

https://dev.ti.com/tirex/explore/node?node=A__AEIJm0rwIeU.2P1OBWwlaA__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST&placeholder=true

,

Galaxy Yue:

This is intentional. 

CCFG 作为引导加载程序示例的一部分包含在内。因此,应用程序映像不应包含 CCFG。

您需要在设备上运行引导加载程序(bim 或 MCUBoot)才能运行支持 oad 的应用程序映像。

,

tang y:

Galaxy Yue 说:您使用哪种技术? (Ti WI-SUN FAN 堆栈、TI 15.4 堆栈、专有 RF?)

用的是专有RF。

Galaxy Yue 说:对于每种技术,我们在用户指南中都有解释 OAD 的章节。我猜你的 bin 文件中缺少的部分是 oad 图像标题。我们使用 python 工具将其添加到文件中。

我的bootloader是自己制作的,并没有没有去处理image header,应该不需要添加这些头。

,

tang y:

我试过将生成的bin删去最后的88个字节的CCFG,但还是不行。ccs中能直接配置生成的bin文件不包含ccfg段吗?

,

Galaxy Yue:

为您跟进处理,有进展会通知您的

,

tang y:

好的、谢谢

,

Galaxy Yue:

是的,CCS 中有一个设置不包括 CCFG,但我还没有测试过。 (因此我们生成 .bin 的构建后步骤只是删除了 CCFG。)

如果您不从启用 OAD 的示例项目开始,我将从以下步骤开始:

– 删除系统配置中的设备配置

– 从链接器命令文件中删除 CCFG 提及

这可能会给你带来一堆构建错误,我还没有测试过。

相反,我会尝试调试为什么您的设备没有按您的预期运行:

– 您的引导加载程序运行正常吗?

– Advanced OAD SimpleLink Academy 中给出了调试引导加载程序和应用程序映像之间跳转的说明:

https://dev.ti.com/tirex/explore/node?node=A__AdzaR5YxHU3-EzX70EuRBg__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST&placeholder=true

– 读出设备的内存并检查是否有CCFG(由引导加载程序项目拥有)

,

tang y:

Galaxy Yue 说:- 您的引导加载程序运行正常吗?

可以确认,bootloader运行是正常的,使用从芯片flash中读出来的bin文件是可以正常升级并且升级完成后能够正常跳转运行的。

Galaxy Yue 说:- 读出设备的内存并检查是否有CCFG(由引导加载程序项目拥有)

在可以正常跳转和运行的bootloader+app中,有3处ccfg,

bootloader分配的地址为0x0 – 0x9FFF;

app地址为0xA000 – 0x13FFF;

flash总大小为0x0 – 0x57FFF;

从bootloader程序中进入DEBUG,可以在memory browser中看到在上面3个区域的最高地址处(0x9FA8,0x13FA8,0x57FA8)分别都有一段CCFG;

其中0x57FA8处的ccfg段是额外写入的,否则bootloader无法正常运行。

而在无法正常运行的、CCS直接生成的app bin文件中,CCFG段放在了0x7DA8处(这是app编译出来的程序实际的大小),升级时写入芯片中也就是放在了0xA000+0x7DA8 = 0x11DA8处

赞(0)
未经允许不得转载:TI中文支持网 » CC1311R3: ccs12.6如何生成可用于线上升级的bin文件?
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1