关于linux 驱动的学习的几点总结

以前看linux 驱动都是一点点的看,总有盲人摸象之感,对于它的思想没有站在一定高度的认识。 今天学习了宋宝华的视频,有一种醍醐灌顶的感觉,听课的时候很爽,听完就忘记的差不多了,所以学习要掌握好的方法。 及时 总结经验和教训。

linux驱动地位:

linux 驱动位于 liunx内核,他对发挥系统性能,cpu的占用率密切相关。故一份好的驱动对于系统是很重要的。

linux 驱动的思想:

linux的驱动应该具有通用性(可移植性):这个特性很重要,这也是linux系统能兼容这么多平台的主要原因。可移植性的具体表现,同一份驱动在不同平台或版本之间都可以使用。需要修改的仅仅是 与board相关的sdk里的硬件配置。 好的驱动在一只的时候内容是不用修改的,仅仅需要修改的是与具体平台相关的东西。

linux  驱动是分层的,真正的应用没有简单的sample一样的实现,应该都是一层调用一层的。这个思想要好好利用。

驱动的分离思想:如将I2c驱动分为 I2cadapter和 I2c client 。当 写I2c 的从设备时候不需要考虑I2c控制器怎么实现,是需要调用接口就好了。

驱动分层的思想: 将linux 驱动划分层,如linux 上层  ,驱动核心层, 硬件操作层。驱动的移植只需要它就好了。

几个重要的知识点:

1. 网络接口设备没有体现一切都是文件的思想。因为 大家都是用socket做网络通信。

2.  每个驱动注册的时候他会寻找匹配的设备;每个设备注册的时候它会寻找匹配的驱动。  主管匹配的是 各种设备总线。 但是每种匹配的原则各个总线是不一样的, probe被执行的前提就是,驱动匹配了对应的设备。

3. Linux内核处处体现了面向对象的思想。 但是是C语言的原因,不是使用面向对象语言来编写的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章