打印
[嵌入式linux]

如何学好嵌入式Linux

[复制链接]
1512|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
陌路绝途|  楼主 | 2014-8-2 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何学好嵌入式
嵌入式定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。由于嵌入式系统通常具有低功耗、体积小、集成度高等特点,因此随着消费家电的智能化和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。那么如何才能学好嵌入式呢?
学习嵌入式不是很容易的, 不像其他的专业不是搞软件就是搞硬件的, 搞软件的可以不用了解硬件, 而搞硬件开发的, 可以不用知道软件知识!而嵌入式这个专业你既得会软件开发又得了解硬件知识!
首先学习嵌入式你得有信心!抱着一定要学会嵌入式的决心才能够学好嵌入式!
其次,我认为学习嵌入式你得有人教你, 否则自学简直很难学会!下面给你介绍一下比较不错的嵌入式学习资源,是免费的视频资源。可以免费下载。
Arm嵌入式开发视频教程.z01
http://www.uusq.net/file-348314.html
Arm嵌入式开发视频教程.z02
http://www.uusq.net/file-348315.html
Arm嵌入式开发视频教程.z03
http://www.uusq.net/file-348316.html
Arm嵌入式开发视频教程.z04
http://www.uusq.net/file-348317.html
Arm嵌入式开发视频教程.z05
http://www.uusq.net/file-348318.html
Arm嵌入式开发视频教程.z06
http://www.uusq.net/file-348319.html
Arm嵌入式开发视频教程.z07
最后, 学习嵌入式你应该掌握的相关知识和技术。
C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,目前绝大部分都是用C语言,你说不掌握它可以吗?至于怎么学习C语言,我想这类基础的知识每一个人都有自己的方法,关键要去学习,看书也好,网络(互联网)上找些视频(video)看也好。特别多人会问,C语言要学到怎麽样,我觉得这木有标准的答案。我想至少你在明白了有些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应当对操作系统(System)有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。在长沙英腾技术学习的时候,来自北航的罗老师常常说,学习嵌入式最好硬件软件两手抓两手都要硬。应当把系统(System)的管理理解一下,例如进程、线程,系统(System)怎么来分配资源的,系统(System)怎么来管理硬件的,当然,不是看书就能把这类理解透,假如不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
学习嵌入式的基础要求有C、计算机组成原理、操作系统,当然如果你懂一些C++、数据结构或者单片机就更好了。因为嵌入式是一门综合性非常强的学科,不仅仅是某一门学科的基础能够达到的,所以这方面是多多益善。
      操作系统,做嵌入式开发,嵌入式系统是必须的。现在我们常用的是Linux,还有Android这两个。当然两个在应用的领域是有着不同的。
    学习课程表嘛,这就不太好给了。但是学嵌入式,首先是掌握一种语言,C语言是必须的,而且它的重要性是“工具”。C语言它仅仅是做开发的工具,如果你连工具都没有,做嵌入式开发就是做梦。其次是掌握一种操作系统,比如说Linux、Android、Vxworks等等,第三,掌握ARM开发板,就是ARM体系。最后还得做一些嵌入式项目或者叫产品吧。
软件工程师:如果经历有限,认真学好C/c++(精通) orecal数据库(11g版本的) linux 操作系统(基础 懂得基本的命令 商业开发可没有可视化界面) 如果真学好了,签约到上海的标准的话,应届生(二本以上),刚开始就5000-6500(211),例如亚信联创
嵌入式工程师:如果很有毅力的话:学好C(精通) 指针、链表、文件操作是小儿科(过来人,学校学的觉得很牛,其实出来后才发现还停留在小儿科水平)ARM/8051任何一种 linux系统编程 linux操作系统 linux系统移植 linux驱动移植 这个如果能学好 签约>6000(应届生)比如华为,他们公司就没有低于6K的。。。
C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》中译版本。
操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
学习嵌入式不仅仅在于学习理论,更重要的是实践,建议自己买个开发板自己捣鼓捣鼓!

相关帖子

沙发
outstanding| | 2014-8-3 17:47 | 只看该作者
上面给的连接  我这边打不开。  不知道其他人是否遇到同样问题

使用特权

评论回复
板凳
outstanding| | 2014-8-3 17:47 | 只看该作者
上面给的连接  我这边打不开。  不知道其他人是否遇到同样问题

使用特权

评论回复
地板
k60405003| | 2014-9-19 15:19 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

745

帖子

18

粉丝