嵌入式驱动怎么学习?

作者:奔跑吧linux内核
链接:https://www.zhihu.com/question/267507175/answer/325187096
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

谢谢邀请,关于如何学习linux驱动,笨叔叔在十几年前,也就是大学刚毕业的时候也是从linux驱动移植开始学起,比如交叉编译这个软件那个软件,最典型的就是qt了。

 

学习驱动可以从简单字符设备驱动开始,你可以挑选一个字符设备的例子。我记得笨叔以前从一个触摸屏驱动开始学起的。

写好一个驱动除了要熟悉linux驱动各种API用法外,对这个设备硬件本身也是需要熟悉的,这个就要下功夫去看芯片的datasheet了,另外,芯片厂商一般会提供sample code来帮助你来理解硬件。

 

字符设备搞清楚了,你就可以继续摸索其他问题,比如中断,内存管理,锁,这三样是驱动和内核最难的。我记得《linux设备驱动》这本书在十几年前已经被窝翻烂了,但是这三样东西依然不能说理解的很透彻,这就是为什么我要写《奔跑吧linux内核》的一个原因。

 

很多人说,不需要透彻的理解linux内核也可以写好驱动,这话对一半,错一半。现在内核里有很多驱动例子,你葫芦画瓢也是能写出一个驱动来的,可是你对自己使用内核API如何实现的都一脸蒙圈,你怎么能保证你写的驱动在大规模测试和商用的时候没有问题呢?怎么保证你写的东西是最优的呢?就好比你说你是汽车发烧友,别人问你自然吸气发动机和涡轮增压发动机在实现原理上有啥区别?实际操控上有啥区别?发动机最大马力和扭矩有啥不同?你若一脸蒙圈,那就别在朋友面前装是汽车大神了。

 

《奔跑吧linux内核》配套视频第一季内存管理,就是让笨叔来给大家解开内存管理这个死结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值