質問

UCSIMを使用してSDCCプロジェクトの単位テストを行います。

UCSIM / S51では、

でシリアル回線トラフィックをシミュレートできます。
s51 -s /dev/tty PROGRAM.ihx
.

または

s51 -S in=testdata.in,out=testdata.out PROGRAM.ihx
.

後者の形式では、データは直ちにシミュレータに送信され、これは多くのフレームを失います。したがって、PIPEを使用してPIPEを使用してテストデータを指定するのではなく:

s51 -S in=<(cat testdata.in),out=testdata.out PROGRAM.ihx
.

今、 `cat 'ユーティリティから出力ボーを制御できますか?または特定のレートでビットを出力するために使用できる別のユーティリティはありますか?

役に立ちましたか?

解決

回答1が正しくありません。誰もシリアル回線にファイルの内容を「フィード」しません。UCSIMが必要なときにファイルから読み取ります。ボーレートはタイマーとUARTのSFRによって制御されます。必要な目盛り数がシミュレートされると、ファイルから1バイトが読み取られます。

他のヒント

IN=ファイルをフィードするレートは、レートの設定方法ではありません。アプリケーションがシリアルポートを初期化して読み込む準備ができている場合、シミュレータはわかりません。シミュレータの初期化コードが実行される前にシミュレータがシミュレートされたシリアルポートをフィード化するため、おそらくデータが見つからない。

mkfifoを使用してFIFOファイルを設定することです(そのマニュアルページを参照)、それをin=パラメータとして使用します。次に、シミュレートされたアプリケーションが起動して実行されている後に、FIFOファイルをデータでフィードします。

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