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 ポートに接続していることを確認します。 一部、複数のポートを備えるデバイスもあります。
  • 別のマイクロ USB ケーブルを使用してみます。 一部のデバイスとケーブルには互換性がありません。
  • コンピューター上の別の USB ポートに接続してみます。 USB ポートが内部で切断されているか、ソフトウェアで無効になっているか、一時的に使用できない状態になっている可能性があります。
  • コンピューターを再起動します。

問題: デバイスがポートに接続できない

説明

デバイスをフラッシュしてコンピューターに接続した後、ターミナル ソフトウェアに次のようなメッセージが出力表示されます:

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

解決方法

  • ターミナル ソフトウェアの設定でポート設定をチェックし、正しいポートが選択されていることを確認します。 複数のポートが表示されている場合は、Windows デバイス マネージャーを開いて [ポート] ノードを選択し、接続されているデバイス用の正しいポートを見つけることができます。

問題: ターミナル出力のテキストが文字化けする

説明

デバイスを正常にフラッシュしてコンピューターに接続した後、ターミナル ソフトウェアに文字化けしたテキスト出力が表示されます。

解決方法

  • ターミナル ソフトウェアの設定で、ボー レートの設定が 115,200 になっていることを確認します。

問題: ターミナル出力にテキストが表示されない

説明

デバイスを正常にフラッシュしてコンピューターに接続した後、ターミナル ソフトウェアに出力が表示されません。

解決方法

  • ターミナル ソフトウェアの設定がチュートリアルの設定と一致していることを確認します。
  • ターミナル ソフトウェアを再起動します。
  • デバイス上の Reset ボタンを押します。
  • USB ケーブルが適切に接続されていることを確認します。

問題: デバイスと IoT Hub の間の通信に失敗する

説明

デバイスをフラッシュしてコンピューターに接続した後、ターミナル ソフトウェアに次のようなメッセージが出力表示されます:

Failed to publish temperature

解決方法

  • [価格とスケール レベル]FreeStandard のどちらかであることを確認します。 Basic はサポートされません。cloud-to-device とデバイス ツインの通信が、Basic ではサポートされないためです。

問題: IoT Central または IoT Hub に接続すると送信される余分なメッセージ

説明

Defender for IoT モジュールはデバイス側から既定では有効にされるため、その出力よって発生する余分なメッセージが観察される場合があります。

解決方法

  • これを無効にするには、NetX Duo のヘッダー ファイル nx_port.hNX_AZURE_DISABLE_IOT_SECURITY_MODULE を定義します。

次のステップ

この記事で問題を確認した後も、ターミナルでデバイスを監視できなかったり Azure IoT に接続できなかったりする場合、デバイスのハードウェアか物理構成に問題がある可能性があります。 お使いのデバイスの製造元のページを参照して、ドキュメントおよびサポート オプションを見つけてください。