想学嵌入式开发怎么学?看这份超详细的嵌入式学习路线

嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段:

嵌入式学习的几种线路图

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

2、嵌入式linux系统开发

3、嵌入式linux驱动开发

嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等

Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。

你可以尝试以下路线:

(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。

推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。

(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。

(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。

推荐书籍:《UNIX环境高级编程》(第2版)

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

(5) 系统移植的时候,就需要你从最下层的

bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。

(6) 驱动开发

linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。

linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!

嵌入式是一个比较大的概念,有四个分支(主要):

1、微控制器(单片机为例);

2、微处理器(arm为例);

3、dsp(数字信号处理);

4、soc(片上系统);

对于我们初学者而言,首先要学习单片机,以51为代表,等你学好51之后,可以深入学习更艰难的东西;

当然,并不是说你只需要学习单片机;要想学好单片机,你还得学c语言,得学汇编,得学一大堆应用软件;等到单片机能够掌握的不错的时候又需要自己进行原理图、PCB板的设计;还得掌握系统设计的工程管理什么的;比较多。。。。

单片机还是比较简单的,等到学好之后,开始学习arm的时候,你就接触的多了,什么操作系统啊、驱动编写啊、内核移植啊、应用程序的添加啊、上位机的编写啊,,那个就多了,,不过到时候你就全知道了。。。

ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:

(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)

(2)必须掌握一个嵌入式操作系统(初步定为uclinux或linux,版本待定)

(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

从事嵌入式软件开发的好处是:

(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切 入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。

(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。

(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般 都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

(4)兴趣所在,这是最主要的。

从事嵌入式软件开发的缺点是:

(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

(2)这方面的企业数量要远少于企业计算类企业。

(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

(4)平台依托强,换平台比较辛苦。

兴趣的由来:

1、成功观念不同,不虚度此生,就是我的成功。

2、喜欢思考,挑战逻辑思维。

3、喜欢C语言

4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。

5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。

嵌入式学习的几种线路图

方法步骤:

1、基础知识:

目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。

科目:数字电路、计算机组成原理、嵌入式微处理器结构。

汇编语言、C/C++、编译原理、离散数学。

数据结构和算法、操作系统、软件工程、网络、数据库。

方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。

thec++programminglanguage(一直没时间读)、数据结构-C2。

2、学习linux:

目的:深入掌握linux系统。

方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深, 那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。

主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。

3、学习嵌入式linux:

目的:掌握嵌入式处理器其及系统.

方法:

(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。

(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。

(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)

主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。

4、深入学习:

A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。

B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDM A等。

C、网络与信息安全技术:如加密技术,数字证书CA等。

D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算 法。

说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。

注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。

不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!

技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。

Linux基础

1、《Linux与UnixShell编程指南》

C语言基础

1、《CPrimerPlus,5thEdition》【美】StephenPrata着

2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDav

idM.Rithie(K&R)着

3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)

4、《嵌入式Linux应用程序开发详解》

嵌入式学习的几种线路图

Linux内核

1、《深入理解Linux内核》(第三版)

2、《Linux内核源代码情景分析》毛德操胡希明著

研发方向

1、《UNIXNetworkProgramming》(UNP)

2、《TCP/IP详解》

3、《Linux内核编程》

4、《Linux设备驱动开发》(LDD)

5、《Linux高级程序设计》杨宗德著

硬件基础

1、《ARM体系结构与编程》杜春雷着

2、S3C2410Datasheet

英语基础

1、《计算机与通信专业英语》

系统教程

1、《嵌入式系统――体系结构、编程与设计》

2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操胡希明 著

3、《BuildingEmbeddedLinuxSystems》

4、《嵌入式ARM系统原理与实例开发》杨宗德著

理论基础

1、《算法导论》

2、《数据结构(C语言版)》

3、《计算机组织与体系结构?性能分析》

4、《深入理解计算机系统》【美】RandalE.Bryant DavidO‘‘Hallaron着

5、《操作系统:精髓与设计原理》

6、《编译原理》

7、《数据通信与计算机网络》

8、《数据压缩原理与应用》

C语言书籍推荐

1.TheCprogramminglanguage《C程序设计语言》

2.PointersonC《C和指针》

3.Ctrapsandpitfalls《C陷阱与缺陷》

4.ExpertCLanuage《专家C编程》

5.WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCPrograms《编程精粹--Microsoft编写优质无错C程序秘诀》

6.ProgrammingEmbeddedSystemsinCandC++《嵌入式系统编程》

7.《C语言嵌入式系统编程**》

8.《高质量C++/C编程指南》林锐

原文地址:http://blog.51cto.com/14081320/2320697

时间: 2024-10-03 21:41:32

想学嵌入式开发怎么学?看这份超详细的嵌入式学习路线的相关文章

嵌入式开发要学什么_必备嵌入式学习路线_高手速成方法

最近遇到很多处于迷茫中的新手,在纠结要不要去学嵌入式,主要问题在于嵌入式的门槛非常高,经验少.或者非电子专业投身嵌入式行业能否发展下去.学习嵌入式可以说是比较困难的,但是也是有方法的,要增加自己Linux的技能,只有通过实践来实现了.所以,一定要在学习中勤于实践,你会收获更多. 在实际的学习过程中,嵌入式软件工程师需要学什么?相信是困扰所有嵌入式初学者的难题,大致可以总结为:嵌入式首先懂得熟悉C语言,而后可以从系统编程入手,再深入到裸机开发.系统移植.驱动开发等.嵌入式需要懂得的一些基本诸如Li

【重点推荐】iOS开发之芝麻信用SDK的超详细使用教程

其实每一个第三方SDK的使用都差不多,看着官方给的开发文档和Demo就能依样画瓢自己做出来.我只是希望帮助一下刚入行不久的新人. 先附上官方文档的地址:芝麻信用iOS开发文档 一.先做一些必备的工作 由于需要导入的Framework比较多,先创建一个Frameworks分组(分组和文件夹可不一样哦) 1. 将资源bundle导入工程 H5Service.bundle Poseidon.bundle 直接把下载到的这两个文件拖进Frameworks分组中 2. 向工程中导入SDK Framewor

学嵌入式开发好吗

学嵌入式开发好吗 嵌入式系统可以说是当前最热门最有发展前途的IT应用领域之一,嵌入式系统通常会用到在一些特定的专用设备上,特别是随着消费家电的智能化,嵌入式更显重要, 对于刚毕业的学生来讲,投身于一个嵌入式开发职业行业里注定是一个漫长的过程,只要你潜心修炼一定可以成为一名优秀的嵌入式工程师,目前华清远见星创客的应届毕业生,月薪都达到了1w+,那么学嵌入式开发哪里好,下面来一一列举嵌入式的好处: 1.目前国内外这方面的人是很稀缺的.一方面,是因为这一领域入门门槛较高,不仅要懂底层软件,而且必须懂得

学计算机的值得一看的文章,跟帖也很有水平啊

转自http://blog.csdn.net/Xviewee/article/details/1606247 回复CSDN和KAOYAN诸位网友的几点看法,(为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢): 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可. 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择.因为计算机学院才能让你在理论上更上一层楼.软件学院从教学计划上就没有

嵌入式开发学习笔记 ( java - c/c++ :从入门到入门 )

发现放到Blog之后排版全乱套了.. 已经把PDF上传到资源页了  http://download.csdn.net/detail/lyy289065406/8934637 那边排版好看一点...看官们随意吧 >...< · 目 录 导 航 1. 引言 1.1. 编写目的 1.2. 阅读范围 1.3. 声明 1.4. 缩写词/名词解释 1.5. 参考资料 2. 嵌入式开发学习笔记 2.1. 开发环境/测试环境 2.2. 开坑:提要 2.3. 入坑:JNI 2.3.1. navicate 接口定

2013-2014(第六届)中国嵌入式开发从业人员调查报告

2013-2014(第六届)中国嵌入式开发从业人员调查报告查看 >>调查背景 在嵌入式.移动互联网.物联网等热门技术日益普及的今天,以实现智能化为核心目标的典型技术,已经成为了整个信息产业毋庸置疑的主旋律.特别是近1 年,以智能家居.智能医疗.可穿戴设备等为首的大量智能硬件批量的进入到人们的生活,更让这一场智能技术的变革成为势不可挡的潮流.事实上,随着产业的变 革和发展,IT行业也已经被重新定义,从Information Technology(信息技术)领域发展为Intelligent Tec

嵌入式开发职业发展方向有哪些?

近几年来,随着移动互联网.物联网的迅猛发展,嵌入式技术日渐普及,在通讯.网络.工控.医疗.电子等领域发挥着越来越重要的作用:随着嵌入式技术及相关产品不断渗透到人们日常生活 ,大大小小公司对于嵌入式开发 人才招聘需求猛增. 在介绍嵌入式开发职业发展方向之前,先了解一下嵌入式设备的本质.嵌入式设备的本质就是一台专用的.微型计算机,所以就像计算机一样由三个层次的东西组成: 1 )硬件,包括 cpu (如 ARM) .存储(如 flash ). I/O (显示模块.通讯模块.视音频模块. I/O控制电路

第二章 Android系统与嵌入式开发

第二章 Android系统与嵌入式开发 第二章首先要先了解Android和嵌入式Lnux系统有什么区别和联系,嵌入式Linux系统是在嵌入式设备中运行Linux系统:Android系统是在嵌入式设备中运行Android系统. 其区别就是Android系统和Linux系统的区别.Android系统的底层是Linux的内核,上面跑的是Android的java虚拟机.Android系统的UI做的比Lnux好很多. 首先我们应该先了解一下什么是嵌入式,对于嵌入式来说,它是一种“完全嵌入受控器件内部,为特

2019年嵌入式开发系统详细分析告诉你是否还值得去学习

如今嵌入式可以说是当下比较火热的IT技术之一了,很多数字包括手机.电子字典.可视电话.数字相机.数字摄像机.机顶盒.智能玩具医疗仪器和航空航天设备等都是典型的嵌入式系统.所以,现在可以说嵌入式真的很火,那么你说嵌入式开发学习机构值得去学习吗?答案当然是肯定的. 嵌入式前景可观,近年来,随着嵌入式系统产业规模的持续增长,作为IT业的重要新兴产业和经济增长点,发展嵌入式系统产业已经成为了制造向创造转变的突破口,可以说现在对嵌入式开发人才的需求是非常大的,目前嵌入式人才匮乏,一些权威部门统计,我国目前