2010-07-15 62 views
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 

現在,我怎麼能控制從`貓」實用程序輸出波特?還是有另一個實用程序,我可以用來輸出特定比率的比特?

回答

1

答案1不正確。沒有人將文件內容「喂」到串行線路上。 uCsim在必要時從文件中讀取數據。波特率由定時器和uart的SFR控制。當必要的滴答數被仿真時,將從文件中讀取一個字節。

2

您提供in =文件的比率並非如何設定比率。模擬器無法知道您的應用程序何時初始化串口並準備好讀取。您可能會丟失數據,因爲模擬器在您的串行初始化代碼執行之前會提供模擬串行端口。

你需要做的就是設置一個帶有mkfifo的fifo文件(參見手冊頁),然後用它作爲in =參數。然後在您的模擬應用程序啓動並運行後,將數據提供給該數據文件。