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.

[参考译文] RTOS/CC2640R2F:OAD 不再工作

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/802418/rtos-cc2640r2f-oad-not-functioning-anymore

器件型号:CC2640R2F

工具/软件:TI-RTOS

您好!

我们制作了一个具有 OAD 功能的软件 、为此我们使用了 Simpleling SDK 1.50.58。

现在、我们遇到 OAD 开始出现故障。  我们在第一个块被写入芯片后获得超时。

这以前一直在工作,即使 OAD 与我们以前使用的 binfiles 一起工作也是成功的。

我们已经尝试重新安装 CCS、SDK、编译器和 XDC 工具、但没有任何帮助。

您对我们接下来可以尝试的操作有什么想法吗?

[534]: -06:10:38.443
OAD 发送启动 OAD 到 ImageControl
------------------------------
[535]: 06:10:38.443
-类型 :0x01 (命令)
-OpCode :0xFDB6 (GATT_WriteNoRsp)
-数据长度:0x05 (5)字节
ConnHandle :0x0000 (0)
句柄 :0x0041 (65)
值 :03
转储(Tx):
0000:01 B6 FD 05 00 41 00 03 … A.
----------------------------------------
[536]: 06:10:38.482
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x06 (6)字节
事件 :0x067F (1663)(GAP_HCI_ExtentionCommandStatus)
状态 :0x00 (0)(成功)
操作码 :0xFDB6 (GATT_WriteNoRsp)
DataLength :0x00 (0)
转储(Rx):
0000:04 FF 06 7F 06 00 B6 FD 00 。
----------------------------------------
[537]: 06:10:38.502
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x0E (14)字节
事件 :0x051B (1307)(ATT_HandleValueNotification)
状态 :0x00 (0)(成功)
ConnHandle :0x0000 (0)
Pdualen :0x08 (8)
句柄 :0x0041 (65)
值 :12:00:00:00:00:00:00:00
Dump (Rx):
0000:04FF 0E 1B 050008410012000000000000........ A.
0010:00 。
----------------------------------------
[538]: 06:10:38.502
-类型 :0x01 (命令)
-OpCode :0xFDB6 (GATT_WriteNoRsp)
-数据长度:0xf8 (248)字节
ConnHandle :0x0000 (0)
句柄 :0x003D (61)
值 :00:00:00:4F:41:44:20:49:4D:47:20:D4:A6:0B:74:
01:01:FE:00:FF:FF:01:FF:FF:FF:FF:35:1B:01:00:
50:00:00:00:30:30:31:34:1B:01:00:2C:00:FF:FF:FF:
00:FE:00:FF:18:00:00:00:40:01:00:01:C0:01:00:
20:05:00:20:68:3C:00:20:01:FE:00:FF:F1:1A:01:00:
00:00:00:00:68:3C:00:20:E1:E0:00:00:01:C9:01:10:
01:C9:01:10:01:C9:01:01:C9:01:10:01:C9:01:10:01:10:
01:C9:01:10:01:C9:01:01:C9:01:10:01:C9:01:10:01:10:
01:C9:01:10:01:C9:01:01:C9:01:10:3F:C9:01:10:
FF:FF:FF:FF:AF:48:2D:E9:F0:4F:0A:26:AD:F1:6C:0D:
00:25:00:68:AC:4C:02:90:BD:48:10:96:00:68:14:96:
2F:46:04:90:4F:F0:01:08:11:97:04:F1:68:00:13:97:
04:F1:20:0B:8D:F8:04:50:00:F1:41:01:03:91:B5:49:
CD:F8:48:80:86:1D:09:68:B4:4B:05:91:B2:49:15:96:
99:46:06:91:56:30:16:90:16:31:07:91:4F:F4:61:61:
08:91:29:46
转储(Tx):
0000:01 B6 FD F8 00 3D 00 00 00 00 00 00 4F 41 44 20 ...... =..... OAD
0010:49 4D 47 20 D4 A6 0B 74 01 FE 00 FF 01 IMG ... t.
0020:FF FF FF FF FF 35 1B 01 00 50 00 30 30 30 31 ... 5... P..0001
0030:34 1B 01 00 2C 00 FF 00 FE 00 FF 18 00 00 00 00 4
0040:00 40 01 00 01 C0 01 00 20 05 00 20 68 3C 00 20。@… 。 H<。
0050:01 FE 00 FF F1 1A 01 00 00 00 00 68 3C 00 20 ........ H<。
0060:E1 E0 00 01 C9 01 10 01 C9 01 10 01 C9 01 10 ........
0070:01 C9 01 1001 C9 01 1001 C9 01 1001 C9 01 10........
0080:01 C9 01 1001 C9 01 1001 C9 01 1001 C9 01 10 ........
0090:01 C9 01 10 3F C9 01 10 FF FF FF AF 48 2D E9………… H-。
00A0:F0 4F 0A 26 AD F1 6C 0D 00 25 00 68 AC 4C 02 90 .O....h.L.00B0
:BD 48 10 96 00 68 14 96 2F 46 04 90 4F F0 01 08 .H..h./F.O.
00C0:11 97 04 F1 68 00 13 97 04 F1 20 0B 8D F8 04 50 ... h .... P
00D0:00 F1 41 01 03 91 B5 49 CD F8 48 80 86 1D 09 68 ..A....I..H....h
00E0:B4 4B 05 91 B2 49 15 96 99 46 06 91 56 30 16 90 .K...
00F0:16 31 07 91 4F F4 61 61 08 91 29 46 F
----------------------------------------------
[539]: 06:10:38.554
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x06 (6)字节
事件 :0x067F (1663)(GAP_HCI_ExtentionCommandStatus)
状态 :0x00 (0)(成功)
操作码 :0xFDB6 (GATT_WriteNoRsp)
DataLength :0x00 (0)
转储(Rx):
0000:04 FF 06 7F 06 00 B6 FD 00 。
----------------------------------------
[540]: 06:10:48.573
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x0E (14)字节
事件 :0x051B (1307)(ATT_HandleValueNotification)
状态 :0x00 (0)(成功)
ConnHandle :0x0000 (0)
Pdualen :0x08 (8)
句柄 :0x0041 (65)
值 :12:00:01:00:00:00
转储(Rx):
0000:04 FF 0E 1B 05000841 001200010000........ A.
0010:00 。
----------------------------------------
[541]: 06:10:48.573
-类型 :0x01 (命令)
-OpCode :0xFDB6 (GATT_WriteNoRsp)
-数据长度:0xf8 (248)字节
ConnHandle :0x0000 (0)
句柄 :0x003D (61)
值 :01:00:00:09:91:4F:F4:96:61:0A:91:29:46:0B:91:
3c:21:0C:91:29:46:0D:91:A9:4F:0E:91:46:0F:91:
DE:E3:02:2E:00:F0:A6:83:03:2E:00:F0:88:83:05:2E:
00:F0:7D:83:0D:2E:00:F0:6F:83:04:2E:00:F0:02:83:
06:2E:00:F0:C0:82:07:2E:0F:F2:FC:2A:00:F0:88:82:
08:2E:00:F0:11:82:0A:2E:00:F0:D9:81:0E:2E:00:F0:
C8:81:0B:2E:00:F0:B2:81:43:2E:00:F0:89:81:40:2E:
00:F0:6E:81:42:2E:00:F0:25:81:C0:48:00:68:15:2E:
00:F0:F4:80:13:2E:00:F0:E9:80:02:98:12:2E:00:F0:
D2:80:48:2E:00:F0:C9:80:89:2E:40:F0:C4:80:06:F0:
BF:FC:01:28:02:D0:13:20:05:F0:2C:FC:0E:F0:12:FC:
87:F8:12:80:40:46:07:F0:6F:FB:AA:46:0E:F0:0A:FC:
14:E0:21:20:0D:F0:46:FC:F8:7C:01:28:14:BF:09:20:
40:46:07:F0:61:FB:04:98:19:99:00:F0:95:FC:0E:F0:
F9:FB:97:F8:2A:60:0E:B1:06:F0:CA:FF:F8:79:00:28:
E7:D0:40:46
转储(Tx):
0000:01 B6 FD F8 00 3D 00 01 00 00 09 91 4F F4 ...... =…… O.
0010:96 61 0A 91 29 46 0B 91 3C 21 0C 91 29 46 0D 91 a.a) F. 06:10:48.633
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x06 (6)字节
事件 :0x067F (1663)(GAP_HCI_ExtentionCommandStatus)
状态 :0x00 (0)(成功)
操作码 :0xFDB6 (GATT_WriteNoRsp)
DataLength :0x00 (0)
转储(Rx):
0000:04 FF 06 7F 06 00 B6 FD 00 。
----------------------------------------
[543]: -06:10:48.662
OAD ImageControl 响应
命令 ID = 0x12 (ImageBlockWriteRsp)
状态= 0x05 (OAD_NOT _Started)-------------------------------------------------------

