0

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

uCsim/S51 では、次の方法でシリアル ライン トラフィックをシミュレートできます。

s51 -s /dev/tty PROGRAM.ihx

また

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

後者の形式では、データはすぐにシミュレーターに送信され、多くのフレームが失われます。したがって、プレーン ファイルでテスト データを指定する代わりに、代わりにパイプを使用します。

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

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

4

2 に答える 2

2

in= ファイルにフィードするレートは、レートの設定方法ではありません。シミュレーターは、アプリケーションがいつシリアル ポートを初期化し、読み取りの準備ができたかを知る方法がありません。シリアル初期化コードが実行される前にシミュレーターがシミュレートされたシリアル ポートにフィードするため、データが欠落している可能性があります。

あなたがする必要があるのは、mkfifo(man ページを参照) で fifo ファイルをセットアップし、それを in= パラメータとして使用することです。次に、シミュレートされたアプリケーションが起動して実行された後に、その fifo ファイルにデータをフィードします。

于 2010-07-15T19:10:08.533 に答える
1

答え 1 は間違っています。ファイルの内容をシリアルラインに「フィード」する人はいません。uCsim は、必要なときにファイルから読み取ります。ボーレートは、タイマーと uart の SFR によって制御されます。必要な数のティックがシミュレートされると、ファイルから 1 バイトが読み取られます。

于 2010-07-15T22:17:10.897 に答える