01、总线设备驱动模型的引入
一、传统写法
直接在代码里写死要用哪个引脚、怎么操作。
优点:简单到极致,能快速实现功能。 缺点:如果要换引脚,必须改代码重新编译;后期扩展功能很麻烦。
二、总线设备驱动模型
用 platform_device
和 platform_driver
把硬件资源和驱动代码分开管理。
优点:驱动和硬件配置分离,扩展性比传统写法好。 缺点:代码复杂度增加;虽然驱动部分改动少,但换引脚时仍需改设备端代码并重新编译。
三、设备树
通过外部配置文件(.dts
文件)定义硬件资源,驱动从文件里读取配置。
优点:
- 配置和代码彻底分离,改引脚只需改配置文件。
- 不用重新编译驱动或内核,只要生成新的设备树二进制文件(
.dtb
)就行。 缺点:代码比前两种方式复杂一点,但后期维护最灵活。
总结对比:
- 传统写法:最快上手,但扩展性和灵活性最差。
- 总线模型:中间方案,驱动和硬件分离但仍有冗余代码。
- 设备树:最灵活,改硬件配置不用改代码,适合长期维护的项目。