1 前言
如何去描述设备这一定是设备驱动需要考虑的重要问题。早先,linux中ARM架构使用源文件中的宏、结构等去描述设备,不过现在已全面转向设备树。使用文本来描述设备,肉眼可见的方便。本文就是本人学习设备树的笔记,即是对自己学习的知识做个总结和整理,也为方便后来人。
2 为什么需要设备树
2.1 单片机中的设备驱动
在单片机编程中,通常不存在复杂的驱动框架,所有关于设备本身以及使用设备的程序都混杂在一起。比如使用芯片at24c08
,通常的做法是建立一个名为at24c08.c
的源文件以及at24c08.h
的头文件,然后在上述两个c语言文件中定义芯片使用的管脚、占用的中断、驱动程序等。
假如另外一个项目也用到了该芯片,那么我们直接把相应的头文件、源文件复制过来就可以了吗?当然不是,最起码,芯片使用的引脚可能变化了,因此要修改定义的相应硬件信息。经过简单的修改似乎就能使用了,看起来也挺方便的。果真方便么?有技术大牛说过,复制粘贴往往伴随着坏味道。现在考虑坏在哪里,通过这种方式管理外设,则当存在很多使用at24c02的项目存在时,那么就相应存在着多份有细微差