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/WL1831MOD:蓝牙上的反腐败!

Guru**** 2524460 points
Other Parts Discussed in Thread: WL1831

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/675691/linux-wl1831mod-datacorruption-on-bluetooth

器件型号:WL1831MOD
Thread 中讨论的其他器件:WL1831

工具/软件:Linux

您好,

TI-WL1831。  

我们正在 RFCOMM 上遇到数据损坏。 (我们正在使用2个服务包4.2和3.9进行测试,两个服务包在数据中都有类似的位错误!)

测试方案我们使用一个蓝牙主设备( bluegiga WT41)连接到多个蓝牙从设备( WL1831)。

测试发送一个生成的数据帧,其中包含一些标头和数据字节00、01、02 ... 直至 FE。 经过几个小时的回送后、偶尔会发生(100.000上的1A2帧)、我们 得到错误的数据字节。

(供参考每个输入和输出操作、生成的数据帧在 发送到 ACIA (在 HCI_LL 驱动程序中)之前或在 ACIA 上接收之后在不同级别、应用程序和内核驱动程序上进行检查。

ACIA 波特率(3000000波特)已在"无限持久性"范围内检查了几个小时、位没有抖动、并且级别正常!  

这是一个错误数据帧的示例。 (由于某种原因、如果发生错误... 错误帧"不正常"、一些位(在一个字节中)缺失或被移位到字节中的下一个位位置)

当我们将数据输入 HCI_LL 驱动程序(主机 CPU 接收到的数据,从 ACIA 获取字节后)时,会记录此错误帧,标记为故障字节的数据为 红色 ,带下划线,

3月28日05:56:17 DU9 kern.warn 内核:[152851.764375][内核] dump-diff!!!!
3月28日05:56:17 DU9 kern.warn 内核:[152851.764410] RX-BUF [len=00304]
3月28日05:56:17 DU9 kern.warn 内核:[152851.764527][0x0000] 01 00 03 00 09 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 04 00 FF 02 00 00 00 01 00 00 FF 00 00 00 00 00 00 FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B
3月28日05:56:17 DU9 kern.warn 内核: [152851.764638][0x0040] 1C 1D 1E 1F 20 21 22 23 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 38 39 3A 3B 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B
3月28日05:56:17 DU9 kern.warn 内核: [152851.764748][0x0080] 5C 5D 5E 5F 60 61 62 63 64 65 66 67 69 6A 6C 6D 6E 6F 70 71 72 73 75 77 79 7A 5B 7C 7D 7E 5F 80 81 82 84 85 86 97 88 89 8A 8B 8C 8D 8C 8F 90 91 93 94 95 96 97 98 99 9A 9B
3月28日05:56:17 DU9 kern.warn 内核: [152851.764858][0x00C0] 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B5 B5 B7 B8 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C7 C6 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB
3月28日05:56:17 DU9 kern.warn 内核: [152851.76491][0x0100]直流 DD DE DF E0 E1 E2 E3 E4 E6 E7 E8 E9 EA EB ED EE EF F0 F1 F2 F3 F4 F5 F6 F8 F8 F9 FB FC FD FE BF 49 2F 72 65 71 75 65 73 74 6D 64 69

最后,此“错误”也会在应用程序软件中弹出... 打印出错误的字节(第一次打印就在应用程序中读入套接字的后面)

3月28日05:56:18 DU9 user.info BMS_DUTEST_0 [24818]:[ModLoopbackDUMsg]开始-日志
3月28日05:56:18 DU9 user.info BMS_DUTEST_0 [24818]:[ModLoopbackDUMsg]偏移量0x007B:0x7B <=>0x5B
3月28日05:56:18 DU9 user.info BMS_DUTEST_0 [24818]:[ModLoopbackDUMsg]偏移量0x007F:0x7F <=>0x5F
3月28日05:56:18 DU9 user.info BMS_DUTEST_0 [24818]:[ModLoopbackDUMsg]偏移量0x0087:0x87 <=>0x97
3月28日05:56:18 DU9 user.info BMS_DUTEST_0 [24818]:[ModLoopbackDUMsg]偏移量0x008E:0x8E <=>0x8C
3月28日05:56:18 DU9 user.info BMS_DUTEST_0 [24818]:[ModLoopbackDUMsg]结束-日志

有关如何继续的提示吗?  

是否可以使用 TI 记录器应用程序在串行线路上记录数据字节 (我可以在那里看到很多东西,但我找不到在 HCI_LL 级别上查看串行数据字节的方法!)

此致

Noel Vellemans

供参考:

1) 1)在蓝千兆与蓝千兆设置中从未看到此误差。

