嵌入式Linux驱动开发【学习小结】


前言

随着去嵌入式设备资源不断丰富,主频不断升高,搭载操作系统可以更好的利用MPU资源,更容易实现其复杂功能。
作者也是小白,只学过韦东山大哥的LED驱动和按键驱动的一点皮毛。
在这里插入图片描述


一、嵌入式Linux驱动程序和单片机裸奔有啥区别?

一般单片机裸奔控制外设,不需要遵循什么设计框架,想怎么来就怎么来,实现功能即可。而嵌入式Linux驱动程序 = Linux驱动设计框架 + 硬件驱动。
裸奔程序比Linux驱动程序更简单,直接。但相比之下其兼容性较差,可扩展性较低。

二、为什么需要嵌入式Linux驱动开发

在该设备硬件外设有驱动程序的基础上,可以快速移植,扩展到其他的设备上。(我根据现有学习的知识推测的,并没有实践经验)
在这里插入图片描述

三、驱动程序框架大致演变过程

用韦东山老师的流程图,我们一起梳理一下:
下面这些韦东山老师的画的图,我借用一下…
在这里插入图片描述刚开始利用分层的思想,用面向对象的思想,利用file_operation结构体封装,但是如果使用板子不同引脚,增添相同外设时,需要不断修改底层。
在这里插入图片描述
采用了分离的思想,左边时单板的platform_device对应一个platform_driver结构体,这样就便于随便修改device,而缺陷时使内核越来越庞大和冗余。
linux爸爸说了arm这些东西都是ass。
在这里插入图片描述
设备树的概念就是把dts文件转换成一个个的设备结点,消除了内核因为大量没质量的代码而庞大的原因,同样使设备驱动总线模型。左边是一个树结构,右边还是一样的底层驱动程序。最终匹配到Bus,然后执行.probe。
Linux驱动程序还可以提供4种能力,查询,休眠中断,poll,以及异步通知。

总结

想一个人动手做些实际的项目,然而感觉一堵大墙挡在前面。
在这里插入图片描述
有没有大佬带带
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想当极客的小芦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值