嵌入式Linux驱动开发的学习路线?

关于这个方向,我认为可以分为三个阶段:

1,嵌入式linux上层应用,包括QT的GUI开发。

2.嵌入式linux系统的开发。

3.嵌入式linux驱动程序开发。

目前,嵌入式系统的主要操作系统有LINUX、WINCE、VxWorks等。

Linux开源免费,源代码开放,更适合我们学习嵌入式系统。

所以你可以尝试以下路线:

(1) C语言是所有编程语言中最强的,单片机、DSP以及类似ARM的各种芯片的编程都可以用C语言来完成),所以一定要掌握的非常熟练。

推荐书籍:《C程序设计语言》,经典教材,外国人写的,也翻译成中文。

(2)操作系统的原理是必要的。如果你是计算机专业毕业的,没关系。如果不是计算机专业的,一定要找一本比较简单的计算机原理的书,把“进程”、“线程”、“系统调度”等基本问题讲清楚。

(3)Linux操作系统是用C语言写的,所以你也要先学习Linux的编程。只有你能应用它,你才能更深入地了解它的内核的本质。

推荐书籍:UNIX环境下的高级编程(第二版)

(4)了解arm的架构、原理和汇编指令。在嵌入式开发中,我们很少写汇编,但最起码的要求是要能看懂ARM汇编。

(5)移植系统时,需要从最低的bootloader开始,然后移植内核和文件系统。但是这部分迁移对硬件的依赖比较大,配置步骤也比较复杂,没有太多详细的信息。

(6)推动发展

Linux驱动程序设计不仅是一个具有挑战性的领域,也是一个深刻的内容。

linux驱动程序设计的本质属于linux内核编程的范畴,所以对linux内核和内核编程都有要求。在学习之前,你要了解linux内核的组成,因为每一部分如果研究的详细,都可以展开成一本厚厚的书。

以上只是一个大概的框架,实际开发中会涉及到很多东西,比如交叉编译、makefile、shell脚本等。所以学习嵌入式系统需要较长的周期,门槛较高。自学需要很强的学习能力和专业技能。只要你能坚持,你就会成功!

…………………………………………

嵌入非常困难。阅读晦涩难懂,难以入门。我个人比较喜欢看视频教程,因为更容易和老师入门。我们来看一篇关于一个专科生如何自学嵌入式系统的文章。

让我自我介绍一下。2007年,我考上了一个很差的民办院校,生物专业。学校的具体名字我就不告诉你了。2009年辍学。我就在那个学校,一年学费1000多,但是根本没人读书。我实在看不到希望,就退学了。

退学后,我也很迷茫。我大专没毕业。我真的不知道我能做什么。我在纠结我能做什么。所以退学后想找一段时间工作,因为我比较安静不太爱说话,不适合应聘创业。我想申请一份技术员的工作,但是我到处碰壁。

一个偶然的机会,我听说了嵌入式行业。那天去了新华书店,想找本书学习计算机分类。后来有个女生走过来问我是不是学计算机的,有没有兴趣学嵌入式。然后她给我介绍了现在嵌入式的火热情况,告诉我学嵌入式有多有前途,还给了我一张宣传单和一个嵌入式培训的广告。听了她的介绍,心里痒痒的。的确,我很想学自己的技术,亲手吃饭。

回国后,我上网查了一下嵌入式系统。现在确实是热门行业,而且很好找工作,工资也比较高。我下定决心要学嵌入式。于是我去找了嵌入式培训的资料。说实话,我当时也很迷茫。我不知道培训是否真的能像他们宣传的那么好,所以我只是想了解一段时间再做打算。

后来在百度了解到看到一篇鼓励我的文章。是一位嵌入式专家介绍了一个没有基础的朋友如何自学嵌入式。文章写得很好,包括怎么学,怎么学。他提到一种方法是看视频,因为看书太无聊了,太混乱了,很多书我们都看不懂。这个我真的很赞同。经常一个人看不了几页。

我在想,为什么别人可以自学,我也可以!我想相信自己,所以我想自学。如果实在学不会,我就再去培训。

如果我有明确的想法,我会搜索嵌入式视频。虽然我零星的找到一些嵌入的视频,但是并不系统。想找一个能告诉我怎么学的视频,一套从初学者到熟练的视频,一个比较完整的素材。最好有老师教我,但是不懂可以问。

后来发现了一个不错的视频,是IT学习联盟网站上推出的一个视频《零基础嵌入式就业课》(喜欢《零基础嵌入式就业课》的可以复制sina.lt/qKh粘贴浏览器回车打开)。里面的教程很好很全,可以让我从基础开始学起。视频更便宜。

下面我来介绍一下我的学习过程,希望能帮助到和我一样完全没有基础的朋友。

收到他们寄给我的光盘后,我开始学习。因为没有任何基础,所以从最简单的C语言视频课程开始。总之还是有很多不明白的地方,只好问他们了。他们还是很热情,帮我解决了。我学了差不多一个星期的C语言,然后学习了linux的基本命令。我在他们提供的linux虚拟机上做了练习,打了linux的基本命令,写了差不多三周的简单C语言代码。每天坚持写一些简单的代码,所以一月以后基本掌握了C和linux的基本操作。

接下来我去学了别人的视频培训课程,很齐全,和参加培训没有太大区别。这好像是两个月。学习了ARM的基本原理,嵌入式系统的概念,也掌握了一些嵌入式环境的构建。对linux也有了更深入的了解,对嵌入式应用是怎么做的也有了更深入的了解,但对驱动也只是一知半解。这个比较难,以后想慢慢咀嚼。

这两个月,除了吃饭睡觉,几乎所有时间都在学习。因为我知道自己几乎没有基础,比别人差,所以只能继续努力。我不能放弃。我得靠自己养活自己。这个技术我一定要学好,然后我会把不懂的问题总结出来。这之后慢慢积累了一段时间,我发现自己真的入门了。

最近一个月去看了关于实践部分的内容,了解了嵌入式项目的具体开发流程,以及需要什么样的知识。我开始准备这些知识,也就是学习这个视频。同时他们建议我找一些嵌入式的面试题目,为以后找工作做准备。我去网上找了很多嵌入式的题目,把他们理解的写下来,大概花了20天的时间准备。

我觉得我快入门了,会做一些简单的东西。我就是想找份工作,就去51job疯狂投简历。因为学历的原因,我没有大专毕业。说真的,大公司没人要我,我就投资了小私企。我希望我的努力会有回报。没想到过几天就要面试了,第一次面试就失败了。虽然因为之前做了准备,我觉得笔试很好,但是他们的要求比较严格,需要一年的项目经验,所以我没有入选。

后来陆续面试了几家公司,终于物有所值。终于得到了闵行一家私企的面试机会。这家公司规模相对较小。我的岗位是嵌入式linux应用开发和安全产品应用。我想我也很幸运。经理非常重视我的努力,决定雇用我。工资一个月3500。虽然我知道3500在上海只能过上温饱的生活,但我觉得我够了。至少我不用每天依赖父母。我能养活自己。我想只要我继续努力,我的工资肯定会翻倍。

写这篇文章,希望能让和我一样没有基础的朋友有信心。其实我们没必要自卑。我们并不比别人更愚蠢。只要我们愿意努力,我们就会成功。