如何自学linux驱动开发,做驱动开发需要哪些方面的知识

我有有两年工作经验,做了两年的嵌入式开发,先后做了,wince,android等系的一些开发,加入过一些开源项目,但是都不是很底层不是驱动级别的开发,现在在nokia做S... 我有有两年工作经验,做了两年的嵌入式开发,先后做了,wince,android等系的一些开发,加入过一些开源项目,但是都不是很底层不是驱动级别的开发,现在在nokia做S40系统的相关工作,linux还算比较熟悉,周末平时空闲时间很多,想自学驱动方面的开发,求过来人指点,分不是问题,在此谢过!!!!
越详细越好
展开
 我来答
手机用户47265
2011-08-06 · TA获得超过550个赞
知道小有建树答主
回答量:981
采纳率:0%
帮助的人:480万
展开全部
做嵌入式应用的话一般的编程就可以了。那么嵌入式驱动开发与内核开发的话就需要学习多个方面的知识。我就把这方面的要求给你交流一下:
(一家之言啊,自己多年从事嵌入式开发的一点感悟)
嵌入式驱动开发需要了解的知识大概有以下几类:
1 嵌入式操作系统驱动框架。每一个操作系统都有自己的构架,应该了解驱动在整个系统中的具体位置与构建驱动程序的主要事项
2 总线知识,比如PCI、USB总线。
3 芯片知识。驱动其实就是对设备上一些寄存器的配置、CPU与设备本身的通讯以及对不同命令的处理
4 要做好驱动,必须对所使用的CPU体系结构有一个比较深刻的认识
5 C++基本用不上,主要是C和汇编。
6 做驱动最好要懂内核调试(比如说linux)
ranpanf
2011-08-06 · TA获得超过801个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:393万
展开全部
硬件接口标准(参阅有关总线,设备控制器的技术文档)
操作系统的设备无关的部分
也就是说 驱动位于硬件和设备无关软件之间,向下屏蔽设备的硬件细节,向上为操作系统IO管理机制提供具体的策略。
一者,你即要有系统结构的常识,又要有IO软件层次的常识
二者,必须和参阅硬件接口标准,必须懂操作系统的IO管理的机制。
所以,驱动的编写,即与硬件细节打交道,有和具体的操作系统打交道。
驱动的编写模式单一,只要你啃下这些东西,就OK了,相对而言,不如应用软件难做,只是不少人对系统没有较为深入的理解罢了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wingofray
2011-08-06 · TA获得超过3408个赞
知道大有可为答主
回答量:3151
采纳率:0%
帮助的人:3116万
展开全部
C和汇编,然后研究linux kernel吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lufree92
2015-09-22 · TA获得超过109个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:113万
展开全部
我也想知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式