linuxarm驱动开发
1. 嵌入式linux驱动程序开发学习路线
关于这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发
嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
所以你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定)神数,因此必须非常熟练的掌握。
推荐书籍:《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!
嵌入式非常难,看书的话比较晦涩难懂,不容易入门,我个人比较偏向于看视频教程,因为有老师带着比较容易入门。给看看一篇文章是关于一位专科生怎么自学嵌入式的。
做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在网络知道看到一篇让我很鼓舞的游兆首文章,是一个嵌入式猜姿高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟网站推出的一份视频《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制sina.lt/qKh粘贴浏览器按回车键即打开)。里面的教程还不错,很完整,可以让我从基础的开始学起。视频比较便宜。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
2. 我想学嵌入式LINUX驱动开发,很纠结到底选ARM9,ARM11还是CORTEX-A8的开发板
首先我没用过cortex-A8,不做讨论。
我最开始学的是ARM7,然后用到arm9、arm11、cortex-M4。
1、arm9和arm11区别不大,只是性能上的提高,然后arm11增加了图形处理的能力。
2、arm7都还不过时。外面找工作,我是刚好是应届生,这个对我来说实际的经验要求不高。但你用AR9\ARM11肯定不是过时的。
3、只要你学透了arm架构的任何一款处理器的驱动开发,上手其他arm架构估计不超过1天(8小时),因为驱动开发很多地方时相通的。驱动开发对硬件架构先不说,难度在于linux系统,尤其是内核。
4、你说对了,这是相当重要的一部分,如果这些都不熟悉,那么对于这个arm架构你是没有掌握的,尤其是驱动工程师!
从你问的问题来看,我不建议你使用cortexA8的处理器。A系列面向的是应用,如手持设备等,复杂度很高。
这儿建议你选用培训机构使用过的板子,我推荐基于ARM11的OK6410板子。有培训机构的配套资料,很多很全,遇到问题网上搜也能很快解决。楼上提到ARM9也是相当不错的选择,尤其是mini2440,LINUX内核直接支持。最近我有几个同学也去华清远见培训,他们使用的是款A8处理器的板子。不过这个东西出来的学习资料很少,非常不适合你入手。除非你也去培训,那是题外话,修行靠个人。
总的来说,不要纠结使用哪个处理器,他们都是相通的,先买一个板子来用起,那才是王道。对了,OK6410能跑android。
3. 我想学嵌入式LINUX驱动开发,很纠结到底选ARM9,ARM11还是CORTEX-A8的开发板
区别的地方很多,我不给你罗列了,这里只给你讲一些关键的和我认为你想知道的,希望对薯铅你有所帮助。
首先,你说的对,好一点的arm9是v5架构,而arm11是v6架构,架构上改变使得性能上有了很大的提高,特别是多媒体处理和低功耗方面,另外主频也得到提高。a8的话毫无疑问最好的了,效率很高,而且相应的指令集也做了修改,当然难度也更高了。
感觉越说越多,还是直接回答你的问题吧
1、arm9和arm11差不多,arm9实验化,arm11商业化,a8差别很大,指令集也不同,所以在编程上会有所不同,但只要掌握了一个,不会有太拦伍夸张的差别。
2、不过时,其实能用上a8
的公司不占多数,绝大多数还是arm7、9、11,其中7还是主力简手或军
3、学透??那完全没问题了,不过没几个人敢说学透。
4、对的,很重要。
4. linux移植到arm上后,接着驱动程序该如何开发
推荐
linux嵌入式教程视频
42-如何编写嵌入式Linux的设备驱动(一)
43-如何编写嵌入式Linux的设备驱动(二)
44-如何编写嵌入式Linux的设备驱动(三)
5. arm嵌入式linux系统开发详解怎么样
嵌入式系统是目前最流行的计算机应用技碰橡术之一。《ARM嵌入式Linux系统开发详解》由浅入深地讲解基于ARM体系结构的嵌入式
Linux系统开发,内容包括嵌入式系统的基本概念、应用领域等基础知识;ARM处理器的体系结构和功能特点;Linux系统内核结构和移植方法、
Bootloader功能和移笑并旁植;Linux应用程序开发,包括如何操作文件、管理内存、访问串口、多线程和多进程技术,并且剖析了应用程序的结构和工作
流程;Linux系统设备驱动程序开发,包括如何编写内核模块、驱动程序分类和功能特点,并且给出了网络设备驱动、Flash设备驱动和USB设备驱动的
实例分析。
《ARM嵌入式Linux系统开发详解》附带1张DVD光盘,内容为专门为《ARM嵌入式Linux系统开发详解》录制的9小时视频、《ARM嵌入式Linux系统开发详解》涉及的源代码、Ubuntu安装光盘的镜像文件和另外赠送的35小时Linux专题学习视频。
《ARM嵌入式Linux系统开发详解》适合广大从事嵌入式Linux系统开发人员、对嵌入式Linux系统开发有兴趣的计算蔽清机爱好者,以及大中专院校学生阅读。
6. 如何配置Eclipse开发环境用来开发arm9-linux下的驱动程序
一、安装JDK首先下载JDK5.0,并运行安装,安装过程中所有选项保持默认,最后配置JDK的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。新建系统变量JAVA_HOME:C:\ProgramFiles\Java\jdk1.5.0_06;新建系统变量CLASSPATH:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略)在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能省略)到这里,JDK安装完毕。下面方法我们测试一下JDK是否安装成功:开始菜单--运行--CMD,在MS-DOS中输入JAVA或JAVAC,此时可以看到很多参数的提示;注意:如果以后要安装诸如Eclipse、BorlandJBuilder、JCreator、IntelliJIDEA等集成开发环境(IDE,),应该在IDE中编译运行一个简单的HelloWorld程序,以保证IDE可以识别出JDK的位置。二、安装TomcatTomcat有安装版和免安装版两种,我用的是安装版,直接安装后好像也不用进行环境变量的设置,所以也没有进行这方面的设置,其实我也不是很清楚Tomcat究竟需不需要设置环境变量。下面是原文作者免安装版本的安装。首先下载jakarta-tomcat-5.0.30.zip,之所以下载免安装版的好处是可以使用多个然后将jakarta-tomcat-5.0.30.zip直接解压到D盘根目录:最后配置Tomcat的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。新建系统变量CATALINA_HOME:D:\jakarta-tomcat-5.0.30在系统变量CLASSPATH的值的后面加入:%CATALINA_HOME%\common\lib;在系统变量Path的值中"%JAVA_HOME%\bin;"的后面加入以下内容:%CATALINA_HOME%\bin;到这里,Tomcat安装完毕。进行完一、二两步的设置以后,各系统变量的值如下:JAVA_HOME:C:\ProgramFiles\Java\jdk1.5.0_06CATALINA_HOME:D:\jakarta-tomcat-5.0.30CLASSPATH:.;%JAVA_HOME%\lib;%CATALINA_HOME%\common\lib;Path:%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem三、安装Eclipse首先下载eclipse-SDK-3.1.2-win32.zip然后将eclipse-SDK-3.1.2-win32.zip直接解压到D盘根目录:到这里,Eclipse安装完毕。四、安装MyEclipse首先下载EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe,这里使用的是插件版本。然后安装EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe。安装完毕之后,将MyEclipse安装目录下的features和plugins这2个目录覆盖到Eclipse的安装目录下。最后将刚才安装的MyEclipse卸载。解释一下上面这样做的原因:因为MyEclipse是Eclipse的插件,所以只要把features和plugins这2个目录覆盖到Eclipse的安装目录,Eclipse就会自动认出这些插件。到这里,MyEclipse安装完毕。五、破解MyEclipse运行MyEclipse4.1.1注册机MyEclipseKeyGen.exe,选择MyEclipse的版本号,输入注册名,生成序列号。运行eclipse.exe(首次运行要求指定Workspace),依次点击Window---->Preferences---->MyEclipse---->Subscription---->EnterSubscription,输入注册名以及注册机生成的注册码。到这里,MyEclipse破解完毕。六、指定Eclipse+MyEclipse的JRE和Tomcat服务器1.设定Eclipse+MyEclipse的JRE一般情况下,Eclipse可以自动找到JRE,我们不用进行过多的设置。2.设定Eclipse+MyEclipse的Tomcat服务器只需设置图中所标注的两处即可,图中其余部分是自动生成的。到这里,我们的Eclipse+MyEclipse开发环境就搭建完毕了!七、新建一个项目来测试一下Eclipse+MyEclipse开发环境是否搭建成功1.在Eclipse中依次点击“File---->New---->Project”,在弹出的“NewProject”对话框中依次点击“WebProject---->MyEclipse---->J2EEProjects---->WebProject”,再点“Next”,在“ProjectName”中输入项目的名字“test”,最后点“Finish”。2.在Eclipse左边PackageExplorer列表中点击“test”,将项目test。右键点击WebRoot---->New---->JSP,新建一个名为hello.jsp的JSP页面。3.再用同样的方法,新建一个叫hello_result.jsp的JSP文件4.deploy(部署)项目。点击deploy按钮(用红线画了的按钮就是deploy按钮),在弹出的窗口中点击Add,部署test项目5.启动Tomcat服务器。6.项目test的运行结果:我们可以去Eclipse的Workspace目录下看看test项目的代码,也可以去Tomcat的webapps目录下,看看部署之后的test项目的结构。