Part Number:CC2642ROther Parts Discussed in Thread:CC2652R7
因为官方的OAD不能完全满足我们的项目要求(还有同一块PCB板上的另外一颗非TI的MCU内的程序,也想通过cc2642来进行OTA),现在要自己写OTA升级程序,我是想参考官方的OAD改动。可是这个程序定位(把用户程序和升级程序分别放在FLASH哪儿)把我难住了:
我现在要划分两个FLASH区域,一个存放用户程序,一个存放引导程序(就是完成所有下载事项的程序,包括下载后的BIN存放,判断跳转等),我怎么划分呢?是通过.cfg,还是ccs平台,还是.syscfg ?怎么实现?在哪里操作/实现这个划分事件功能?
Janet xu:
简言之:如果想cc2642可以下载任何一个bin文件,怎么来做这个OTA升级功能呢?不需要TI 官方的签名之类的防错防伪措施。
,
YiKai Chen:
如果是要做cc2642 OTA升级功能,建議用官方的,OTA基本上大同小異,你自己做,還是得看懂官方的OTA邏輯
,
Kevin Qiu1:
可以选择unsecure,这样就不会有签名
OAD详细说明查看这里:
https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_5_30_01_01/docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/ble5-oad-index-cc13xx_cc26xx.html
CC2652R1 flash只有352K,基本不可能使用onchip的方式来实现,需要使用offchip的方式将image存在外部flash上
所以实现起来还是比较复杂的,如果想用onchip,可以看下CC2652R7,它的flash有704K
,
Janet xu:
我想把TI的cc2642内部flash划分成两个区域,分别存放运行两个完全独立的程序(我们的产品设计是:一个蓝牙主机模式,终端用户程序。一个蓝牙从机模式,负责OTA升级事项。),可是这个FLASH配置划分,可是难住我了,感觉.cmd,.cfg,以及ccs平台预宏定义等等,都关联这个,好麻烦。由没有简单点的办法?
,
Janet xu:
OTA思路是大同小异,可是ti这个FLASH划分,就无比复杂,不够简洁清晰
,
Janet xu:
我们的用户程序很小的。我用官方的例程和官方APP(或BTool),已经完全可以使用onchip的方式进行OAD了。怎么升级都可以的。
,
Janet xu:
我试试unsecure,看下行不行,谢谢
,
Kevin Qiu1:
好的,你先试一下,如有问题再反馈
,
Janet xu:
你好!我的persistent_app工程无法设置成unsecure模式,编译产生不了hex文件
,
Kevin Qiu1:
按照这里的步骤禁用Secure OAD:https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_5_30_01_01/docs/ble5stack/ble_user_guide/html/ble-stack-oad/setting-up-environment.html#disable-secure-oad
Janet xu 说:我的persistent_app工程无法设置成unsecure模式,编译产生不了hex文件
我测试没有问题,可以生成hex和bin文件
,
Janet xu:
你好!请教一下:
1、如果我BIM工程选择了Release_unsecure,是不是persistent_app工程及用户程序工程(multi_role)也必须都使用Release_unsecure模式?如果我的用户程序必须使用Release模式,是不是没法使用不加密的OTA升级了(我现在是在改造使用OAD)?
2、我之前用纯官方例程,已经成功OAD了,但是BIM工程选择了debug,persistent_app工程及用户程序工程(multi_role)选的是Release。最初BIM工程也是用Release模式,就怎么也OAD不成功。
3、BIM,persistent_app工程及用户程序工程(multi_role),必须在同一个workspace里编译吗?
谢谢!
,
Kevin Qiu1:
1.我没有这样修改过,但是应该保持一致
2.这个也要保持一致,都是用release或者debug
3.没有这个限制
,
Janet xu:
我的persistent_app工程,设成release_unsecure后,就总是编译报错"C:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/examples/rtos/CC26X2R1_LAUNCHXLe5stack/persistent_app/tirtos/ccs/cc13x2_cc26x2_app.cmd", line 250: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment fails for section "GROUP_1" size 0x208c. Available memory ranges: FLASH_IMG_HDR size: 0x50 unused: 0x50 max hole: 0x50 error #10010: errors encountered during linking; "persistent_app_CC26X2R1_LAUNCHXL_tirtos_ccs.out" not built
不知道如何解决.
谢谢
,
Kevin Qiu1:
GROUP所占的空间超出了 FLASH_IMG_HDR的范围,检查flash使用情况
,
Janet xu:
可是我其它什么都不更改,只把release_unsecure改成release后,就能编译通过
,
Janet xu:
,
Janet xu:
,
Janet xu:
SDK:simplelink_cc13x2_26x2_sdk_5_20_00_52
,
Janet xu:
,
Janet xu:
我导入官方程序后就改动了这几个设置,其它没有动
,
Janet xu:
,
Kevin Qiu1:
除了最后面两条回复中的修改,还有修改TOOLS/defines文件中.opt文件中的-DSECURITY
其他所有都不必改动,release不必改为release_unsecure
,
Janet xu:
非常感谢,我试试
,
Janet xu:
请问一下:还有修改TOOLS/defines文件中.opt文件中的-DSECURITY
这个怎么修改?直接去掉-DSECURITY,还是用 // or ; 屏蔽掉?
谢谢
,
Kevin Qiu1:
直接去掉-DSECURITY或者改为-DxSECURITY
,
Janet xu:
非常感谢!persistent_app非安全版编译通过了
,
Kevin Qiu1:
问题已得到解决,将关闭此帖
如有其他问题,请使用右上角对应的按钮开一个新帖