您的位置:首页 > 其它

嵌入式技术学习路线分享

2016-05-19 18:25 281 查看

说明

之前,嵌入式学习迷茫之际,在技术网站看到了一些文章,觉得可能会有帮助,故整理了三篇。

1、技术大牛分享嵌入式技术学习路线

原文:http://bbs.elecfans.com/jishu_613843_1_1.html

嵌入式技术是各种电子产品的核心技术,也是工业4.0、远程医疗、3D打印等新兴产业的核心技术,具有广阔的发展前景。很多计算机、电子信息类专业的学生都想把嵌入式开发作为自己的职业目标,但是因为嵌入式涉及的知识太多,太杂,太广,很多嵌入式初学者陷入嵌入式知识的海洋中,东学一点,西学一点,找不到学习的方向。 我从事嵌入式开发工作有10年,嵌入式教学工作有6年,作为过来人,给大家谈谈正确的嵌入式学习路线,供各位嵌入式初学者参考,希望对大家有所帮助。

嵌入式工程师需要掌握的内容非常广泛,主要包括嵌入式软件、嵌入式硬件、以及相关行业、产品的专业知识。作为嵌入式初学者,我们不可能,也没有那么多精力把所有的知识到搞的很精通,我要学会抓住重点,学会取舍,达到一通百通,事半功倍的学习效果。

首先嵌入式技术主要分为嵌入式软件和嵌入式硬件2大方向。

嵌入式硬件方向

嵌入式硬件工程师主要工作职责是为产品设计硬件电路原理图,设计硬件PCB板,选择合适的元器件,焊接调试硬件电路板,保证硬件电路板的可靠性、稳定性和抗干扰能力。因为现在集成电路发展迅速,大部分集成电路厂商都会提供参考电路,所以硬件电路原理图的设计相对来说比较简单,硬件工程师工作的含金量主要体现在产品的可靠性和稳定性设计、以及电磁兼容设计,这才是硬件设计工程师的含金量所在。 一个资深的嵌入式硬件工程师年薪都在10万~ 30万之间。

要成为一个资深的嵌入式工程师相当难,一方面要有非常扎实的理论知识,同时也要有相当的那种大型的、高频CPU、多层PCB板的设计经验。嵌入式硬件工程师要学的课程主要有模拟电路设计、数字电路设计、电磁波理论等。熟悉常用的放大电路、滤波电路、电源电路设计和分析。

嵌入式软件方向

嵌入式软件工程师的职责主要是根据产品的功能需求设计好软件,让硬件工作起来。嵌入式电子产品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 几大部分组成,而软件就千差万别了。产品的具体功能都是由软件来实现的,一般来讲一个产品的实现,软件设计的工作量是硬件设计的4~5倍。所以一般情况下,一个公司的软件工程师数量是硬件硬件工程师的4~5倍,嵌入式软件工程师需求比硬件工程师大很多,同时跟硬件工程师相比,嵌入式软件工程师学起来相对容易些,所以这里我重点和大家谈一下嵌入式软件工程的学习路线。

嵌入式软件工程师学习路线

1、打好嵌入式软件编程的基础

这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。

特别是C语言中对指针的理解和应用。这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,为进一步学习嵌入式开发打下良好的基础。

2、学习ARM体系结构编程

这一阶段才是真正的嵌入式编程,首先我们要选择一款嵌入式CPU和一款嵌入式开发平台,目前ARM 嵌入式CPU应用最广泛,这一阶段重点是学习嵌入式CPU的裸机编程,熟悉中断、定时器、串口、NAND FLASH、网络控制器、LCD屏、触摸屏等常用嵌入式外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。这一阶段除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于嵌入式软件工程师来讲,重点是学习硬件的工作原理,在掌握硬件工作原理的基础上,对硬件进行编程控制。这和硬件工程师学习的侧重点有所不同。这一阶段对应的学校的课程主要包括模拟电路、数字电路、微机原理和单片机。这一阶段重点是要看CPU的芯片手册,大部分的参考书也是对芯片手册的翻译。

3、学习嵌入式系统的构建

