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.

[参考译文] Linux/WL1835MOD:多个 BT LE 连接出现 HCI 硬件错误

Guru**** 2553920 points
Other Parts Discussed in Thread: WL1835MOD

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/597424/linux-wl1835mod-hci-hardware-error-with-multiple-bt-le-connections

器件型号:WL1835MOD

工具/软件:Linux

您好!

我正在使用 WL1835MOD 为多个 Zephir (Cortex-M4)器件提供 BT LE 6LoWPAN 连接、但经常从 WL1835MOD 收到 HCI 硬件错误消息、导致 BT 在错误后完全停止工作。

这是我从内核获取的输出:

[29.685781]蓝牙:hci0硬件错误0x06
[29.690637]蓝牙:hci0硬件错误0x06
[31.711210]蓝牙:hci0命令0x0c03 TX 超时 

和:

[3981.377837]蓝牙:hci0硬件错误0x07
[3981.377974]蓝牙:hci0命令0x200b TX 超时
[3985.889580]蓝牙:hci0命令0x1003 TX 超时 

出错后、每个 HCI 命令将超时、包括 HCI 复位。 将芯片恢复到工作状态的唯一方法是重新启动或删除并重新添加内核模块(以便可以再次下载固件)。

系统详细信息:

  • 主机平台: BeagleBone Black 无线和96个板 HiKey (均采用 WL1835MOD)
  • 操作系统: 最小开放式嵌入式映像、带 BlueZ 5.44
  • WiLinkTm芯片类型:WL1835MOD
  • WL18xx BT 固件: TIInit_11.8.32.bts (Service Pack v4.2)
  • Linux:4.11和4.12-RC1

我现在正在尝试提取 BT 固件日志、但恐怕它可能不是很有用、因为公共 ILI 文件中提供的消息(与 TIInit_11.8.32.bts 相同的 repo)不是很广泛。

是否有更好的方法来调试该问题?

谢谢、

