Other 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里的示例还需要做什么修改才可以吗?
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.
在GitHub simplelink-connect-fw-bins上的OAD文件可以执行OAD升级。
但是在Resource Explorer中的basic_ble_oad_onchip、basic_persistent和mcuboot编译后无法正常执行OAD。
Resource Explorer里的示例还需要做什么修改才可以吗?
您好,
首先您是否例程进行修改了?
参考以下文档中使用 OAD 升级的步骤:
https://blog.csdn.net/taoking123/article/details/124422142
我们可以先给您提供一些注意事项,您可以参考如下帖子链接:
(+) CC2340R5: OAD detailed description - Bluetooth forum - Bluetooth®︎ - TI E2E support forums
1、没有修改示例代码,下载后编译通过。
2、升级过程了解。GitHub上给出的文件OAD烧写后OAD测试没问题,如果代码一致,我自己编译的应该也是一样的才对吧。
非常抱歉,
现在需要明确一下您的问题,以便我们更好地切入:
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 这三个文件。
1、是的
2、烧录后没有起机
3、Simplelink Connect导入的都是同一个镜像,GitHub上的basic_ble_oad_onchip_LP_EM_CC2340R5_freertos_ticlang-v2.0.0.bin
4、芯片中原来的固件有过很多种,不过这个应该不受影响吧,毕竟已经重新烧写了。
也就是升级同样的镜像,一个成功,一个失败吗?
OAD 升级成功的那次芯片里的固件是 GIthub 上的。
升级同样的文件出问题,就很有可能跟原来芯片里的执行 OAD 的固件有关系。
GitHub上的basic_ble_oad_onchip_LP_EM_CC2340R5_freertos_ticlang-v2.0.0.bin
确认一下这个版本的固件要在Resource Explorer里的示例基础上 OAD 需要哪些文件,很可能不包含您在 GIthub 下载的固件的里的某个必要文件。
前面关键点我没有说清楚。
Resource Explorer里的示例代码我这里编译完,按照GitHub上Uniflash同样的配置烧写后BLE没有起机。还没有到OAD那个步骤。
官方Resource Explorer里的示例建议按照官方的烧写流程。
特定版本的代码或配置可能会影响设备的正常启动。
您是按照下图的流程进行烧录的吗?

如果Github 上的 Release 文件您烧录后可以正常使用,SDK 版本是多少?
是否与您在 Resource Explore 上烧录导入的二进制文件的原 SDK 版本一致?
Resource Explorer里的示例代码我这里编译完,按照GitHub上Uniflash同样的配置烧写后BLE没有起机。
我这边也遇到了一些问题,正在解决中。
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上的软件并不匹配。
抱歉回复晚了,
这是 mcuboot 的问题。
您用 hexfiles 文件夹里的 mcuboot.hex 文件试一下。
自己编译 mcuboot 的话,有几个参数需要改的。
这是 mcuboot 的问题。
您用 hexfiles 文件夹里的 mcuboot.hex 文件试一下。
好,我现在试一下。
自己编译 mcuboot 的话,有几个参数需要改的。
需要修改什么参数呢?我本地的工程是否也需要相应的修改才能启动新的镜像?
这是 mcuboot 的问题。
您用 hexfiles 文件夹里的 mcuboot.hex 文件试一下
确定更换mcuboot后可以正常启动新的镜像。
麻烦尽快提供mcuboot部分需要修改的内容。
您好,
mcuboot 里的地址要和 flash memory map 对应:
例程的 memory map:
mcuboot 0x0 - 0x6000
persistent app 0x6000 - 0x32000
basic_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