4

OSをサポートしていない組み込みシステム用のプロジェクトをC++で書いています。ライブラリのサポートはほとんどありません。非常にベアメタル。したがって、かなりの量のコードが緊密に結合されています(たとえば、ソフトウェアによってトリガーされる割り込みとそのすぐ上のレイヤー)。

私が行っていることの一部には、シリアルポート構成の変更が含まれます。これにより、PC側(UI側)とマイクロプロセッサー(アクティビティ側)で同時に変更が行われます。私はこれまでのところ、非常に注意深いインクリメンタルタイプの開発(ピースごとにそれをはめ込む)で大丈夫です。ただし、エンジニアリングの意味でコードが機能することについて、より自信を持ってやりたいと思います。

このような状況では、どのような方法論/フレームワークをお勧めしますか?

編集:

Tern、Inc.製のACore86ボードでAMD186 ESを使用しています。コンパイラ:パラダイム、無料版(ボードに同梱)。残念ながら、作業内容を変更するオプションはありません。

4

5 に答える 5

2

ベア メタル環境でのインフラストラクチャの欠如は、非常に困難です。デバッグツールに集中することをお勧めします。細心の注意と優れた方法論を使用しても、物事をデバッグする能力が必要になります。

gdbagent を機能させるのは当然のことです。これは自分で実装する必要がありますが、単純なテキストベースのプロトコルです。外部マシンで gdb を実行し、ターゲット上の gdbagent と通信します。確かに、シリアル ポート経由で gdbagent プロトコルを実行できますが、大量のデータを調べる必要がある場合、これは急速に面倒になります。より高速なインターフェースが利用できる場合は、それを利用してください。

予算はわかりませんが、JTAG デバッガーも計画する必要があります。gdbagent は、ターゲット上で gdbagent を実行できる限り優れています。すべてが激しくクラッシュしたら、乾杯です。JTAG デバッガーは非常に高価ですが、レンタルできます。過去にCorelis製品を使用したことがあり、 Abatronについて良いことを聞きました。

于 2008-10-09T19:58:56.110 に答える
1

コンパイラのベンダーと協力してデバイスシミュレータを入手するのが最善の策だと思います。

テシーはおそらくそのチップで動作します。チェックアウト: http://www.hitex.us/products.html?con_186.html~content

于 2008-10-09T19:43:34.130 に答える
1

この種の分野で私が見たのは、単体テストです。

いいえ、冗談ではありません。

単体テストは、ホスト PC の制御下で、デバイス上で実行されます。

ラッパーを作成して、単体テストの制御下でプログラムを SRAM にロードできるようにします。

その後、PC はプログラムを送信して実行し、出力を確認できます。

ボードを動かす必要がある場合は、ラボジャックまたは同様の USB インターフェイス カードを入手してください。

これでハードウェアはテスト ジグに組み込まれ、すべてホスト PC から実行されます。

于 2009-12-12T06:21:06.293 に答える
1

タイミングが重要な場合は、1 つまたは 2 つの空き I/O ピンとスコープを一緒に使用してコードを計測します。また、ソースレベルのデバッグ用の JTAG ポートのファンでもあります。また、マイクロプロセッサにデータのベクトルを保存させ、それを 2 番目の UART (ある場合) を介して PC に送り返して分析することもできます。

于 2008-10-13T19:58:56.813 に答える
0

私がある程度成功したことの 1 つは、コードを PC 用に C++ でコンパイルしてテストし、後で「ストレート」C でコンパイルして組み込みシステムで実行できる PC 環境を設計したことです。I/O ポート参照は、I/O オブジェクトのプロパティ アクセスとして #defined であり、ソケットを介して「ハードウェア エミュレーション」プログラムに送信されます。システムの一部は、私が望んでいたよりも不格好になってしまいましたが、後続のバージョンでは不格好でなくなると期待しています。

于 2011-02-01T17:23:04.647 に答える