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.

[参考译文] LP-CC2652RB:无法使用 Android 或 iOS 与 TI SimpleLink Starter 应用程序执行 OAD

Guru**** 2553450 points
Other Parts Discussed in Thread: CC2652RB, UNIFLASH, CC2652R, CC2642R

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/992038/lp-cc2652rb-unable-to-perform-oad-using-either-android-or-ios-with-ti-simplelink-starter-application

器件型号:LP-CC2652RB
主题中讨论的其他器件:CC2652RBUNIFLASHCC2652RCC2642R

您好!

这两种情况都具有类似的行为并显示相同的消息。

Header Failed!
标头被拒绝、存在故障:堆栈和
闪存边界不匹配、程序
条目不匹配

配对完成后会立即发生这种情况。 在 launchpad 输出上、我看到以下内容:

#000105 [424.313 ]信息:(project_zero.c:1417) Adv set 0 Enabled
#000106 [424.424]信息:(project_zero.c:1500)加密成功
#000107 [ 424.784 ]信息:(project_zero.c:1388) PHY 更新为2M
#000108 [424.844 ]信息:(project_zero.c:972) MTU 大小:247
#000109 [425.624] INFO:(led_service.c:419) ReadAttrCB:LED0 connHandle: 0 offset: 0 method:0x0A
#000110 [425.684] INFO:(led_service.c:430) ReadAttrCB:LED1 connHandle: 0 offset: 0 method:0x0A
#000111 [ 425.744]信息:(button_service.c:539) WriteAttrCB (CCCD):参数:0 connHandle:0 - OTA 写入
#000112 [425.744]信息:(project_zero.c:2506)(CB) Button Svc 特性配置更改参数 ID (0)。 正在将消息发送到应用程序。
#000113 [425.746]信息:(project_zero.c:2176) CCCD 更改信息:Button Service BUTTON0:启用通知
#000114 [ 425.804]信息:(button_service.c:539) WriteAttrCB (CCCD):参数:1 connHandle:0 - OTA 写入
#000115 [425.804]信息:(project_zero.c:2506)(CB) Button Svc Char config change paramID (1)。 正在将消息发送到应用程序。
#000116 [425.806) INFO:(project_zero.c:2187) CCCD Change msg:Button Service Button1: Notifications enabled
#000117 [ 427.484 ]信息:(button_service.c:539) WriteAttrCB (CCCD):参数:0 connHandle:0 - OTA 写入
#000118 [ 427.484 ]信息:(project_zero.c:2506)(CB) Button Svc Char config change paramID (0)。 正在将消息发送到应用程序。
#000119 [427.485] INFO:(project_zero.c:2176) CCCD 更改消息:按钮服务 BUTTON0:禁用通知/指示器
#000120 [427.544] INFO:(button_service.c:539) WriteAttrCB (CCCD):参数:1 connHandle:0 - OTA 写入
#000121 [427.544]信息:(project_zero.c:2506)(CB) Button Svc 特性配置更改参数 ID (1)。 正在将消息发送到应用程序。
#000122 [427.546] INFO:(project_zero.c:2187) CCCD 更改消息:Button Service Button1:禁用通知/指示器
#000123 [427.785]信息:(oad.c:752) OAD 事件= 3下一状态= 0
#000124 [427.845]信息:(oad.c:752) OAD 事件= 3下一状态= 0
#000125 [ 427.905 ]信息:(oad.c:752) OAD 事件= 3下一状态= 0
#000126 [ 427.966 ]信息:(oad.c:752) OAD 事件=0下一状态=0
#000127 [427.966 ]信息:(project_zero.c:837) OAD 错误:9.
#000128 [430.424] INFO:(project_zero.c:1737)已更新 E0:33:8E:54:5E:30的参数、间隔:30.0ms、延迟:0、超时:2000ms

这是使用 iOS 时的输出。 使用 Android 时、应用程序在前两条"(oad.c:752) OAD event=3 next state=0 "消息后崩溃。

是否应在头文件验证过程之前提示我选择固件文件?

BTW、我还尝试使用具有相同结果的简单外设项目。

