2

これは、他のいくつかの 質問に続きます(ただし、質問をより洗練したと思います)。

デバイスを装着する前に、ファームウェア コードをテストしたいと考えています。

多くの人がコードを書いたり、アップロードしたり、テストしたりしていますが、アップロードする前に書いてテストしたいと思っています (主に、多くのシナリオを自動化したいからです)。

それで、これを行う最善の方法は何ですか。純粋なソフトウェアを書いている場合、たとえば、ファームウェアがまったくない場合は、cppunit を使用します (たとえば)。しかし、私はこのファームウェアのことで少し迷っています。

何か案は?

ありがとう

4

4 に答える 4

10

「正しい」とマークされた答えは、まったく正しいまたは完全ではないと思います。

ファームウェア コードについては、厳格にするために 2 つの側面からのテストを実行する必要があります。

  1. エミュレータを使用して行われた初期テスト。これは理想的ですが、ターゲット プラットフォーム用の優れたエミュレーターを入手できることを前提としています。

  2. 実際のハードウェアでテストしますが、テスト ベッド フレームワークで行います。つまり、実際のデバイスでテストしますが、追加のハードウェア (オシロスコープ、プローブなど) とその他の接続を使用して、何が起こっているかを適切にトレース/デバッグできるようにします。

ファームウェアでは、多くの場合、最も困難なバグはタイミングに関連しており、実際のハードウェアを使用して初めて現れます。最悪の場合、調査の実際の行為により、バグが表示されないようにタイミングが変更される可能性があります。これは「製品」バージョンのみです。その後、あなたは本当の楽しみを持っています。

乾杯、

-リチャード

于 2009-01-16T23:57:39.850 に答える
3

コードがどのように設計されているかを知らずに言うのは難しいですが、基本的には、他のソフトウェアと同じように、クラス/関数レベルでソフトウェアをテストできます。デバイスとやり取りするコードは、ほとんどの場合、エミュレーションを介してテストする必要があります。

于 2009-01-16T21:07:09.537 に答える
2

多くの組み込みデバイスにはソフトウェア シミュレータが用意されていますが、デバイスによって異なります。

于 2009-01-16T21:09:41.047 に答える
0

できる限りクラスの単体テストを行う必要がありますが、最終的にはハードウェアで実行してテストする必要があります。

デバイスでファームウェアをテストするには、 procommなどの端末エミュレータを使用してデバイスと通信できるように、デバッグ インターフェイスを記述します。次に、機能を作成するときに、デバッグ インターフェイスがクラス内のメソッドを呼び出す方法を用意します。これにより、デバイス自体でコードを具体的にテストできます。

それが完了したら、端末エミュレーターでスクリプトを記述して、テストを自動的に実行できます。

于 2009-07-30T12:33:04.010 に答える