如何在特定的波特中“cat”文件?

时间:2010-07-15 19:01:59

标签: serial-port simulator 8051 baud-rate

我正在使用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'实用程序的输出波特率?或者是否有另一个实用程序可用于以特定速率输出位?

2 个答案:

答案 0 :(得分:2)

您输入in =文件的速率不是速率的设置方式。模拟器无法知道应用程序何时初始化串口并准备好读取。您可能缺少数据,因为模拟器在执行串行初始化代码之前会提供模拟的串行端口。

您需要做的是设置一个带mkfifo的fifo文件(参见手册页),然后将其用作in =参数。然后在模拟应用程序启动并运行后,将该fifo文件与数据一起提供。

答案 1 :(得分:1)

答案1不正确。没有人将文件的内容“提供”到串行线上。 uCsim在必要时从文件中读取。波特率由定时器和uart的SFR控制。当模拟必要的滴答计数时,将从文件中读取一个字节。