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:BluetopiaPM 无法打开 UART 端口

Guru**** 2535670 points
Other Parts Discussed in Thread: WL1831MOD

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/795347/linux-wl1831mod-bluetopiapm-fails-to-open-the-uart-port

器件型号:WL1831MOD

工具/软件:Linux

环境信息:  Linux Yocto、 BluetopiaPM-4.2.1.1.1.0、TI Sitara AM3352BZCW60、WL1831MOD

问题: 我们发现了一个间歇性问题、即 BluetopiaPM 无法打开 UART/HCI 端口以与 WL1831MOD BT 芯片进行 HCI 通信。 该问题可重复出现在1到20次左右、使其再次工作的唯一方法是重新启动系统。

Bluetopia API DEVM_PowerOnDevice()无法打开 HCI 端口时返回的错误代码为 UNKNOWN_ERROR (-14)。

所有 UART 配置均为默认配置、是 Bluetopia 集随附的标准集。

我们非常感谢任何帮助,因为这对我们来说是一个阻碍问题。

此致

Shrey

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

    Shrey、

    [引用 user="Shreyansh Jain"]

    问题: 我们发现了一个间歇性问题、即 BluetopiaPM 无法打开 UART/HCI 端口以与 WL1831MOD BT 芯片进行 HCI 通信。 该问题可重复出现在1到20次左右、使其再次工作的唯一方法是重新启动系统。

    Bluetopia API DEVM_PowerOnDevice()无法打开 HCI 端口时返回的错误代码为 UNKNOWN_ERROR (-14)。

    [/报价]

    如何在尝试再次打开堆栈之前关闭堆栈?

    此致、

    Vihang

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

    你好 Vihang

    在本例中、我们将在尝试启动堆栈后重新启动。 也就是说、SS1BTPM (通过 systemd)启动、然后在运行时启动用户应用程序。 用户应用程序打开带有 SS1BTPM 的 IPC 通信、然后调用`DEVM_PowerOnDevice()`。 当它失败时、`DEVM_PowerOnDevice()`调用返回-14。


    在 SS1BTPM 中进行了一些调试后、当一切都成功时、我们会看到以下函数调用序列:
    HCI_VS_InitializeBeforeHCIOpen
    HCI_VS_InitializeAfterHCIOpen
    HCI_VS_InitializeBeforeHCIReset
    HCI_VS_InitializeAfterHCIReset

    我们看到 BTS 脚本已正确加载。


    在故障`中、我们看到仅调用了`HCI_VS_InitializeBeforeHCIOpen。 它成功执行(从 DT 正确读取 UART/GPIO 设置)到 GPIO 线路被切换为器件上电的位置、但是剩余的`HCI_VS_*`函数似乎从未被调用。

    希望这能解答您的问题。

    谢谢

    Shrey

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

    请提供有关此问题的任何更新、我们非常感谢您提出任何建议、因为这对我们来说是一个阻碍问题。

    此致
    Shrey
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您没有从 systemd 服务调用,而是在调用应用程序之前尝试生成 SS1BTPM 吗? 例如,您可以将这两个文件都放入 shell 脚本中,如下所示:

    #killall -9 SS1BTPM
    睡眠1.
    #/SS1BTPM &
    编号

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

    您好 Hari

    我曾尝试过您的建议、但遗憾的是、仍然可以再现这一零星问题。

    我从 Bluetopia 打印以下错误消息:

    BT COMM 端口(/dev/ttyS5):-5                                                                   "未知错误"(-14)

    我尝试了大约20次、可以复制一次。

    此致

    Shrey

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

    请提供有关此问题的任何更新、我们非常感谢您提出任何建议、因为这对我们来说是一个阻碍问题。

    此致
    Shrey

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不确定您的设置有什么问题。 我在我的 Beagle Bone 装置上尝试过它,它似乎工作正常,在反复杀人和再制造后... 我将尝试使用脚本重复数百次以重现问题。
    从您的描述中、当串行端口出现故障时、似乎无法重新打开该端口?

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、没错、当 Bluetopia 尝试打开串行端口时、有时会失败。
    我在上面已经介绍了我们的环境的详细信息。

    此致
    Shrey
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否在 BluetopiaPM 无法打开端口时检查是否存在像/var/lock/SS1CLK1这样的文件? 如果、您是否可以删除该文件并查看它是否成功?

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

    您好 Hari

    感谢您的建议、我很快就尝试了、似乎解决了问题。 在我们的应用程序初始化 Bluetopia 后不久将创建文件 SS1CLK1、我们修改了脚本、以便在初始化 Bluetopia 之前先删除此文件。 我尝试了25次、无法重现问题。

    我可以问这个锁定文件的用途是什么、它是否用作访问串行端口的门?  

    每次启动 Bluetopia 之前、在删除此锁定文件的过程中是否有任何问题、或者是否有更好的修复方法可用?

    此致

    Shrey

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。。。 这是为了确保只有一个守护程序访问 UART 端口。 由于某种原因、如果一个去束形成的锁死会导致问题、并且您可以在每次电路板启动时删除锁。

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

    当然、谢谢。