1. 概述
我们在前面几章编写的设备驱动都非常的简单,都是对IO
进行最简单的读写操作。像I2C
、 SPI
、LCD
等这些复杂外设的驱动就不能这么去写了,Linux
系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了我们将来最常打交道的platform
设备驱动,也叫做平台设备驱动。本章我们就来学习一下 Linux
下的驱动分离与分层,以及 platform
框架下的设备驱动该如何编写。
2. Linux 驱动的分离与分层
2.1 驱动的分隔与分离
对于 Linux
这样一个成熟、庞大、复杂的操作系统,代码的重用性非常重要,否则的话就会在 Linux
内核中存在大量无意义的重复代码。尤其是驱动程序,因为驱动程序占用了 Linux
内核代码量的大头,如果不对驱动程序加以管理,任由重复的代码肆意增加,那么用不了多久Linux
内核的文件数量就庞大到无法接受的地步。
假如现在有三个平台