转自:http://www.wowotech.net/linux_kenrel/183.html

目录:

1 首先分析设备驱动的注册

1.1 uart_register_driver分析

1.2 tty_register_driver分析

1.3 serial8250_register_ports()函数分析

1.4 serial8250_probe()函数分析

2 然后,我们来看设备的打开过程

3 TTY设备的读

3.1 read_chan()

4 TTY设备的写

5 总结 

首先分析设备驱动的注册

对于8250.c来说,主要涉及:

  • serial8250_init()--->uart_register_driver(&serial8250_reg)
  • serial8250_register_ports(&serial8250_reg, &serial8250_isa_devs->dev)
  • serial8250_probe(struct platform_device *dev)

struct uart_driver serial8250_reg的定义如下:

1 static static struct uart_driver serial8250_reg = {
2         .owner                  = THIS_MODULE,
3         .driver_name            = "serial",
4         .dev_name               = "ttyS",
5         .major                  = TTY_MAJOR,
6         .minor                  = 64,
7         .nr                     = UART_NR,
8         .cons                   = SERIAL8250_CONSOLE,
9 };
struct uart_driver serial8250_reg

相关文章: