Part Number:LP-EM-CC2340R5Other Parts Discussed in Thread:UNIFLASH, CC2340R5
在GitHub simplelink-connect-fw-bins上的OAD文件可以执行OAD升级。
但是在Resource Explorer中的basic_ble_oad_onchip、basic_persistent和mcuboot编译后无法正常执行OAD。
Resource Explorer里的示例还需要做什么修改才可以吗?
Yolande Wang:
您好,
首先您是否例程进行修改了?
参考以下文档中使用 OAD 升级的步骤:
https://blog.csdn.net/taoking123/article/details/124422142
我们可以先给您提供一些注意事项,您可以参考如下帖子链接:
(+) CC2340R5: OAD detailed description – Bluetooth forum – Bluetooth®︎ – TI E2E support forums
,
Xuefeng:
1、没有修改示例代码,下载后编译通过。
2、升级过程了解。GitHub上给出的文件OAD烧写后OAD测试没问题,如果代码一致,我自己编译的应该也是一样的才对吧。
,
Yolande Wang:
正在跟进您的问题。
,
Yolande Wang:
非常抱歉,
现在需要明确一下您的问题,以便我们更好地切入:
1.Github 上的 OAD 文件您是通过微信传输助手下载到手机本地,然后导入 App Connect 并且可以执行此 OAD 文件是吗?
2.basic_ble_oad_onchip、basic_persistent和mcuboot 这三个文件您使用 uniflash 遵循basic_persistent > basic_ble_oad_onchip > mcuboot 顺序添加镜像,一键烧录后(这里需要使用 Putty 确定是否烧写正常),再次执行 GIthub 上的 OAD 文件不可用?
3.两种方式您使用测试的 OAD 镜像文件都是 Github 上的吗?
4.两种方式,在芯片器件里原来的固件是哪一个,我明白现在的固件是 basic_ble_oad_onchip、basic_persistent和mcuboot 这三个文件。
,
Xuefeng:
1、是的
2、烧录后没有起机
3、Simplelink Connect导入的都是同一个镜像,GitHub上的basic_ble_oad_onchip_LP_EM_CC2340R5_freertos_ticlang-v2.0.0.bin
4、芯片中原来的固件有过很多种,不过这个应该不受影响吧,毕竟已经重新烧写了。
,
Yolande Wang:
也就是升级同样的镜像,一个成功,一个失败吗?
OAD 升级成功的那次芯片里的固件是 GIthub 上的。
升级同样的文件出问题,就很有可能跟原来芯片里的执行 OAD 的固件有关系。
Xuefeng 说:GitHub上的basic_ble_oad_onchip_LP_EM_CC2340R5_freertos_ticlang-v2.0.0.bin
确认一下这个版本的固件要在Resource Explorer里的示例基础上 OAD 需要哪些文件,很可能不包含您在 GIthub 下载的固件的里的某个必要文件。
,
Xuefeng:
前面关键点我没有说清楚。
Resource Explorer里的示例代码我这里编译完,按照GitHub上Uniflash同样的配置烧写后BLE没有起机。还没有到OAD那个步骤。
,
Yolande Wang:
官方Resource Explorer里的示例建议按照官方的烧写流程。
特定版本的代码或配置可能会影响设备的正常启动。
您是按照下图的流程进行烧录的吗?
,
Xuefeng:
Yolande Wang 说:您是按照下图的流程进行烧录的吗?
是的。我的Uniflash版本是8.4.0.4458
,
Yolande Wang:
如果Github 上的 Release 文件您烧录后可以正常使用,SDK 版本是多少?
是否与您在 Resource Explore 上烧录导入的二进制文件的原 SDK 版本一致?
,
Xuefeng:
Github上的文件看不到SDK版本,只有几个文件。
Resource Explore我下载的代码是7.20.01.10。
,
Yolande Wang:
您好,
我这边需要使用开发板来复现你的问题,看看日志,请等候一下。
,
Xuefeng:
这个有什么进展吗?
,
Yolande Wang:
Xuefeng 说:Resource Explorer里的示例代码我这里编译完,按照GitHub上Uniflash同样的配置烧写后BLE没有起机。
我这边也遇到了一些问题,正在解决中。
,
Xuefeng:
1、编译的mcuboot、persistent和ble_oad_onchip_V1烧写后通过simplelink更新ble_oad_onchip_V2,重启后广播名字还是Persistent APP。Persistent工程设备名称设置是Persistent_app,ble_oad_onchip工程设备名称设置是Basic BLE project。所以这个和我现在的情况是一致的,没有启动新的镜像。
使用GitHub上的软件烧录后第一次起机广播名是Persistent APP,通过simplelink更新V2软件后,广播名是Basic BLE project。
2、本地编译的示例工程和我自己的合并OAD的工程在simplelink中点击update都是直接启动OAD服务,然后下载。但是Github上下载的软件点击Update会先弹出Device Reset,然后才是发现OAD服务,开始更新,更新结束后还有一个Device Reset,而且这中间链接没有断开,广播名也更新了。
所以我更加怀疑Resource里下载的代码和GitHub上的软件并不匹配。
,
Yolande Wang:
抱歉回复晚了,
这是 mcuboot 的问题。
您用 hexfiles 文件夹里的 mcuboot.hex 文件试一下。
自己编译 mcuboot 的话,有几个参数需要改的。
,
Xuefeng:
Yolande Wang 说:
这是 mcuboot 的问题。
您用 hexfiles 文件夹里的 mcuboot.hex 文件试一下。
好,我现在试一下。
Yolande Wang 说:自己编译 mcuboot 的话,有几个参数需要改的。
需要修改什么参数呢?我本地的工程是否也需要相应的修改才能启动新的镜像?
,
Xuefeng:
Yolande Wang 说:
这是 mcuboot 的问题。
您用 hexfiles 文件夹里的 mcuboot.hex 文件试一下
确定更换mcuboot后可以正常启动新的镜像。
麻烦尽快提供mcuboot部分需要修改的内容。
,
Yolande Wang:
关于这部分参数的修改我已咨询更资深的工程师,有回复会立即答复您。
辛苦您等待一下。
,
Xuefeng:
好的,非常感谢!
,
Yolande Wang:
不客气
,
Yolande Wang:
您好,
mcuboot 里的地址要和 flash memory map 对应:
例程的 memory map:mcuboot 0x0 – 0x6000persistent app 0x6000 – 0x32000basic_ble app 0x32000 – 0x7C000
所以 mcuboot 中,flash_map_backend.h 里面修改地址:
#elif defined DeviceFamily_CC23X0R5 #define BOOTLOADER_BASE_ADDRESS 0x00000000 #define BOOT_BOOTLOADER_SIZE 0x00006000
#define BOOT_PRIMARY_1_BASE_ADDRESS 0x00006000 #define BOOT_PRIMARY_1_SIZE 0x0002c000
#define BOOT_SECONDARY_1_BASE_ADDRESS 0x00032000 #define BOOT_SECONDARY_1_SIZE 0x0004a000
,
Xuefeng:
修改之后mcuboot、persistent和oad_onchip可以更新并启动第二镜像了。
非常感谢。
,
Yolande Wang:
不客气,解决了问题就好!