2

会社のハードウェア デバイスの 1 つをエミュレートするタスクが割り当てられました。

アンマネージ C++ で記述されたデバイス ファームウェアを使用する必要があります すべてのコードとは限りませんが、通信プロトコルなどはデバイスで完全に機能しており、そのコードを再利用したいと考えています。

ソフトウェアは主に C# .NET 4 で作成します。

このナットを割るのに苦労しています。少なくとも、このタスクをどこから開始すればよいかについて意見をいただければ幸いです。

私は C# をよく知っており、C++ も少し使ったことがあります。

ファームウェアは、かなり複雑なオペレーティング システムを備えたデバイス内のチップ上で実行されます。コードを示さずに説明するのはちょっと難しいですが、それはできません。

とにかく、これに関するいくつかの意見を喜んで見たいと思います。また、シミュレーターとエミュレーターのどちらを作成する必要があるのか​​ もわかりません。

ハードウェアには、RS-232、GSM データ パケット、BlueTooth などのさまざまなインターフェイスがあります。最も重要なのは、RS-232 と GSM を機能させることです。

ハードウェア コードはかなり適切に記述され、階層化され、構造化されているため、通信 API を独自のコードに置き換えるだけでよいと思います。

TLDN : ハードウェア デバイスの動作をコピー/シミュレート/エミュレートする予定ですが、非常に大規模なプロジェクトのようで、どこから始めればよいかわかりません。ご意見をお待ちしております。ありがとうございました。

4

3 に答える 3

3

私の考えでは、基本的にデバイスのロジック層を分離して抽出し、それらをエミュレーション環境で実行可能なものにコンパイルすることを考えています。上位レベルと下位レベルであるハードウェア部分と通信部分を行う必要があります。通信部分は簡単かもしれません。インターフェイスを実装して、エミュレーターのユーザーがシミュレートされたデバイスとやり取りできるようにするだけです。ハードウェア デバイスのエミュレート部分については、汎用であれば QEMU デバイスなどの既存のプロジェクト モデルの使用を検討できます。

要するに、より重要な作業は、会社固有のロジックと一般的なデバイス ロジックを把握することです。そうすれば、再利用するコードがどこにあるかがわかります。その後、それらを接着します。

于 2012-10-10T11:59:53.583 に答える
2

これは完全にプロジェクト固有のものになります。基本的な考え方は、各デバイスで線を引く適切な場所を見つけることです。実際の RS-232 ビットを実際にシミュレートしてから、それらを測定してデータを取得する必要はありません。通常、コーディングが必要な場合は、可能であれば実際のコードを使用してください。ただし、元に戻さなければならないことを行うコードは使用しないでください。可能であればクリーンなインターフェイスで線を引き、線の「ダウン」側でコード (またはハードウェア) を再実装します。

于 2012-10-10T11:50:30.780 に答える
0

ファームウェアは、かなり複雑なオペレーティングシステムを搭載したデバイスのチップ上で実行されます。コードを表示せずに説明するのはちょっと難しいですが、私にはできません。

あなたはデバイスがどのように機能するか知っています。あなたは与えられた入力の出力が何であるかを知っています。複製する必要のある機能を決定する必要があります。

ハードウェアには、RS-232、GSMデータパケット、BlueToothなどのさまざまなインターフェイスがあります。最も重要なのは、RS-232とGSMを機能させることです。

まず、RS-232およびGSMプロトコルを介して通信できるアプリケーションを作成します。これを行うと、すでに作成されているライブラリ関数を使用して、期待される出力を取得できます。

とにかく、私はこれに関するいくつかの入力を喜んで見るでしょう。また、シミュレーターとエミュレーターのどちらを書くべきかわかりません。

上司が何を望んでいるかを正確に判断する必要があります。あなたが私たちのために概説した漠然とした要件に基づいて、あなたがこの決定を下すのを助けることはできません。

于 2012-10-10T12:01:01.507 に答える