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

LP-EM-CC2340R5: OAD示例和SDK中给出的代码不匹配?

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:

不客气,解决了问题就好!

赞(0)
未经允许不得转载:TI中文支持网 » LP-EM-CC2340R5: OAD示例和SDK中给出的代码不匹配?
分享到: 更多 (0)

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