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.

[参考译文] CC2652R7:片上 OAD 在 SimpleLink Connect 中失败、但在 btool 中成功

Guru**** 2527310 points
Other Parts Discussed in Thread: CC2652R7, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1556619/cc2652r7-on-chip-oad-fails-in-simplelink-connect-but-succeeded-in-btool

器件型号:CC2652R7
Thread 中讨论的其他器件: UNIFLASHSYSCONFIG

工具/软件:

尊敬的团队:

我正在开发一个添加了片上 OAD 的固件、类似于文章(LAUNCHXL-CC26X2R1:CC2642R1 BLE OAD:片上简单外设 OAD、OAD 过程未启动 — 蓝牙论坛- BluetoothRegistered︎ — TI E2E 支持论坛)、我可以使用 btool 成功进行 OAD 更新、但简单链接连接应用失败、它一直提到 OAD 复位失败。 之后,我发现设备进入了持久应用程序,我可以再次连接它以继续我的更新。  
但当我使用 btool 时、每次我尝试更新时、OAD 都成功。

我正在为我的 CC2652R7 使用“simplelink_cc13xx_cc26xx_sdk_7_40_00_77",“,您、您能帮忙解决此问题吗? 非常感谢!

此致、

Jermyn

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

    这里是屏幕截图、我尝试使用可以在 btool 中成功更新的固件进行更新:

    出现故障后、我发现该器件被广播为 persistent App:


    在这种情况下、OAD 进度开始  

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

    您好!

    当器件重新启动但 SimpleLink 应用程序无法重新连接到器件时会发生您看到的错误(请参阅此处负责此错误消息的代码) 。 SimpleLink 应用无法重新连接的原因可能有多种、首先想到的是 NVS 中用于您的应用和永久应用的配对信息不同。

    是否可以尝试以下步骤:
    -使用 BTool 执行 OAD 过程并发送 BTool 生成的日志?  
    -告诉我,如果你为你的应用程序或永久应用程序的 OAD 代码中有任何更改?
    -告诉我如何在 UniFlash 中刷写您的应用程序?
    -显示您在 SysConfig 中对 NVS 地址的设置?
    -最后, OAD 是否使用 SDK 中的 OAD 示例工作?

    此致、
    Maxence

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

    您好、Maxence、

    感谢您的快速答复。

    1) 这里是日志文件:e2e.ti.com/.../on_5F00_chip_5F00_OAD_5F00_btool.txt

    2) 不是、我刚刚使用了 低功耗蓝牙通过无线下载 (OAD) 高级版代码—CC13XX CC26XX SimpleLink Academy

    3) 这里是我刷新应用程序的方式。 我遵循了规则:

    CC2652R7 (TI BIM):
    片上 OAD:
    0x00 -> ble5_simple_peripheral_oad_onchip_public_address_cc26x2r7_iar_FlashROM_Release_oad.bin
    0x86000 -> ble5_persistent_app_cc26x2r7_iar_FlashROM_Release_persistent_oad.bin
    Auto (0xae000)-> ble5_bim_onchip_cc26x2r7_iar_Release_bim.hex

    来自 主·Texas Instruments/simplelink-connect-fw-Bins·GitHub 中的 simplelink-connect-fw-Bins /CC2652R7 /readme.txt

     

    4) 她是从 simplelink_academy 提到的 NVS 设置

    5) 此处使用服务器的.bin 文件

    这是使用 CCS Resource Explorer 中开箱即用的 ON_CHIP_OAD 示例文件

     

    两个文件都无法进行更新。

    请您帮助了解一下、非常感谢。

    此致、

    Jermyn

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

    你好 Jermyn!

    我想我已经为您的问题提供了解决方案。  以 CC26X2R1_LAUNCHXL 器件为例、提供了 SLA。 正如您正确指出的那样、CC2652R7 器件的闪存布局不同:

    -用户应用程序闪存从 0x0 开始
    -永久应用程序是 0x86000 到 0xAE000
    - BIM 是从 0xAE000 到设备的末尾 (0xB0000)

    布局不同的原因是为用户应用提供更多空间、因为 CC2652R7 比 CC26X2R1 器件具有更多的闪存。

    当向用户应用程序提供 OAD 指令时、该指令会重新引导至永久应用程序。 然后、它必须重新连接到通过 BLE 发出此指令的中心端。 要无缝重新连接、它必须使用用户应用程序中存储在 NVS 中的绑定信息。 必须在永久应用程序和用户应用程序之间共享 NVS、以便永久应用程序正确绑定。

    在 CC26X2R1_LAUNCHXL 器件的 SLA 上、此共享 NVS 的地址为 0x34000 至 0x38000。 但是、对于 CC2652R7、此共享 NVS 来自  0x82000 至 0x86000。

    在您为应用程序共享的屏幕截图中、两个 NVS 值都是错误的、因为需要遵循 CC2652R7 特有的值、如下所示:

    这将解决您的问题。 如果您需要有关如何为您的器件执行 OAD 的参考示例、应查看以下示例的 SysConfig 值:
    - persistent_app_LP_CC2652R7 _tirtos7_ticlang
    - bim_onchip_LP_CC2652R7 _nortos_ticlang
    - simple_peripheral_oad_onchip_LP_CC2652R7 tirtos7_ticlang

    此致、
    Maxence

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

    嗨、Maxine、  

    感谢您的答复。 我会试试的!

    感谢您的建议、这很有帮助、我将深入介绍 CC2652R7 示例的 SysConfig 值。

    此致、

    Jermyn

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

    嗨、Maxine、

    我发现 simplelink connect 应用程序中仍然更新失败。

    [报价 userid=“646004" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1556619/cc2652r7-on-chip-oad-fails-in-simplelink-connect-but-succeeded-in-btool/5992826

    必须在永久应用程序和用户应用程序之间共享 NVS、以便永久应用程序正确绑定。

    在 CC26X2R1_LAUNCHXL 器件的 SLA 上、此共享 NVS 的地址为 0x34000 至 0x38000。 但是、对于 CC2652R7、此共享 NVS 来自  0x82000 至 0x86000。

    [/报价]

    如您所述、我更改了 NVS 地址、并检查了持久应用 NVS 地址是否与您提到的相同、并且与我在固件中使用的地址相同。

    但这一次、当我尝试通过应用进行更新时、它显示了这一点

    我还在开箱即用的  simple_peripheral_oad_onchip_LP_CC2652R7 _tirtos7_ticlang 示例中查看了 syscfg、它们大多数应该相同。 但我为了自己的目的更改配对模式:

    根据您 在此处分享的代码、 问题似乎与有关  

    外围设备 ID、
    UUUID.OadServiceUuid、
    UUUID.ImageIdentifyWriteUuid

    我正在通过 iOS 使用该应用程序、您能帮我了解一下吗? 非常感谢。

    此致、

    Jermyn

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

    您好!

    器件是否会重新启动至 PERSISTENT 应用程序、并且您可以在 SimpleLink Connect 应用程序上看到吗? 如果是、连接到持久应用程序时、您是否在应用程序中看到 OAD 服务?

    此致、
    Maxence

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

    您好、

    是的、器件重新启动至持久应用程序、我可以选择 OAD 更新、但这一次当我尝试从持久应用进行更新时、它首先要求我手动重置器件、在我重置它后、它说 是同一个‘“未找到 OAD service “。

    此致、

    Jermyn

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

    您好!

    您是否更改了应用程序和永久应用程序的 NVS 值?

    此致、
    Maxence

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

    您好、

    我按照你的建议更改我的应用程序的 NVSINTERNAL 和 NVSINTERNAL1 地址,如你在图片中所示,我签出了永久应用程序(持久应用程序)的 NVSINTERNAL 和 NVSINTERNAL1 地址,我没有更改它,它已经与你在图片中显示的一样。

    我的申请和永久申请都是:

    NVSINTERNAL

    区域基数:0x820000

    区域大小:0x4000

    NVSINTERNAL1.

    区域基址:0x0

    区域大小:0x82000

    很抱歉、我的设备不在我的身边、我 现在无法截屏。 非常感谢。

    此致、

    Jermyn

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

    您好、Maxence。

    以下是持久应用中 NVS 的屏幕截图:

    以下是固件中的 NVS 地址:

    [报价 userid=“646004" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1556619/cc2652r7-on-chip-oad-fails-in-simplelink-connect-but-succeeded-in-btool/5995535

    器件是否会重新启动至 PERSISTENT 应用程序、并且您可以在 SimpleLink Connect 应用程序上看到吗? 如果是、连接到持久应用程序时、您是否在应用程序中看到 OAD 服务?

    [/报价]

    但这次我有一个发现:

    尝试从应用程序更新后、接口会切换到以下内容:

    如果我继续更新、它将显示出来

    然后、复位后将显示:

    但是我发现这个界面很奇怪,这个名称是“持久应用程序“,但服务和我自己的应用程序是一样的。

    然后,我尝试忘记设备并重新连接,它成为真正的持久应用程序界面:

    这次更新成功:

    我还发现、对于我的应用程序、服务是:

    但对于持久应用、它是:

    这是我迄今所发现的,希望局势足够明朗。 非常感谢。

    此致、

    Jermyn

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

    您好、 Maxence、

    请问是否有任何更新? 非常感谢。

    此致、

    Jermyn

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

    您好 Jermyn、

    Maxence 将在接下来的几周内停用、因此我将继续支持该主题。  

    我有几个问题:

    1. 这种行为是否一致? 如中所述、您是否能够轻松复制它?
    2. 这种行为是否在 Android 设备上可见? 我问的原因是苹果设备有时会缓存信息、这些信息在执行 OAD 更新时可能会发生变化。

    此致、

    Tarek D

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

    尊敬的 Tarek:

    感谢您的答复。  

    1) 是的、每次使用 OAD 更新时都是相同的。

    2) 对于我的 Android 设备,它首先要求我手动重置设备,之后的进度开始并成功。

     

    此致、

    Jermyn

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

    您好 Jermyn、

    感谢您回答我的问题! 我认为手动重置是预期行为。 但是,对于 IOS 问题,我担心这个问题可能是在 IOS 方面,在那里它缓存不必要的信息,这将解释为什么它开始工作后你“忘记“的设备,这将删除所有绑定信息从手机.

    如果您有任何其他问题、请告诉我!

    此致、

    Tarek D