リアルタイム対応アプリケーションのトラブルシューティング
リアルタイム対応アプリケーション (RTApps) の開発中に発生する可能性がある問題のトラブルシューティング手順を次に示します。
デバッグの問題
デバッグが失敗する理由は次のとおりです。
Windows Updateは、リアルタイム コアの USB ドライバーを汎用ドライバーに置き換えます。 リアルタイム コアのデバッグ機能を復元するには、管理者特権で PowerShell または Windows コマンド プロンプトを使用してコマンド ライン インターフェイスを開き、リアルタイム コア デバッグを再度有効にします。 実行すると、必要な USB ドライバーがインストールされます。
az sphere device enable-development --enable-rt-core-debugging
デバッグ設定ファイルにエラーが含まれています。 この状況では、デバッガーの起動に失敗する可能性があります。 デバッガーの設定を編集した場合は、ファイルの構文が正しいことを確認します。
オンチップ デバッガーは、別のコンテキストで既に開始されている可能性があります。 "デバッガー サーバー: エラー: ポート 4444 で gdb をソケットにバインドできませんでした: 既に使用中のアドレス" や "エラー: libusb_open() が LIBUSB_ERROR_ACCESS で失敗しました" などのエラーが表示された場合は、既に openocd または gdb プロセスが実行されているかどうかを確認チェック。
Linux で実行している場合は、ポート 4444 が開いているプロセスがコマンド
sudo lsof -n -i :4444 | grep LISTEN
に表示されます。 をエラー メッセージに記載されている他のポートに置き換えると4444
、そのポートに同じ情報が提供されます。Ubuntu 20.04 システムで libncurses5 パッケージが見つからない可能性があります。 "共有ライブラリの読み込み中にエラー: libncurses.so.5: 共有オブジェクト ファイルを開くことができません: このようなファイルまたはディレクトリがありません" などのエラーが表示された場合は、次のようにパッケージをインストールする必要があります。
sudo add-apt-repository universe sudo apt-get install libncurses5
Visual Studio の複数のインスタンスを使用して高度なアプリと 2 つの RTApps を一度にデバッグしようとすると、Visual Studio の 2 番目のインスタンスはデバッガーに接続できません。 この問題を回避するには、「パートナー アプリケーションのデバッグ」で説明されているように、Visual Studio の 1 つのインスタンスからすべてのアプリ をデバッグします。
CMake の問題
RTApp で CMake を使用すると、次の問題が発生する可能性があります。
- Visual Studio で CMake プロジェクトを初めて開くと、CMakeLists 生成が自動的に実行され、アプリケーションのコンポーネント ID が設定されます。 たとえば、アプリケーションが GitHub リポジトリにあり、ハード リセットが完了したために、コンポーネント ID を削除すると、ビルドは失敗します。 この問題を解決するには、Visual Studio で CMake キャッシュを再生成します。
- CMakeLists.txt スタートアップ項目は頻繁に再生成されます。 CMakeLists タスクは、Visual Studio が CMake キャッシュを再生成するたびに実行されます。 その結果、頻繁に実行される場合があります。
- CMake を使用して RTApp をビルドすると、Visual Studio がハングします。 この問題を回避するには、Visual Studio 2019 Update 1 以降を使用します。
一般的な注意として、CMake を使用しているときにエラーが発生した場合は、CMake キャッシュを再生成してみてください。 これは多くの場合、問題を解決します。