免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5031 | 回复: 4
打印 上一主题 下一主题

linux驱动开发重点关注内容--摘自《嵌入式Linux驱动模板精讲与项目实践》 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-31 21:13 |只看该作者 |倒序浏览


本文摘自本人拙著 《嵌入式Linux驱动模板精讲与项目实践》

初步看起来Linux设备驱动开发涉及内容很多,而需要实现驱动的设备千差万别,其实做一段时间驱动之后回首看来主要就是以下几点:

(1)对驱动进行分类,先归纳为哪个类型的驱动,归类正确再利用内核提供的子系统进行开发,往往会发现其实很多通用的事情内核已经帮我们做了,一个优秀的驱动工程师应该最大程度上利用内核的资源。内核已经实现的毕竟稳定性强,可移植性高。

(2)找到内核的提供的子系统,接下来就是要制作该子系统对该类设备提供的表征,也就是描述该类驱动的结构体,然后定义这个结构体把必要的数据进行初始化,最后调用该内核子系统提供的接口函数提交给内核管理。这是大部分驱动程序开发的战略流程。

(3)明确子系统已经做了什么,需要在自己驱动中实现哪些内容,通常做法是找一个接近的驱动程序进行修改,而不是一行一行代码进行编写。到内核中找接近的驱动例程是一个很好很快的方法。这些例程基本上提供接口如何使用,调用流程等等。

(4)以上基本上都是与内核接口有关,驱动第二个涉及到的就是芯片手册,这个与做其他嵌入式软件一致,故从单片机软件开发或者其他操作系统软件开发转过来做Linux驱动开发的人员来说,这部分是一个强项。

(5)驱动另外一个内容就是协议,各种嵌入式总线协议从简单的SPI到复杂的PCI或者USB等等。协议基本知识是需要掌握的,好在内核对各种常见协议都是以子系统的形式提供,在子系统中做了大部分共性的工作,大大降低了驱动开发的工作量。

    故学好驱动开发,一个重要的方面就是对内核的学习,熟悉内核的组织和思维方式,所以对其思想做个总结是非常有必要的。

论坛徽章:
0
2 [报告]
发表于 2014-08-11 21:32 |只看该作者
受教了,谢谢

论坛徽章:
0
3 [报告]
发表于 2015-07-21 16:54 |只看该作者
总结的很不错

论坛徽章:
0
4 [报告]
发表于 2015-09-14 18:04 |只看该作者
谢谢楼主分享。来支持你了

论坛徽章:
0
5 [报告]
发表于 2016-05-27 10:36 |只看该作者
楼主说得好。DINGDINGDING
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP