你当前正在访问 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 资源属性的值(如
deviceID
和primaryKey
)区分大小写。
问题: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,则设备的硬件或物理配置可能出现问题。 请参阅设备的制造商页面,查找文档和支持选项。