[544]: 06:10:48.662
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x0E (14)字节
事件 :0x051B (1307)(ATT_HandleValueNotification)
状态 :0x00 (0)(成功)
ConnHandle :0x0000 (0)
Pdualen :0x08 (8)
句柄 :0x0041 (65)
值 :12:05:00:00:00:00:00
转储(Rx):
0000:04FF 0E 1B 0500084100120500000000........ A.
0010:00 。
----------------------------------------
[545]: -06:10:48.662
OAD 下载失败-------------------------------------------------------

[546]: -06:10:48.662
OAD -恢复连接设置-------------------------------------------------------

[547]: -06:10:48662
OAD 下载未成功-------------------------------------------------------

[548]: 06:10:48.662
-类型 :0x01 (命令)
-OpCode :0x2016 (HCI_LEReadRemoteUsedFeatures)
-数据长度:0x02 (2)字节
句柄 :0x0000 (0)
转储(Tx):
0000:01 16 20 02 00 。 (笑声)
----------------------------------------
[549]: 06:10:48.713
-类型 :0x04 (事件)
-EventCode :0x003E (HCI_LE_GenericReportEvent)
-数据长度:0x0C (12)字节
LE 事件代码:0x04 (4)(HCI_LE_RemoteReadUCompleteFeaturesEvents)
LE 事件代码:0x04 (4)(HCI_LE_ReadRemoteInstalledFeaturesCompleteEvents)
状态 :0x00 (0)(成功)
ConnectionId:0x0000 (0)
功能 :0x0000000000FD (253)(
加密
reject_Extended_indication
Slave_Features_Exchange
Ping
Data_Packet_Length _Extension
隐私
extended _ Scanner _ Filter _ Policies)
Dump (Rx):
0000:04 3E 0C 04 00 00 00 FD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.>..........
----------------------------------------
[550]: 06:10:48.713
-类型 :0x01 (命令)
-OpCode :0xFE11 (GAP_UpdateLinkParamReq)
-数据长度:0x0A (10)字节
ConnHandle :0x0000 (0)
IntervalMin:0x0050 (80)
IntervalMax:0x0050 (80)
ConnLatency:0x0000 (0)
ConnTimeout:0x07D0 (2000)
Dump (Tx):
0000:01 11 FE 0A 00 00 50 00 00 00 00 00 00 D0 07 … P.P.....
----------------------------------------
[551]: 06:10:48.743
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x06 (6)字节
事件 :0x067F (1663)(GAP_HCI_ExtentionCommandStatus)
状态 :0x00 (0)(成功)
操作码 :0xFE11 (GAP_UpdateLinkParamReq)
DataLength :0x00 (0)
转储(Rx):
0000:04 FF 06 7F 06 00 11 FE 00 。
----------------------------------------
[552]: 06:10:48.833
-类型 :0x04 (事件)
-EventCode :0x00FF (HCI_LE_ExtEvent)
-数据长度:0x0B (11)字节
事件 :0x0607 (1543)(GAP_LinkParamUpdate)
状态 :0x00 (0)(成功)
ConnHandle :0x0000 (0)
ConnInterval:0x0050 (80)
ConnLatency:0x0000 (0)
ConnTimeout:0x07D0 (2000)
Dump(Rx):
0000:04 FF 0B 07 06 00 00 50 00 00 00 D0 07 ………… 第...页。
----------------------------------------

