大家好,今天小编关注到一个比较有意思的话题,就是关于linux驱动开发如何学习的问题,于是小编就整理了3个相关介绍Linux驱动开发如何学习的解答,让我们一起看看吧。
LINUX内核和驱动开发工程师的发展前景怎么样?
嵌入式是一个做硬件产品为主的行业,通俗讲就是工业电子和消费电子量大产业. 消费以手机,智能音箱,家用物联网设备等为代表;工业控制如机床,交通,广告牌等各种非消费类电子产品. 做嵌入式可以先看行业,再看职位. 因为行业决定了薪资的高低. 这点和互联网区别很大.
其次具体到职位,嵌入式,这是对操作系统内核源码,基础语言C/C++/汇编,硬件电路知识,开发系统环境,编译Makefile原理,代码编辑VIM,这些都需要熟悉,开发软件是和硬件打交道的,懂硬件会看原理图是必备的. 另外对外部硬件通信协议U***,SDIO/EMMC,PCIE等要熟悉,这些是调试和开发驱动的基础,如果涉及无线通信Wi-Fi,蓝牙,可能要阅读相关802.11协议和SIG协议. 以太网部分TCP/IP要熟悉.
嵌入式还有音频系统也要调试,camera接口要会调试,LCD接口要会调试.
总的来说入门嵌入式对基础知识要求很高,3-5年入门到基础调试没有问题. 但是如果要编写Linux内核驱动或是开发协议有关的驱动,这些需要5-10年的锤炼,对协议和内核机制需要更深层次的理解.
如果只是做Linux应用层开发来说,需要掌握的知识要浅一点,只要了解libC库函数和内核SYSCALL如何用即可,但是进程间通信,线程操作,文件系统操作等必须融会贯通,这样才能开发好应用程序.
UI就是QT,基于安卓那叫APP开发了,不是嵌入式范畴. 但是安卓设备底层调试属于潜入式开发.
供参考
我亲身体验,我之前是做数控系统开发的,做了有七八年,有x86的产品也有arm的产品,x86的linux相对开发驱动的地方不多,arm上比较多,存储,显示的,u***的 ,各种总线的,音频的,网络的,很多地方只要有订制需求都要改。驱动开门槛比较高,主要会软件还得了解些硬件知识,硬件的原理图,设备的数据手册,工作特性都要会,入门难 但是一旦入门了就跟其他的一样做多了就熟悉了。之前公司是linux+qt,今年离职了进了一家安卓开发的公司,现在还在做安卓的驱动开发,感觉大同小异,只是硬件平台变了,开发的内容仍是没变。驱动这一块,人比较少,相对待遇也会好一些,现在我也不知道未来会不会随着年龄越大,会被淘汰掉,但是linux本身的应用范围是挺广的,而且作为一个成功的开源项目,只要社会有需求,后面应该还是会被广泛应用,至于个人就看自己的能力和精力了!
嵌入式LINUX驱动工程师的待遇怎么样?
一般,工作经验在1-2年的嵌入式工程师薪水,[_a***_]会在5000-8000元的范围,而随着工作年限的增加,薪资水平也会有较明显的提高。3年工作经验的1-2万,基本不成问题。我有一个大学同学2013年在华清远见学习过嵌入式开发,现在工资都上万了!就看你自己怎么想
学Linux系统课前应该准备什么?学的时候应该注意什么?
既然涉及到linux系统,那么需要准备
(1)先搭建linux的操作环境:在windows中安装vmware虚拟机,然后在虚拟机中装linux发行版操作系统(比如常见的ubuntu、fedora、centos等);
(2)然后学习在linux环境下使用常用的命令,因为linux的GUI没有windows中的好,所以要熟悉操作这些命令(可以参考我写的文章:嵌入式软件开发之《Linux命令专题》);
(3)还需要具备C语言知识(可以参考我写的文章:嵌入式Linux开发《C语言专题》),因为后续需要linux应用编程(涉及到Io文件操作、多进程、多线程操作以及网络编程);掌握了这些知识之后,就可以在windows下编辑代码,linux中编译代码,最后在电路板上运行代码;
(4)还可以再看看Linux驱动内容(比如什么是驱动?驱动的分类?重点掌握字符设备驱动等),可以写一些简单的驱动。如果还具备汇编语言更好,可以***你理解ARM汇编。如果这些你都熟练了,那么你就相当牛了。
不过,刚学linux时比较慢,也比较枯燥,所以一定要坚持,一定要熟悉常用的linux命令,否则寸步难行,熟练掌握C语言。有时间可以再看看linux应用编程、驱动等。毕竟驱动是有难度的。掌握这些内容可以从事嵌入式linux软件开发等工作。
感谢评论,交流,转发。
更多精彩内容可关注本头条号:嵌入式软硬件开发。感谢大家。相互交流,共同进步。
到此,以上就是小编对于linux驱动开发如何学习的问题就介绍到这了,希望介绍关于linux驱动开发如何学习的3点解答对大家有用。