vxWorks のドキュメントには次のように記載されています。
WDB エージェント自体はターゲット オペレーティング システムから独立しており、仮想関数ランタイム インターフェイスを介してランタイム OS サービスに接続します。WDB エージェントは、VxWorks が実行される前に実行できます (BSP を新しいボードに移植する初期段階のように)。"
vxWorks カーネルを実行する前にデバッグ エージェントを使用するにはどうすればよいですか?
vxWorks のドキュメントには次のように記載されています。
WDB エージェント自体はターゲット オペレーティング システムから独立しており、仮想関数ランタイム インターフェイスを介してランタイム OS サービスに接続します。WDB エージェントは、VxWorks が実行される前に実行できます (BSP を新しいボードに移植する初期段階のように)。"
vxWorks カーネルを実行する前にデバッグ エージェントを使用するにはどうすればよいですか?
まず、エージェントを使用してカーネル前のデバッグを実行できるようにするには、デバッグに使用できるシリアル ポートが必要です。このシリアル ポートはデバッグ チャネルになるため、初期化して機能させる必要があります。
デバッグを開始できる時期には制限があります。WDB ベースのデバッグは、最初のハードウェア初期化関数が実行された後 (sysHwInit)、適切なカーネル初期化 (kernelInit) の前に開始されます。
使用している vxWorks のバージョンに応じて、この結果を得るさまざまな方法があります。
Workbench ベースの vxWorks ビルド
カーネル構成ツールで、次のコンポーネントを選択する必要があります。
コンポーネントを選択する順序によっては、一部のコンポーネントが相互に排他的であるため、ワークベンチから苦情を受ける場合があります (プレカーネル デバッグでは WDB END ドライバーを使用できません)。上記の順序で問題ありません。
コマンドライン ビルド
config.h ファイルを編集し、次のオプションを選択します。
#定義 WDB_INIT WDB_PRE_KERNEL_INIT #定義 WDB_COMM_TYPE WDB_COMM_SERIAL #定義 WDB_MODE WDB_MODE_SYSTEM
これらのオプションを使用して vxWorks をコンパイルすると、ハードウェアの初期化の最初のフェーズが実行されてから中断され、ホストで実行されているデバッグ エージェントがターゲットに接続するのを待ちます。
その時点で、デバッグ、シングルステップなどを実行できます...