此致

Viggo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Viggo、
    我要将此主题分配给 OAD 专家之一。 敬请期待答案。 同时、您是否也有机会捕获嗅探器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Viggo、

    您是否知道 OAD 成功后可能会发生什么变化?

    请在您的回复中附上完整的 BTool 日志、以便我可以更好地提供帮助。

    此致、
    Yuval

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我将在今天发布监听器日志

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

    您好!

    我在问题发生之前将 CCS 更新为较新版本。 但是、我们将所有内容重新安装到旧版本、以确保与上次构建没有区别。

    奇怪的是、这是旧软件和我们使用之前的设置构建的 app_image 发生的。 我们已经对这个 app_image (bin 文件)和旧固件进行了很多 OAD 测试、并且它在早期就可以正常工作。 但是、当我们现在在 BTool 中对其进行测试时、我们会得到该错误。

    我稍后将附加一个 btool 日志和监听器日志。

    此致、
    Viggo

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

    您好!

    请查找完整的 BTool 日志:

    这一次、第一个 OAD 成功完成、第二个 OAD 失败、每次从这里开始都失败。

    我想这可能是闪存中的存储问题吗? NV 或外部

    是否有图像数据应该在新的 OAD 完成之前删除?

    此致

    Viggo

    e2e.ti.com/.../1581.btoollog.txt

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

    您好、Viggo、

    感谢您发送完整日志!

    我认为、由于 BTool 日志中的两条命令之间存在间隔、因此所发生的是连接不活动超时。 时间几乎精确到10s、这是 OAD 默认超时:

    ----------------------------------------
    [1035]: 10:55:22.558
    类型          :0x04 (事件)
    -EventCode     :0x00FF (HCI_LE_ExtEvent)
    数据长度   :0x06 (6)字节
     事件         :0x067F (1663)(GAP_HCI_ExtentionCommandStatus)
     状态        :0x00 (0)(成功)
     操作码        :0xFDB6 (GATT_WriteNoRsp)
     数据长度    :0x00 (0)
    转储(Rx):
    0000:04 FF 06 7F 06 00 B6 FD 00                     ........
    ----------------------------------------
    [1036]: 10:55:32.468
    类型          :0x04 (事件)
    -EventCode     :0x00FF (HCI_LE_ExtEvent)
    数据长度   :0x0E (14)字节
     事件         :0x051B (1307)(ATT_HandleValueNotification)
     状态        :0x00 (0)(成功)
     ConnHandle    :0x0000 (0)
     Pdualen        :0x08 (8)
     句柄        :0x0041 (65)
     值         :12:00:01:00:00:00:00
    转储(Rx):
    0000:04 FF 0E 1B 05 00 00 08 41 00 12 00 01 00 .......... A.
    0010:00                                             。
    ----------------------------------------

    为了验证这一理论、我建议调试 oadInactivityTimeout

    关键是、由于您正在成功管理单个 OAD 下载并因此重置器件、当器件将重置时、与调试器的连接将丢失、断点将丢失。

    您可以尝试在该函数内添加 LED 闪存(永远不会达到)、以仍然捕获此结果。

    这将验证超时是导致 OAD 第二次失败的原因。

    如果我们甚至一步返回到导致此超时的原因、我的最佳猜测是连接参数 Update 在您第二次尝试 OAD 时没有经过、因此在您开始 OAD 过程之前未更新超时。 为了消除这种原因、您只需再次复制方案、但这次在首次成功 OAD 之后、 在第二次启动 OAD 之前,请等待几秒钟,以便 BTool 日志中显示连接参数更新事件通知。

     如果您有任何监听器日志来验证这一点、这将是非常有用的信息。

    此致、
    Yuval

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

    感谢您的帮助、我们找到了以下内容:

    ext_flash_layout.c 中的 EFL_page_size 具有错误的大小、此错误已被缓冲、并且大小仅定义为0x100。 更正页面大小已解决问题。

    问题出现在第一个 OAD 之后

    //页大小
    #define EFL_PAGE_SIZE 0x1000

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

    很棒! 感谢您提供信息。 我们遇到了闪存页大小问题、在更新板级配置文件以适合定制板时、该问题已被解决。

    在更新以更正信息后、我认为所有数据都是应该存在的数据、闪存在应该存在的位置为空、或者在处理外部闪存时崩溃未发生。 我们必须更详细地了解发生了什么。 但现在一切都在正常工作

    我猜闪存数据因这种情况而损坏、OAD 失败并得到超时

    感谢您提供的信息、很适合将来的调试