Part Number:CC2340R5
BLE->General Configuration->Address Mode设置为RPA with Public ID,手动修改的设备名称可以实时更新,但是这个会导致OAD卡在Device Reset,不会自动执行download。
BLE->General Configuration->Address Mode设置为Public Address,OAD执行Device Reset之后可以自动执行下载,但是修改的设备名刷新会很慢。
如何设置才能兼顾OAD和设备名实时刷新?
Yolande Wang:
您好,
根据这个帖子的描述,您目前遇到的问题似乎是 SDK 中有 Bug 待修复:
https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1292499/cc2340r5-about-oad-update-address-mode?tisearch=e2e-sitesearch&keymatch=address%20mode%20oad#
,
Xuefeng:
谢谢,我看完了这个帖子。
看结论是只有iOS有这个问题。
两个月了,这个问题还没有解决吗?
,
Yolande Wang:
这个问题我会去询问一下更资深的工程师,请等候回复。
,
Yolande Wang:
非常抱歉,仅在 iOS 设备上重现的问题仍在审查中。
您可以用安卓手机复现此现象吗?
,
Xuefeng:
谢谢回复。
目前这边安卓手机下载不到simplelink connect这个应用;我们这边没有安卓开发环境,GitHub上的代码我们这里也编不了。
,
Yolande Wang:
等下 iOS App 更新,已经催促过了。
,
Xuefeng:
谢谢!
可以提供一个安卓的apk安装测试吗?
,
Yolande Wang:
这个文件我发到您的邮箱。
,
Xuefeng:
邮箱已经私发给你,谢谢。
,
Yolande Wang:
不客气,我已发送到邮箱,请注意查收。
,
Xuefeng:
使用安卓的simplelink connect更新BLE,点击update后提示Device Reset,过几十秒后提示OAD service reset failed。
所以这个问题可能和Address Mode设置无关?而是RPA设置导致BLE OAD service失败?
,
Yolande Wang:
您有选这个选项吗:Initiate a pairing requeset
,
Xuefeng:
测试了Pairing Mode设置为Initiate a pairing request,同样的错误。
,
Yolande Wang:
寻址改了,flash_map_backend.h 文件也要进行修改。
是否可以按照链接中此回复提到的修改步骤进行尝试:
,
Xuefeng:
寻址已经修改并且重新编译了mcuboot,所以Address Mode是Public Address的情况下才可以正常OAD。
目前出问题的只是Address Mode设置为RPA。
,
Yolande Wang:
正在跟进问题,请等候一下。
,
Yolande Wang:
当设备使用 RPA 时,即使定期刷新其地址,它也必须与移动应用程序绑定才能被识别为“同一设备”。
使用片上 OAD 时的 OAD 过程包括 1) 连接到应用程序,2) 重置目标,3) 连接到持久应用程序。但是,当设备在步骤 #3 进行广播时,它使用的地址与它在步骤#1 中使用的那个。
此“问题”会阻止移动应用程序识别设备并重新连接到设备以继续 OAD 过程。这会导致超时并最终导致您提到的错误消息。
解决方法包括使用 iOS 的蓝牙接口连接和配对 CC2340R5。设备配对后,即可通过 SimpleLink Connect 移动应用程序运行 OAD 流程。
这种行为在 iOS 中很难修复,这就是我建议这种解决方法的原因。
,
Xuefeng:
这个没有办法把相应的信息从oad-on-chip发到persistent吗?
,
Yolande Wang:
可以考虑在执行设备名称修改操作时,同时将名称写入到持久存储中。
,
Xuefeng:
名字已经写入SNV。但是Public Address模式下更新名字时效性不能满足需求。
,
Yolande Wang:
Yolande Wang 说:解决方法包括使用 iOS 的蓝牙接口连接和配对 CC2340R5。设备配对后,即可通过 SimpleLink Connect 移动应用程序运行 OAD 流程。
如果考虑从 RPA 角度解决此问题,可以参考上述建议。
,
Xuefeng:
BLE设置为Initiate a pairing request要输入的执行代码要在哪里查看?
,
Yolande Wang:
应该只能通过 log 去查看
,
Xuefeng:
我没有输入任何字符,直接点击配对,也可以连接。连接后测试OAD,simplelink没有跳转到下载,点击取消退出,广播已经是persistent app。
这种情况和输入正确密钥配对有什么区别吗?
,
Yolande Wang:
在蓝牙配对过程中,是否输入正确的配对密钥通常取决于配对模式和配对过程的设置。
一般来说,配对过程中输入正确的配对密钥可以增加安全性,但在某些情况下可能不是必需的。
,
Xuefeng:
Yolande Wang 说:
在蓝牙配对过程中,是否输入正确的配对密钥通常取决于配对模式和配对过程的设置。
一般来说,配对过程中输入正确的配对密钥可以增加安全性,但在某些情况下可能不是必需的。
谢谢解答。
现在RPA地址模式下调整配对模式并没有影响结果。那么我们是否有办法把RPA相关信息从oad-on-chip传递给persistent呢?目前的现象是跳转到persistent的过程中地址发生了改变,导致失去了连接,我们是不是确保两边地址一致就可以保持连接?
,
Yolande Wang:
random public address 不需要在 OTA 的情形下。
,
Xuefeng:
radom public address我设置了C01100110011, 启动后设置名字的功能不生效,也无法debug。
,
Yolande Wang:
在 OAD 期间,RPA 可能会更新地址,影响 OAD 流程中的身份验证,因为 OAD 服务器可能需要知道设备的确切地址才能执行更新。
而 PA 模式下,设备使用的是固定地址进行通讯,使得 OAD 更新过程更容易进行身份验证和连接。
Xuefeng 说:radom public address我设置了C01100110011, 启动后设置名字的功能不生效,也无法debug。
可以看下这个连接:https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1265754/cc2340r5-basic_ble-crashes-using-static-random-address?tisearch=e2e-sitesearch&keymatch=random%25252520public%25252520address#