1. tty终端接收数据原理
1. 串口接收数据原理(以“ls”命令为例)
(1) 每个终端设备都有一个接收缓冲区,保存原始数据。shell程序一直在休眠,等待合适的字符;
(2) 串口接收到'l'字符,把它保存下来;
(3) 串口输出‘l’字符,这样控制台就可以显示出字符‘l’;
(4) 接收字符‘s’同理,保存,输出;
(5) 串口接收到回车符后,唤醒shell,shell进程就会决定做什么;
Ctrl+c按键命令执行流程:
1)串口接收到 Ctrl+c (ASCII码为0x30)之后会触发中断。
2)中断函数最后会将字符放入tty层的缓冲区中,保存原始数据;
3)中断处理函数还要调用其他函数进一步处理原始数据,它最终将会想当前的进程发送SIGINT信号,让它退出。