質問

私は、ARMアーキテクチャ上のいくつかの低レベルのコードをテストしてきました。私はQEMUを考えていたように、一般的な実験は非常に、実際のボード上の複雑されます。

私は何を取得したいことはprintfをやGDBのようなデバッグ情報のいくつかの種類です。私はそれがQEMUインテグレータとgdbの機能のデバイスドライバの両方を実装しているので、これはLinuxでシンプルであることを知っているが、私は、Linuxで動作していませんよ。また、私は、Linuxカーネルのソースコードからこの種の機能を抽出することは複雑になることを。

疑います

私はあることはすでにこれらの機能のいずれかを実装し、いくつかのシンプルなのオペレーティングシステムから検索をしています。あなたはいくつかのアドバイスを持っていますか?

役に立ちましたか?

解決

あなたはQEMUの内部で実行しているデバッグコードにターゲットOSを必要としません - 。QEMUはすでにあなたのための

ことを行います 具体的には、QEMUは、リモートGDBからデバッグをサポートしています - あなたは適切なコマンドラインオプションでQEMUを実行することができ、それがGDB(ホストマシン上で実行されている)のコピーが接続できるというインターフェースをエクスポートします。その時点で、あなたは、ホストマシン上でそれを実行していたかのようにかなりのGDBでプログラムをデバッグすることができます。

http://wiki.osdev.org/GDB をもう少し基本的な情報を持っているように見えます。おそらく十分に完全にあなたが始めるのではないが、少なくとも、あなたの基本的なアイデアを与えると、いくつかの用語は、QEMUとGDBのドキュメントで検索します。 QEMUは既に1を持っているので、ここでは適用されません「の実装GDBスタブ」、について少しをスキップし、「エミュレータスタブを使用する」のセクションで開始します。あなたが言うあなたのホスト上のGDBに当時と-sオプション(GDB待ち実行を開始する前にコマンドを「継続」)、および:短い形式を使用すると、-Sオプション(1234ローカルホスト上のGDB接続をエクスポートする)とQEMUを起動することだけです代わりにtarget remote :1234run。また、もちろん、あなたはGDBのARM版ではなく、ネイティブのx86いずれかを使用する必要があります。

あなたが商用ソリューションのために支払うことを喜んでいる場合は、(また、CodeSourcery社のARMツールチェーンは、デバッガのコンソールに印刷するには、「printf関数」のサポートを含め、自動的にこのアップのすべてを設定するためのIDEに統合されています。その作品に。物理的なボードは、あまりにも、あなたはハードウェアデバッガを持っているなら、私はCodeSourcery社の従業員であることについて通常の免責事項が適用される - 。しかし、私は非常に使いやすい、それを見つけるのですか)

のアップデート、2012:のCodeSourcery社のツールチェーンは、今メンター・グラフィックスのSourcery CodeBenchと呼ばれますが、上記のすべて、まだ適用されます。

他のヒント

私は(おそらくのより良いこと?)私はここにあなたの元の問題に対処するのではなく、あなたの提案したソリューションだということを実感、しかし低コストのJTAGツールと OpenOCD を。そのようなAセット・アップの例は、および実装する方法には、ここを見つけることができます。

あなたは大きな予算を持っている場合は、より完全な機能JTAGデバッガが有用である可能性がある、など<のhref = "http://www.abatron.ch/products/debugger-support/gnu-support.htmlとして? L = 0&NO_CACHE = 1&sword_list [0] = GDB」のrel = "nofollowをnoreferrer">リモートGDBとイーサネットおよび特別なドライバまたはターゲットデバッグエージェント上デバッグおよびデバイスプログラミング可能bdiGDBとAbatron BDI3000ファームウェアの

たぶん OKL4 のようなマイクロカーネルは、あなたのニーズに合うのでしょうか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top