2) 2)最多可能需要一天以上的时间才能获得此"错误"。

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

    遗憾的是、不能使用 TI 记录器应用程序通过串行线路记录数据字节。
    您可以使用 HCI 监听器记录通过 UART 线路-外部工具传输的所有数据。

    我不熟悉这个问题、正如您在这里提到的、这似乎很难重现。

    请尝试捕获此类事件并向我们发送 FW 日志、希望 HCI UART 日志。
    这将有助于我们研究这个问题。

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

    Chen 我已经研究过这件事超过3周了,我确实在 Linux 内核中的不同位置添加了检查(我甚至转到了 HCI_LL 驱动程序... 我在发送和接收端打印出“有故障”的帧)

    当我捕获此类错误帧时、它始终位于主机 CPU 的接收端(这意味着 WL1831将字节发送到接收主机 CPU、在我们的情况下、这是一个 IMX53)。


    我在这3周内捕获了许多帧。 和检查发生在代码中的不同位置/层上。 但底线是第一个错误帧总是出现在主机 CPU 的接收端!



    我在 PC 上打开了记录器(TI 记录器应用程序),但我无法获得很多有用的信息.. 从这个... (在错误发生之前、已发送正确帧的批次(10000ths)... 有时、当它发生故障时、一旦发生错误、我就会停止回路操作。)

    在这个特定的时间,我觉得4.2 Service Pack 上的数据损坏比3.9更少(但我无法确定这一点,因为进入此错误情况通常需要很长时间)


    您是否知道较旧的固件(例如3.9 sp)中的数据损坏,也就是说,如果我同时记录4.2和3.9固件,如果您知道较旧的固件中存在问题,我会将所有实验中的设备升级到4.2 Service Pack)



    就在今天早上,我捕获了另一个事件... (我收到邮件前1分钟)



    **这已记录... 在 HCI_LL 层上(从 Linux 主机的串行端口中拉出字节时)

    3月28日08:07:33 DU9 kern.warn 内核:[85269.684276][内核] dump-diff!!!!!
    3月28日08:07:33 DU9 kern.warn 内核:[85269.684308] RX-BUF [len=00304]
    3月28日08:07:33 DU9 kern.warn 内核:[85269.684424][0x0000] 01 00 03 00 0A 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 04 00 FF 02 00 00 00 01 00 00 FF 00 00 00 00 00 00 FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B
    3月28日08:07:33 DU9 kern.warn 内核: [85269.684535][0x0040] 1C 1D 1E 1F 20 21 22 23 24 25 20 27 20 89 2A 29 2C 2B EF 93 37 3A 33 34 35 36 35 39 3A 3B 3D 3F 3A 40 41 42 4A 04 D C6 07 59 49 CA D3 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B
    3月28日08:07:33 DU9 kern.warn 内核: [85269.684645][0x0080] 5C 5D 5E 5F 60 61 62 63 64 65 66 67 69 6A 6C 6D 6E 6F 70 71 72 73 75 77 79 7A 7B 7C 7D 7F 80 81 82 83 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 93 94 95 96 97 98 99 9A 9B
    3月28日08:07:33 DU9 kern.warn 内核: [85269.684755][0x00C0] 9C 9D 9E 9F A0 A1 A2 A3 A4 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B3 B4 B5 B6 B7 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C9 CA C9 CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB
    3月28日08:07:33 DU9 kern.warn 内核: [85269.684828][0x0100]直流 DD DE DF E0 E1 E2 E3 E4 E5 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F8 F9 FA FC FD BF 65 71 75 73 74 6D 64 69 64 2E 66






    **这将登录到应用程序(用户土地应用程序)。

    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]开始-日志
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0026:0x26 <=>0x20
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0028:0x28 <=>0x20
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0029:0x29 <=>0x89
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x002B:0x2B <=>0x29
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x002D:0x2D <=>0x2C
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x002E:0x2E <=>0x2B
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x002F:0x2F <=>0xEF
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0030:0x30 <=>0x93
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0031:0x31 <=>0x37
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0032:0x32 <=>0x3A
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0037:0x37 <=>0x35
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0038:0x38 <=>0x28
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x003E:0x3E <=>0x3F
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x003F:0x3F <=>0x3A
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0043:0x43 <=>0x4A
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0044:0x44 <=>0x04
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0045:0x45 <=>0x0D
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0046:0x46 <=>0xC6
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0047:0x47 <=>0x07
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x0048:0x48 <=>0x59
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x004A:0x4A <=>0xCA
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]偏移量0x004B:0x4B <=>0xD3
    3月28日08:07:34 DU9 user.info BMS_DUTEST_0 [5421]:[ModLoopbackDUMsg]结束-日志


    我还想说一件事(错误似乎出现在不同的 Linux 内核版本2.6.35.xx 和4.4.xx 上,此时日志在 Linux DU9 4.4.115上运行)



    我想知道的是,这些帧如何能够通过校验和验证(在 WL1831模块和 Linux 内核上)?

    下次出现时,我会尽量抓住你问我的所有问题!

    记录低级别硬件(ACIA 字节)不是一项简单的操作,我必须将(某些硬件)连接到过孔(如果可能,??) 多层 PCB 上。 (WL1831模块适合板载、不是外部模块)


    HCI 监听器不会为我带来更多... 因为我一直在向 HCI_LL 驱动程序添加日志记录功能(比 HCI 监听器更低级的功能){首先在此消息中打印出的内核级别是 HCI_LL 接收打印输出。 这些是注入 HCI 接收层的 ACIA 字节,在此级别上,错误已存在!}




    此致



    PS:我尝试插入代码(显示打印输出的位置,但网站发出错误消息,我应该联系管理员)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Chen、  

    我遇到了另一个问题

    TI-WL1831 ServicePack 4.2,Linux 内核-4.115 (在 HCI_LL 驱动程序中具有自定义记录器)

    正如之前所说,正确数据字节包含模式00、01、02.... 直到 FE!!  

    日志:  

    *内核模式转储-在 HCI_LL 驱动程序中,从 ACIA 中提取字节后!

    3月28日13:39:37 DU9 kern.warn 内核:[15778.960257] HILL_WAKE_UP_ACK 数据包

    3月28日13:39:59 DU9 kern.warn 内核:[15800.661697][内核] dump-diff!!!!

    3月28日13:39:59 DU9 kern.warn 内核:[15800.661732] RX-BUF [len=00304]

    3月28日13:39:59 DU9 kern.warn 内核:[15800.661847][0x0000] 01 00 03 00 09 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 04 00 FF 02 00 00 00 01 00 00 FF 00 00 00 00 00 00 FF 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B

    3月28日13:39:59 DU9 kern.warn 内核: [15800.661958][0x0040] 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 34 35 36 37 38 3A 3B 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B

    3月28日13:39:59 DU9 kern.warn 内核: [15800.662068][0x0080] 5C 5D 5E 5F 60 61 62 63 64 65 66 67 69 6A 6C 6D 6E 6F 70 71 72 73 74 75 77 79 7A 7B 7C 7D 7F 80 81 82 83 85 86 87 88 8A 8B 8C 8D 8E 8F 90 91 93 94 95 96 97 98 99 9A 9B

    3月28日13:39:59 DU9 kern.warn 内核: [15800.662179][0x00C0] 9C 9D 9E 9F A0 A1 A2 A3 A4 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B3 B4 B5 B6 B7 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C9 CA C9 CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB

    3月28日13:39:59 DU9 kern.warn 内核: [15800.662252][0x0100]直流 DD DE DF E0 E1 E2 E3 E4 E5 E7 E8 E9 EA EB EC ED EC EF F0 F1 F3 E0 75 F7 F8 F8 D9 FA 7B FC FD FE 55 6D 64 69 64 2E 66 63 67 69 0C 00 51

    *第一 个应用层 -(读取 Scocket 后)

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]开始-日志

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]偏移量0x00EE:0xEE <=>0xEC

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]偏移量0x00F2:0xF2 <=>0xF3

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]偏移量0x00F4:0xF4 <=>0xE0

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]偏移量0x00F5:0xf5 <=>0x75

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]偏移量0x00F6:0xF6 <=>0xF7

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]偏移量0x00F7:0xF7 <=>0xE3

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[ModLoopbackDUMsg]结束-日志

    *第二个应用层

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]开始-日志

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]偏移量0x00EE:0xEE <=>0xEC

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]偏移量0x00F2:0xF2 <=>0xF3

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]偏移量0x00F4:0xF4 <=>0xE0

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]偏移量0x00F5:0xf5 <=>0x75

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]偏移量0x00F6:0xF6 <=>0xF7

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]偏移量0x00F7:0xF7 <=>0xE3

    3月28日13:40:00 DU9 user.info BMS_DUTEST_0 [456]:[WDLCOMM]结束-日志

    我尝试添加相应的 TI 记录器文件,但它不起作用。 (压缩格式为35 MB,高于允许的20 MB 大小),

     此致

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

    我对反应缓慢表示歉意。

    由于上周在这里度假,我仍然没有任何新的办法来解决这个问题。
    我下周初回来办公时就会看到它。

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

    大家好、

    是否有任何关于如何继续的线索?

    在 TI-WL18xx 和基于 Bluecore4的 CSR 芯片之间进行通信时、我仍然会不断收到"偶尔"(例如100.000 RFCOMM 帧上的1A2错误帧) RFCOMM-DATA 错误。

    此致