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