19-总结
14.9 总结
TTY设备驱动的主体工作围绕tty_driver这个结构体的成员函数展开,主要应实现其中的数据发送和接收流程以及tty设备线路设置接口函数。
针对串口,内核实现了串口核心层,这个层实现了串口设备通用的tty_driver。因此,串口设备驱动的主体工作从tty_driver转移到了uart_driver。
I2C总线仅仅使用SCL、SDA这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。
Linux系统定义了I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3部分相互协作,形成了非常通用、可适应性很强的I2C框架。
6.1节对Linux I2C体系结构进行分析,讲解3个组成部分各自的功能及相互联系。
6.2节对Linux I2C核心进行分析,讲解i2c-core.c文件的功能和主要函数的实现。
6.3节、6.4节分别详细介绍I2C总线驱动和I2C设备驱动的编写方法,给出可供参考的设计模板。
6.5节、6.6节以6.3节和6.4节给出的设计模板为基础,讲解S3C6410 ARM处理器I2C总线驱动以及挂接在I2C总线上的AT24XX系列EEPROM驱动。