这一阶段主要学习带有操作系统的嵌入式系统的构建,包括系统的启动流程、Bootloader的工作流程、UBOOT的编译、裁剪与移植、嵌入式Linux内核的裁剪、移植与编译,嵌入式根文件系统的定制、BootLoader、内核和根文件系统的烧写。 这一阶段的主要目的是掌握带有操作系统的嵌入式系统的构建和烧写过程,以及对嵌入式系统软件的总体构成有个整体认识,为我们接下来学习嵌入式应用和驱动开发打下坚实的基础。

4、学习嵌入式Linux应用程序开发

这一阶段主要学习上层的嵌入式Linux应用程序开发,包括基于Linux多进程、多线程、网络、文件与目录和QT编程。掌握嵌入式Linux环境下应用程序开发技术。

5、学习嵌入式Linux驱动程序开发

这一阶段主要学习底层嵌入式Linux设备驱动程序开发设计,包括常用的字符设备驱动、块设备驱动、LCD设备驱动、触摸屏设备驱动以及驱动程序开发中的核心技术。

6、完成一个综合项目

嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会,会不会用,能不能应用所学知识来解决实际开发中的问题,我们需要来完成一个综合的嵌入式实训项目,例如: 基于嵌入式Linux平台实现的飞行器、 基于嵌入式Linux平台实现的智能机器人等,这些项目都综合应用了嵌入式开发当中的应用,驱动和QT开发技术。

以上就是我建议的比较系统的嵌入式学习路线。系统学习并能灵活应用以上知识后,嵌入式基本上就算入门了,具备企业项目的嵌入式研发能力了,这时候去应聘企业的嵌入式研发工程师岗位就不会有什么问题了。

2、嵌入式、单片机学习书籍推荐

原文:http://bbs.elecfans.com/jishu_606691_1_1.html

Linux基础

   1、《Linux与Unix Shell 编程指南》

   C语言基础

   1、《C Primer Plus,5th Edition》【美】Stephen Prata著

   2、《The C Pro**ming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著

   3、《Advanced Pro**ming in the UNIX Environment,2nd Edition》(APUE)

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

   Linux内核

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

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

   研发方向

   1、《UNIX Network Pro**ming》(UNP)

   2、《TCP/IP详解》

   3、《Linux内核编程》

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

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

   硬件基础

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

   2、S3C2410 Datasheet

   英语基础

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

   系统教程

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

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

   3、《Building Embedded Linux Systems》   

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

   理论基础

   1、《算法导论》

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

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

   4、《深入理解计算机系统》【美】Randal E. Bryant David O”Hallaron著

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

   6、《编译原理》

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

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

   C语言书籍推荐

   1. The C pro**ming language 《C程序设计语言》

   2. Pointers on C 《C和指针》

   3. C traps and pitfalls 《C陷阱与缺陷》

   4. Expert C Lanuage 《专家C编程》

   5. Writing Clean Code —–Microsoft Techiniques for Developing Bug-free C Pro**s

   《编程精粹–Microsoft 编写优质无错C程序秘诀》

   6. Pro**ming Embedded Systems in C and C++ 《嵌入式系统编程》

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

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

   尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。

如果有条件也可以参加一些实力的技术培训机构

3、嵌入式系统工程师的十个不要

原文:http://bbs.elecfans.com/jishu_613878_1_1.html

1、不要第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。

2、初学者请不要看太多的书,那会误人子弟的。先找一本好书系统的学习,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。

3、看帮助提示,不要因为很难,而自己又是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,或不够直观。

4、不要被一些专用词汇所迷惑,最根本的是先了解最基础的知识。

5、不要放过任何一个看上去很简单的小问题—他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。

6、不要知道一点东西就以为懂了,这并不能说明你会用,会用是需要实践经验和时间积累的。

7、不要放弃,入门并不难,难的是长期坚持实践和不遗余力的学习和实践。

8、不要只看书,看再多的书是学不会用的,要多实践,多动手。

9、不要老把时髦的技术挂在嘴边, 把时髦的技术挂在嘴边,还不如把基本的技术记在心里。

10、在任何时刻都不要认为自己手中的书已经足够了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息