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