3

vxWorks のドキュメントには次のように記載されています。

WDB エージェント自体はターゲット オペレーティング システムから独立しており、仮想関数ランタイム インターフェイスを介してランタイム OS サービスに接続します。WDB エージェントは、VxWorks が実行される前に実行できます (BSP を新しいボードに移植する初期段階のように)。"

vxWorks カーネルを実行する前にデバッグ エージェントを使用するにはどうすればよいですか?

4

1 に答える 1

2

まず、エージェントを使用してカーネル前のデバッグを実行できるようにするには、デバッグに使用できるシリアル ポートが必要です。このシリアル ポートはデバッグ チャネルになるため、初期化して機能させる必要があります。

デバッグを開始できる時期には制限があります。WDB ベースのデバッグは、最初のハードウェア初期化関数が実行された後 (sysHwInit)、適切なカーネル初期化 (kernelInit) の前に開始されます。

使用している vxWorks のバージョンに応じて、この結果を得るさまざまな方法があります。

Workbench ベースの vxWorks ビルド

カーネル構成ツールで、次のコンポーネントを選択する必要があります。

  • WDBシリアル接続
  • WDB システムのデバッグ
  • WDB カーネル システムの初期化前

コンポーネントを選択する順序によっては、一部のコンポーネントが相互に排他的であるため、ワークベンチから苦情を受ける場合があります (プレカーネル デバッグでは WDB END ドライバーを使用できません)。上記の順序で問題ありません。

コマンドライン ビルド

config.h ファイルを編集し、次のオプションを選択します。

#定義 WDB_INIT WDB_PRE_KERNEL_INIT
#定義 WDB_COMM_TYPE WDB_COMM_SERIAL
#定義 WDB_MODE WDB_MODE_SYSTEM

これらのオプションを使用して vxWorks をコンパイルすると、ハードウェアの初期化の最初のフェーズが実行されてから中断され、ホストで実行されているデバッグ エージェントがターゲットに接続するのを待ちます。

その時点で、デバッグ、シングルステップなどを実行できます...

于 2008-10-08T01:18:17.077 に答える