你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

有关 Eclipse ThreadX 嵌入式设备教程的疑难解答

按照 Eclipse ThreadX 嵌入式设备教程进行操作时,可能会遇到一些常见问题。 通常,以下任一源中可能会出现问题:

  • 你的环境。 计算机、软件或网络设置和连接。
  • 你的 Azure IoT 资源。 你创建的用于连接到 Azure IoT 的 IoT 中心和设备。
  • 你的设备。 物理板及其配置。

本文针对完成教程时可能会出现的最常见问题提供建议的解决方法。

先决条件

所有故障排除步骤都要求你已满足正在使用的教程的以下先决条件:

  • 已安装或获取了教程涉及的所有必备组件和软件工具。
  • 创建了 Azure IoT 中心或 Azure IoT Central 应用程序,并按照教程中的指示注册了设备。
  • 已按照教程中的指示为设备生成了映像。

问题:源目录不包含 CMakeLists.txt 文件

说明

尝试生成项目时,可能会出现此问题。 这是错误地从 GitHub 克隆项目的结果。 该项目包含多个默认情况下不会克隆的子模块,除非使用“--recursive” 标志。

解决方法

  • 使用 Git 克隆存储库时,请确认存在“--recursive”选项。

问题:生成失败

说明

发生此问题的原因是,对象文件的路径超出了 Windows 中的默认最大路径长度。 检查生成输出中类似于以下示例的消息:

-- Configuring done
CMake Warning in C:/embedded tutorials/areallyreallyreallylongpath/getting-started/core/lib/netxduo/addons/azure_iot/azure_iot_security_module/iot-security-module-core/CMakeLists.txt:
  The object file directory

    C:/embedded tutorials/areallyreallyreallylongpath/getting-started/NXP/MIMXRT1060-EVK/build/lib/netxduo/addons/azure_iot/azure_iot_security_module/iot-security-module-core/CMakeFiles/asc_security_core.dir/./

  has 208 characters.  The maximum full path to an object file is 250
  characters (see CMAKE_OBJECT_PATH_MAX).  Object file

    src/serializer/extensions/custom_builder_allocator.c.obj

  cannot be safely placed under this directory.  The build may not work
  correctly.


-- Generating done

解决方法

可以尝试使用以下选项之一来解决此错误:

  • 将存储库克隆到路径较短的目录,然后重试。
  • 按照最大路径长度限制中的说明在 Windows 11 和 Windows 10 版本 1607 及更高版本中启用长路径。

问题:设备无法连接到 IoT 中心

说明

创建 Azure 资源并刷写设备后,可能会出现此问题。 尝试将新刷写的设备连接到 Azure IoT 时,你会看到一条控制台消息,如下例所示:

Unable to resolve DNS for MQTT Server

解决方法

  • 检查在 azure_config.h 文件中为 IoT 配置输入的配置值的拼写和大小写。 某些 IoT 资源属性的值(如 deviceIDprimaryKey)区分大小写。

问题:Wi-Fi 无法连接

说明

在刷写使用 Wi-Fi 连接的设备后,你会收到一条错误消息,指出 Wi-Fi 无法连接。

解决方法

  • 检查 Wi-Fi 频率和设置。 嵌入式设备教程中使用的设备均使用 2.4 GHz。 确认 Wi-Fi 路由器是否配置为支持 2.4 GHz 网络。
  • 检查 Wi-Fi 模式。 确认在 azure_config.h 文件中对 WIFI_MODE 常量使用了哪些设置。 检查 Wi-Fi 网络安全或身份验证设置,以确认 Wi-Fi 安全模式是否与配置文件中的内容匹配。

问题:刷写面板失败

说明

无法完成设备刷写过程。 以下症状表明刷写未完成:

  • 你构建的 *.bin 映像文件不会复制到设备。
  • 用于刷写设备的实用工具发出警告或显示错误。
  • 用于刷写设备的实用工具未指示编程已成功完成。

解决方法

  • 确保已连接到设备上正确的 USB 端口。 某些设备具有多个端口。
  • 请尝试使用不同的 Micro USB 线缆。 某些设备和线缆不兼容。
  • 尝试连接到计算机上的其他 USB 端口。 USB 端口可能在内部断开连接、在软件中禁用或暂时处于不可用状态。
  • 重新启动计算机。

问题:设备无法连接到端口

说明

刷写设备并将其连接到计算机后,终端软件中会显示如以下消息的输出:

Failed to initialize the port.
Please verify the COM port settings.

解决方法

  • 在终端软件的设置中,检查“端口”设置,确认选择了正确的端口。 如果显示多个端口,可以打开 Windows 设备管理器并选择“端口”节点,为连接的设备查找正确端口。

问题:终端输出显示已乱码文本

说明

成功刷写设备并连接到计算机后,终端软件中显示乱码文本输出。

解决方法

  • 在终端软件的设置中,确认“波特率”设置为”115,200”

问题:终端输出未显示文本

说明

成功刷写设备并连接到计算机后,终端软件中未显示任何输出。

解决方法

  • 确认终端软件中的设置与教程中的设置相符。
  • 重启终端软件。
  • 按设备上的“重置”按钮。
  • 确认 USB 线缆已正确连接。

问题:设备和 IoT 中心之间的通信失败

说明

刷写设备并将其连接到计算机后,终端窗口中会显示如以下消息的输出:

Failed to publish temperature

解决方法

  • 确认定价层和缩放层是免费层或标准层之一。 不支持基本层,因为它不支持云到设备和设备孪生通信。

问题:连接到 IoT Central 或 IoT 中心时发送的额外消息

说明

因为默认情况下会启用 Defender for IoT 模块,所以你在设备端可能会在输出中看到额外的消息。

解决方法

  • 若要禁用它,请在 NetX Duo 头文件 nx_port.h 中定义 NX_AZURE_DISABLE_IOT_SECURITY_MODULE

后续步骤

如果查看本文中的问题后,仍无法监视终端中的设备或连接到 Azure IoT,则设备的硬件或物理配置可能出现问题。 请参阅设备的制造商页面,查找文档和支持选项。