文章目录
序言
随着去嵌入式设备资源不断丰富,显存不断下降,搭载操作系统可以更好的借助MPU资源linux驱动开发详解,更容易实现其复杂功能。
作者也是小白,只学过韦东山大哥的LED驱动和键盘驱动的一点皮毛。
通常单片机裸奔控制外设,不须要遵守哪些设计框架,想怎样来就如何来,实现功能即可。而嵌入式Linux驱动程序=Linux驱动设计框架+硬件驱动。
裸奔程序比Linux驱动程序更简单,直接。但相比之下其兼容性较差,可扩充性较低。
二、为什么须要嵌入式Linux驱动开发
在该设备硬件外设有驱动程序的基础上,可以快速移植,扩充到其他的设备上。(我按照现有学习的知识猜想的,并没有实践经验)
三、驱动程序框架大致演化过程
用韦东山老师的流程图,我们一起梳理一下:
下边这种韦东山老师的画的图,我借用一下…
刚开始借助分层的思想linux驱动开发详解,用面向对象的思想,借助file_operation结构体封装,而且假如使用板子不同引脚,平添相同外设时,须要不断更改底层。
采用了分离的思想,左侧时单板的platform_device对应一个platform_driver结构体,这样就以便随意更改devicelinux命令tar,而缺陷时使内核越来越庞大和冗余。
linux妈妈说了arm这种东西都是ass。
设备树的概念就是把dts文件转换成一个个的设备结点,清除了内核由于大量没质量的代码而庞大的缘由,同样使设备驱动总线模型。左侧是一个树结构,右侧还是一样的底层驱动程序。最终匹配到Bus,之后执行.probe。
Linux驱动程序还可以提供4种能力,查询linux 发邮件,休眠中断,poll,以及异步通知。
总结
想一个人动手做些实际的项目,但是觉得一堵大墙挡在后面。
有没有大鳄带带