Ricardo

    • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      使用了什么 HCI/UART 波特率? 您可以降低波特率、看看行为是否有差异?

      谢谢
    • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      我可以使用默认设置(由固件建议) 115200和3000000重现此问题。
    • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      当 UART 配置不稳定时(例如:某些平台上的 DMA 配置不正确等)、我们看到了类似的问题。 此错误来自蓝牙内核模块、因此您可能需要启用一些日志以获取错误详细信息。

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

      我能够使用 Logger 提取固件日志、并遇到各种崩溃(硬故障、缓冲区外、超时)。 似乎固件在主机使用的数据量和连接量方面存在问题。

      一些示例:

      硬件错误:

      224036 6 05/23/17 04:00:29.007 +0:01:56.313 256帧的 LSTO、最后 SYNC 80的帧、LE 句柄0x405上无 SYNC
      224037 5 05/23/17 04:00:29.007 +0:01:56.313 接收到同步事件 finish_REG、模块 BLE_CONNECT_MODULE_ID、msi 1.
      224038 4 05/23/17 04:00:29.007 +0:01:56.313 H4接收处理程序-无缓冲器可用(1)
      224039 1 05/23/17 04:00:29.007 +0:01:56.313 HW_ERR、275、537429032
      224040 4 05/23/17 04:00:29.007 +0:01:56.313 TL-、H4协议、H4_ABORT_Receive ()- ERROR_code = 537429032
      224041 4 05/23/17 04:00:29.007 +0:01:56.313 HCIC_PROCESS_HCI_commands:[0x0601](组1操作码0x201)
      224042 1 05/23/17 04:00:29.007 +0:01:56.313 HCI 操作码非法! (组= 0x1、操作码= 0x201)
      224043 4 05/23/17 04:00:29.007 +0:01:56.313 hcic_get_num_for_host_commands。 空闲总计= 1、报告给主机= 1
      224044 4 05/23/17 04:00:29.007 +0:01:56.313 HCI 发送事件:HCI_COMMAND_COMPLEE_EVT
      224045 5 05/23/17 04:00:29.007 +0:01:56.313 5条消息已丢弃(UART 调试已满)
      224046 5 05/23/17 04:00:29.007 +0:01:56.313 输入 HOOK_LC_synch_start_instance
      224047 5 05/23/17 04:00:29.007 +0:01:56.313 丢弃2条消息(UART 调试已满)

      硬故障1:

      1 1 05/23/17 03:33:59.803 +0:00:00.000 ***错误:主 MCU 中的硬故障异常。 详情如下
      2 1 05/23/17 03:33:59.803 +0:00:00.000 硬故障:故障时 PC 值= 0x000B93BC
      3 1 05/23/17 03:33:59.803 +0:00:00.000 硬故障:可配置故障状态寄存器= 0x00020000
      4 1 05/23/17 03:33:59.803 +0:00:00.000 硬故障:硬故障状态寄存器= 0x40000000
      5 1 05/23/17 03:33:59.803 +0:00:00.000 ***硬故障信息结束 正在尝试在地址[PC + 2]恢复

      硬故障2:

      251853 3 05/23/17 12:10:27.141 +0:07:08.612 lm2um_start_local_trans
      251854 6 05/23/17 12:10:27.141 +0:07:08.612 启动本地事务[0x0003]、连接索引= 5
      251855 6 05/23/17 12:10:27.141 +0:07:08.612 ULP 通道映射:0x310001ff18、电流计数器207 Instant 213
      251856 5 05/23/17 12:10:27.141 +0:07:08.612 36条消息已丢弃(UART 调试已满)
      251857 1 05/23/17 12:10:27.141 +0:07:08.612 ***硬故障信息结束 正在尝试在地址[PC + 2]恢复
      251858 6 05/23/17 12:10:27.141 +0:07:08.612 296帧中的 LSTO、最后 SYNC 40的帧、LE 句柄0x404上没有 SYNC
      251859 1 05/23/17 12:10:27.141 +0:07:08.612 ***错误:主 MCU 中的硬故障异常。 详情如下
      251860 1 05/23/17 12:10:27.141 +0:07:08.612 硬故障:故障时 PC 值= 0x0000F810
      251861 1 05/23/17 12:10:27.141 +0:07:08.612 硬故障:可配置故障状态寄存器= 0x00008200
      251862 1 05/23/17 12:10:27.141 +0:07:08.612 硬故障:硬故障状态寄存器= 0x40000000
      251863 1 05/23/17 12:10:27.141 +0:07:08.612 总线故障:总线故障地址寄存器(BFAR)= 0x95200923
      251864 1 05/23/17 12:10:27.141 +0:07:08.612 ***硬故障信息结束 正在尝试在地址[PC + 2]恢复
      251865 1 05/23/17 12:10:27.141 +0:07:08.612 ***错误:主 MCU 中的硬故障异常。 详情如下
      251866 1 05/23/17 12:10:27.141 +0:07:08.612 硬故障:故障时 PC 值= 0x0000F810
      251867 1 05/23/17 12:10:27.141 +0:07:08.612 硬故障:可配置故障状态寄存器= 0x00008200
      251868 1 05/23/17 12:10:27.141 +0:07:08.612 硬故障:硬故障状态寄存器= 0x40000000
      251869 1 05/23/17 12:10:27.141 +0:07:08.612 总线故障:总线故障地址寄存器(BFAR)= 0xD1F94B01
      251870 1 05/23/17 12:10:27.141 +0:07:08.612 ***硬故障信息结束 正在尝试在地址[PC + 2]恢复

      HCI 缓冲器输出:

      1203825 5 05/23/17 11:43:10.460 +0:27:05.916 接收到同步事件 finish_REG、模块 BLE_CONNECT_MODULE_ID、msi 1.
      1203826 5 05/23/17 11:43:10.491 +0:27:05.947 synch cmd start 实例、模块 BLE_CONNECT_MODULE_ID、msi:1.
      1203827 5 05/23/17 11:43:10.491 +0:27:05.947 输入 HOOK_LC_synch_start_instance
      1203828 5 05/23/17 11:43:10.491 +0:27:05.947 同步命令返回事件已启动、模块 BLE_CONNECT_MODULE_ID
      1203829 5 05/23/17 11:43:10.491 +0:27:05.947 接收到同步事件 finish_REG、模块 BLE_CONNECT_MODULE_ID、msi 1.
      1203830 5 05/23/17 11:43:10.491 +0:27:05.947 synch cmd start 实例、模块 BLE_CONNECT_MODULE_ID、msi:1.
      1203831 5 05/23/17 11:43:10.491 +0:27:05.947 输入 HOOK_LC_synch_start_instance
      1203832 5 05/23/17 11:43:10.491 +0:27:05.947 同步命令返回事件已启动、模块 BLE_CONNECT_MODULE_ID
      1203833 5 05/23/17 11:43:10.513 +0:27:05.969 接收到同步事件 finish_REG、模块 BLE_CONNECT_MODULE_ID、msi 1.
      1203834 5 05/23/17 11:43:10.513 +0:27:05.969 synch cmd start 实例、模块 BLE_CONNECT_MODULE_ID、msi:1.
      1203835 5 05/23/17 11:43:10.513 +0:27:05.969 输入 HOOK_LC_synch_start_instance
      1203836 5 05/23/17 11:43:10.513 +0:27:05.969 同步命令返回事件已启动、模块 BLE_CONNECT_MODULE_ID
      1203837 5 05/23/17 11:43:10.513 +0:27:05.969 接收到同步事件 finish_REG、模块 BLE_CONNECT_MODULE_ID、msi 1.
      1203838 4 05/23/17 11:43:10.529 +0:27:05.985 H4接收处理程序-无缓冲器可用(1)
      1203839 4 05/23/17 11:43:10.529 +0:27:05.985 H4接收处理程序-无缓冲器可用(1)
      1203840 4 05/23/17 11:43:10.529 +0:27:05.985 H4接收处理程序-无缓冲器可用(1)
      1203841 4 05/23/17 11:43:10.529 +0:27:05.985 H4接收处理程序-无缓冲器可用(1)

      我还在 rsalveti.net/tmp/wilink 上上传了 lgr 和 txt 文件 、以防有人希望更好地查看错误。

    • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      如果有 HCI 数据包丢失、我认为较低的波特率应该会有所帮助... 无论如何、我们都会让 FW 专家审阅日志、并很快回来。

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

      硬件故障的原因之一是初始化(加载服务包)未正确完成。 我们需要查看同时启用了 BT 记录器和 HCI/LMP 查看器端口的固件日志。 我在附加的日志中看不到 HCI/LMP 查看器跟踪。 您能否捕获启用了两个端口的实例?

      此致、
      Vihang