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

有帮助吗?

解决方案

答案1不正确。没有人“为文件”文件的内容串行线路。UCSIM在需要时从文件中读取。波特率由计时器和UART的SFR控制。当模拟必要的刻度计数时,将从文件中读取一个字节。

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top