
系统系统后,需要在串口上监听请求,所以要有个类似服务器的程序(agetty, mgetty etc)。
/etc/inittab中添加
s0:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 ttyS0 vt100
#s1:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 ttyS1 vt100
#S0:2345:respawn:/sbin/mgetty -r -x 9 ttyS0 ==>mgetty 用来调试比较好,log也丰富。
What is a getty?
A getty is is a program that opens a tty port, prompts for a login name, and runs the /bin/login command. It is normally invoked by init.
所以其他程序就不能再来占用ttyS0了,串口是独占模式的吧。
主要是两个原因:1、串口的通讯速率相对电脑来说是很慢的(最高110K,以太网都千兆了)。正常情况下,在等待下一个串口信号的间隙, *** 作系统已经完成了时间片轮转。多以不需要多线程。
2、标准串口是独占资源,所以除非是多个串口同时 *** 作,在单串口上实现多线程运作效率会更低。因为必须在切换线程时考虑到释放独占资源,程序的复杂度也会呈几何级数上升,完全得不偿失。
因为串口是独占式的,一条串口线两端各接入串口,不能接第三个,除非你自己手动或加硬件自动切换,串口本身不支持带电拔插。如果想实现,可以考虑使用485,一条线上可以接入很多设备
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)