TIA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的查询。 我通知了一位同事、他将尽快回复。

    此致、

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否指定所使用的 SDK 版本和移动应用程序版本?

    您可能需要尝试更新移动应用程序。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    SDK 版本为 cc13x2_26x2_SDK_4_40_04_04

    Android SimpleLink 应用版本为 v5.7.5 (内部版本86)

    新 LaunchPad 的测试结果

    我之前使用的 CC2652RB DK 经过修改、可集成其他传感器。 为了完全确定这不会导致问题的发生、我购买了一个新电路板。 以下是仅使用预加载在电路板上并在 SimpleLink 应用中提供的固件时使用相同 Android 应用的结果。

    • LaunchPad 预加载了"ProjectZero"
    • 已尝试通过 OAD 下载"SimpleSensor"固件
      • 系统提示我选择固件映像(之前未获取此映像)
      • OAD 成功完成
      • SimpleSensor 映像已启动、但无法正常工作。 应用程序名称未出现在设备列表中。
      • 已使用重置和左键恢复出厂映像
    • 对除"ProjectZero"之外的每个其他固件映像执行相同的操作。 所有这些都产生了相同的结果。
    • 然后使用 ProjectZero 文件执行 OAD
      • 结果与其他映像相同、但这次无法恢复出厂映像

    我有一个全新的 LaunchPad。 使用的唯一固件映像是预加载到电路板上或与 SimpleLink 捆绑的固件映像。 电路板被砖砌。 似乎备份出厂映像也已损坏。

    值得注意的有趣差异是、

    • 仅使用预加载和封装的映像、LaunchPad 在接受 OAD 之前不会请求配对
    • 使用 ProjectZero I built、系统将提示您对器件进行配对。 输入日志输出中显示的"123456 "后、配对完成、但应用程序崩溃。

    已尝试以下应用程序

    • Android Samsung Galaxy Tab S2、Starter App v5.5.7 (内部版本86)、运行 Android 7.0
    • Android Samsung Galaxy Tab S6 Lite、Starter App v5.5.7 (内部版本86)、Android 11
    • iOS Starter App v5.9 (内部版本287)、iOS 14.4.2

    有什么建议?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您开展的详细调查。

    首先、我不认为 LaunchPad 真的是被骗了。 使用 Uniflash 或闪存编程器进行批量擦除将允许您在器件上刷写新映像。 换句话说、您可以使用相同的 LaunchPad 来运行下一个测试。

    我已成功重现您的问题并找到解决方法-我将打开一个内部 TT 以跟踪这些问题。

    问题的原因有2个:

    • iOS Starter App v5.9 (内部版本287)、iOS 14.4.2无法与适用于 BAW 器件(CC2652RB)的 SDK 4.40.04.04正常配合使用-但它确实适用于 CC26x2R。 我没有使用 Android 应用程序运行测试。
    • 在发货 launchpad 上刷写的 project_zero 映像可能来自无法轻松更新的稍微旧的构建 (实际上、为了进行更新、您可能需要使用特定标志编译新映像-我记得我在论坛上讨论过这一点、但我没有找到该主题)

    作为临时权变措施、我建议使用具有最新 SDK 的 CC26x2R 或具有 SDK 4.20的 CC2652RB。

    然后、按照以下步骤操作、您应该能够完成 OAD 过程:

    1. 使用闪存编程器、在器件上刷写预编译的 PROJECT_ZERO 映像。
      如果您使用的是 CC2652RB、请使用存储在 C:/ti/simplelink_cc13x2_26x2_sdk_4_20_00_35/examples/rtos/CC2652RB_LAUNCHXL/ble5stack/hexfiles/project_zero_unsecure_app.hex 中的映像
      如果您使用的是 CC26x2R、请使用存储在 C:/ti/simplelink_cc13x2_26x2_sdk_4_40_04_04/examples/rtos/CC26X2R1_LAUNCHXL/ble5stack/hexfiles/project_zero_unsecure_app.hex 中的映像
      确保擦除器件的闪存:
    2. 重新启动设备
    3. 连接应用程序并完成 OAD 过程

    最后、我所描述的过程将引导您使用不安全的 PROJECT_ZERO。 因此、在运行 OAD 之前、您无需配对。 如果要使用安全 OAD,则必须像以前一样重建映像。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我下载了 SDK 4.20.01.04并构建了 PROJECT_ZERO 和 simple_peripheral_oad_offchip。 这两个映像都通过无线方式更新、并使用 Android SimpleLink 应用程序成功运行! (我之前已通过加载工作映像、然后执行按钮恢复出厂映像来恢复出厂映像)

    问题:

    1. 为什么 CC2652RB 需要旧的 SDK 版本? 它似乎是后面的两个主要版本。
    2. CC2652RB Launchpad 和 CC26x2R1 Launchpad 之间有何区别? 它们都支持 CC2652R 的开发、但后者支持较新的 SDK?
    3. 使用相同的电路板和出厂加载的映像、使用 SDK 4.40映像执行 OAD 会请求配对、而使用 SDK 4.20创建的映像不需要配对。 这似乎很奇怪、因为我认为安全性/配对是由 BIM 确定的?

    关注点:

    1. 尽管电路板以前在技术上不"有缺陷"、但它需要加载并运行良好的图像才能恢复到出厂图像。 出厂映像的整体理念是在下载失败或映像出现故障时提供备份。 理想情况下、电路板将检测到问题并自动进行故障转移。 我们正在使用该处理器创建生产产品。 它封装在密封单元中。 如何恢复?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    问题实际上是在移动应用中。 如果您使用其他 OAD 提供程序(通常为 host_test)尝试使用 OAD、则不会遇到此问题。 同样、移动应用程序开发人员现已知道此问题、并将采取措施。

     2:CC2652RB 是 BAW (无晶振)器件。 CC26x2R (即 CC2642R、CC2652R)器件需要晶体。 因此 、CC2652RB 和 CC26x2R 不兼容二进制。 这种二进制差异导致了移动应用程序的问题。

    3-正确,BIM 处理图像验证/验证过程。 BIM 有两个选项-"安全"和"不安全"。 BLE5-Stack 2.02.00.00 (SDK 4.40的一部分)实现了安全 OAD、现在这是默认配置。 如果您希望使用非安全 OAD、请参阅我们 的文档

    您的疑虑是有效的。 但是、您的产品不会发生这种情况。 首先、我确信您在 尝试现场的任何 OAD 操作之前正在实验室中运行 OAD 测试。 第二、正如我 之前提到的、在 Launchpad 上刷写的映像来自相当旧的 SDK 版本。 自构建开箱即用映像以来、BLE 堆栈已发生重大变化。 这会导致 BIM 和图像之间存在一定的不兼容性(下面 是一个示例)。 在这些情况下、我们提供了权变措施。 为什么它会在手机上出现故障呢? 因为这款移动应用就是一个示例。 该应用程序应验证 器件上运行的 BIM 版本、并尝试使用基于 OAD 构建的映像稍微有所不同。  

    我希望这将有所帮助、如果您有更多问题、请告知我们。

    此致、