P 19 驱动设计的思想:面向对象/分层/分离
用结构体来表示某个对象
分离思想
将某个有很多类似操作的写在一起,这样我们根据参数就可以替换不同的步骤了
1、上下分层
将设计硬件的比如
初始化gpio、设置GPIO写成board.c
同用的就写在drv.c里面
2、左右分离
将board.c分成两部分
1、数据配置(资源)
2、硬件操作
P 20 驱动进化之路
为了使得兼容多个驱动,扩展了分离思想
硬件操作都在platform_driver 、资源分配都在platform_device上
设备树
将各种引脚配置参数存放在内核之外,配置文件dts(指定使用那个引脚),
然后将dts编译成dtb传给内核
内核解析dtb文件,构造出一系列的strcut platform_device 这类的