Part Number:LAUNCHXL-CC26X2R1
诉求:simple_central生成用于OAD的Bin文件,编译过程报错,生成BIN文件过大
对比测试simple_peripheral_oad_onchip工程可以正常生成且Bin大小合理。
操作过程如下:
1、添加HEX转BIN指令(${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/tools/common/oad/oad_image_tool –verbose ccs ${PROJECT_LOC} 7 -hex1 ${ConfigName}/${ProjName}.hex -k ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/tools/common/oad/private.pem -o ${ConfigName}/${ProjName}_oad)
2、配置文件增加OAD
3、编译工程报错
Finished building target: "simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out"
E:/ble_css/ccs/tools/compiler/ti-cgt-armllvm_1.3.1.LTS/bin/tiarmhex.exe -order MS –memwidth=8 –romwidth=8 –intel -o simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.hex simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out
Translating to Intel format…
"simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out" .resetVecs ==> .resetVecs
"simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out" .rodata.1 ==> .rodata.1
"simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out" .text ==> .text
"simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out" .rodata.2 ==> .rodata.2
"simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out" .cinit ==> .cinit
"simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.out" .ccfg ==> .ccfg
E:/Ti_cc2642/simplelink_cc13xx_cc26xx_sdk_6_41_00_17/tools/common/oad/oad_image_tool –verbose ccs E:/Ti_cc2642/sdk2/simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang 7 -hex1 Release/simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang.hex -k E:/Ti_cc2642/simplelink_cc13xx_cc26xx_sdk_6_41_00_17/tools/common/oad/private.pem -o Release/simple_central_CC26X2R1_LAUNCHXL_tirtos7_ticlang_oad
makefile:198: recipe for target 'post-build' failed
Traceback (most recent call last):
File "oad_image_tool.py", line 542, in <module>
File "oad_image_tool.py", line 341, in main
File "oad_image_tool.py", line 184, in createAppStackBinfile
File "imgBinUtil.py", line 252, in updateImgLen
File "imgBinUtil.py", line 105, in writeBytes
OverflowError: can't convert negative int to unsigned
[20640] Failed to execute script 'oad_image_tool' due to unhandled exception!
gmake[2]: [post-build] Error 1 (ignored)
4、有生成BIN,但是太大了不符合预期
Nick Sun:
您好,
图中似乎是Python报错,这个错误通常是由整数溢出引起的。当算术运算的结果超过为该变量分配的内存中可以存储的最大值时,就会发生整数溢出。
似乎是在调用OAD tool的时候出现的错误。所以最后生成的oad.bin文件肯定是有问题的。
我们建议您参考这个文档去修改文件oad:Adding BLE OAD to an Existing Project
,
疾风亦有归途:
您好!
我有如下疑问
1、linker defines是哪里?
2、.opt是那个文件?
3、4 .cfg是那个文件
5、移除这个文件(ccfg_app_ble.c)就行还是将ccfg_app_ble.c连接到bim_onchip_CC26X2R1_LAUNCHXL_nortos_ticlang,没太明白
,
Nick Sun:
您好,
不好意思久等了。我发现您之前使用的是simple_peripheral_oad_onchip来进行修改的。我发的文档是基于offchip可能您修改这些并不能达成您想要的效果。
你之前是通过simple_central,给它添加相关oad的内容。如果是onchip的话,我们工程师讨论后认为您需要在现有的onchip上进行修改(类似于simple_peripheral_oad_onchip)。所以您应该将simple_central的内容移植到simple_peripheral_oad_onchip上。
希望这个建议能帮助到您。
,
疾风亦有归途:
诉求:可以把SDK Demo中simple_central\multi_role\simple_peripheral等工程编译生成的HEX生成OAD使用的BIN。
1、是不是以后使用的bin必须是将simple_central\multi_role\simple_peripheral等移植到simple_peripheral_oad_onchip上才能生成bin吗?
2、offchip的bin与onchip的bin有什么区别?
,
Nick Sun:
您好,
疾风亦有归途 说:是不是以后使用的bin必须是将simple_central\multi_role\simple_peripheral等移植到simple_peripheral_oad_onchip上才能生成bin吗?
如果要生成的是onchip OAD的工程,我们建议是基于simple_peripheral_oad_onchip来进行修改。
疾风亦有归途 说:offchip的bin与onchip的bin有什么区别?
不能说是bin的区别,是onchip OAD和offchip OAD工程的区别。因为onchip OAD还包含一个persistent app工程,用来执行oad过程,向现有工程添加比较麻烦。
,
疾风亦有归途:
诉求:两个user_APP 分别在flash不同位置,user_APP_A:起始地址0x00->0xAA,user_APP_B:起始地址0xB1->0xB2, A刷写B,或者B刷A。升级方式使用Uart/SPI(非OAD),是否可行?
这个时候我们user_APP是否还要在simple_peripheral_oad_onchip上修改?
如果不依赖simple_peripheral_oad_onchip工程,那么Bin应该怎么生成?
对于我们要实现的AB分区还有什么参考资料和建议?
谢谢!!!
,
Nick Sun:
您好,
这个问题和本帖子主题不是很相关,希望您能重新开一个帖子进行提问,这也能方便其他人进行查询。
感谢您的配合和支持。本帖子将关闭。