大家好,今天小编关注到一个比较有意思的话题,就是关于linux设备驱动开发学习的问题,于是小编就整理了3个相关介绍Linux设备驱动开发学习的解答,让我们一起看看吧。
如何自学LINUX驱动开发,做驱动开发需要哪些方面的知识?
做嵌入式应用的话一般的编程就可以了。那么嵌入式驱动开发与内核开发的话就需要学习多个方面的知识。我就把这方面的要求给你交流一下:(一家之言啊,自己多年从事嵌入式开发的一点感悟)嵌入式驱动开发需要了解的知识大概有以下几类:
每一个操作系统都有自己的构架,应该了解驱动在整个系统中的具体位置与构建驱动程序的主要事项2 总线知识,比如PCI、USB总线。
3 芯片知识。
驱动其实就是对设备上一些寄存器的配置、CPU与设备本身的通讯以及对不同命令的处理4 要做好驱动,必须对所使用的CPU体系有一个比较深刻的认识5 C++基本用不上,主要是C和汇编。
6 做驱动最好要懂内核调试(比如说linux)
已精通单片机软件,硬件开发和linux设备驱动应选哪个转行?
根据你的情况描述,从我及身边同事的经验来看,从过渡的容易程度来看,首选是Linux设备驱动的开发。
我当时的同事,我们都叫他小张,毕业于西部一所985高校,毕业后进入上海某航天研究所。到研究所后,就是做单片机C51开发工作,工作了两三年以后,跳槽到了国内顶尖的通信设备制造商。我们几乎是一起进公司的,我们成为了同事。我们开始都是在硬件部,但是不是真正的硬件开发,是***硬件的开发。后来我们科室从硬件部独立出来,成立软件部。他负责设备驱动的开发,我负责应用层的开发,操作系统选用的是嵌入式操作系统,pSOS,后期选用Vxworks。
设备驱动开发还是很重要的,设备能否启动导引成功,就靠最初的设备驱动模块。我们部门的设备驱动就完全交给小张负责。大家给他取了个绰号“boot张”。
从另一个方面讲,从软件开发转到硬件开发有难度。器件选用,PCB板的设计,硬件调试,不是轻易上手的。反而,从硬件转软件开发更容易得多。
所以,如果已经熟悉单片机软件开发,建议是转LINUX设备驱动开发更好更容易。
linux内核,驱动,应用程三者的概念和之间的关系?
首先,要理解操作系统的概念,操作系统是用户和硬件之间的一层媒介程序。
不管是Linux还是Windows或者安卓、IOS,它的主要功能有两点:1、有效管理硬件。
2、方便用户操作。其次,Linux内核是Linux系统的核心程序,主要完成任务调度、内存管理、IO设备管理等等功能,主要目的是为了应用程序提供一个稳定良好的运行环境,这是一个基础。再次,驱动程序是操作系统有效管理硬件的一个途径。应用程序是方便用户操作提供的程序,比如shell,Linux中的bash Shell以及KDE、gnome等图形Shell都是应用程序。你可以简单的理解为驱动程序实现了操作系统对硬件的有效管理,应用程序实现了操作系统方便用户操作的目的。最后,从编程角度来看,Linux内核就是一个调用库,应用程序通过调用Linux提供的API函数来实现操作,Linux内核通过与驱动通信实现对硬件的有效管理。具体的编程细节,需要自己在实践编程中体会。这是一个整体的描述。
到此,以上就是小编对于linux设备驱动开发学习的问题就介绍到这了,希望介绍关于linux设备驱动开发学习的3点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/29533.html