proc/tty/drivers
依次为:driver_name,设备节点前缀,主设备号,次设备号范围,类型
proc/tty/driver/
px30_evb:/ # ls proc/tty/driver/
fiq-debugger serial usbserial
px30_evb:/ # cat proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xFF030000 irq:10 tx:0 rx:0 RTS|DTR
1: uart:16550A mmio:0xFF158000 irq:13 tx:0 rx:0 RTS|CTS|DTR
2: uart:unknown port:00000000 irq:0
3: uart:unknown port:00000000 irq:0
4: uart:16550A mmio:0xFF170000 irq:14 tx:0 rx:0 RTS|DTR
5: uart:unknown port:00000000 irq:0
proc/interrupts
查看中断产生的次数
添加打印
可以在接收或者发送的函数中,添加打印信息,确认驱动是否正常的接收或者发送数据,如在serial8250_rx_chars 函数中添加:
+
+ if(up->port.line == 0 || up->port.line == 1){
+ printk("uart0/1 -----rx-------- %02x---------------- \n", ch);
+ }
+ uart_insert_char(port, lsr, UART_LSR_OE, ch, flag
+
+ if(up->port.line == 0 ||up->port.line == 1){
+ printk("uart0/1 -----rx---tty_flip_buffer_push---ok--- \n");
数据偶尔接收不到
在驱动中,添加打印,如果驱动中确认可以接收到,但是APP出现偶尔接收不到数据的情况,可以先查看下,是否有多个APP正在使用串口,如:
lsof | grep ttyS4
本文介绍了如何通过`/proc/tty/drivers`和`/proc/interrupts`来查看Linux串口驱动信息及中断处理情况。在`serial`驱动中添加打印以监控接收和发送数据,并排查了数据接收不畅的问题,提到了可能存在的多APP占用串口的冲突。同时,通过`lsof`命令检查串口使用情况以辅助诊断。
4463

被折叠的 条评论
为什么被折叠?



