股票

如何成长为出色的嵌入式系统开发工程师?【转】

本文转载自martin《如何成长为出色的嵌入式系统开发工程师?》

非常感触!嵌入式系统开发要学的东西太多!各位坚持哦

(转载)嵌入式, 工程师, 系统, 成长, 开发

嵌入式工程师修炼:自信 坚强 积极 勤快

(1)首先学嵌入不是为了跟风,而是为了逐浪。不是要看大家都去做 这一行才去做。是真的喜欢,这样才能精,才能做到“逐浪”!

(2)成功的历程是漫长、艰辛的,要有一颗艰韧不拔的心。

(3)文章中说的学习过程和资料大致差不多。但可惜的是在我花了很 长时间入门后才发现这篇文章,要不那短时间会缩减不少。

个人觉得需要注意的一点是:文中提到的步骤不是按步就班的,根据 个人的情况补全即可。

近来嵌入式挺火,于是大家都往这里挤。我想提醒大家的是,嵌入式马上也会成为如今的软件业。在你进来之前请先考虑清楚。但只要我们真的学精了一样东西,不管它将来变成什么样,哪怕最后只剩下一个人,那个人也一定就是你自己。

很多人以为搞嵌入式就是随便找本书看看,在电脑上编几个程序就完事。非也,其实嵌入式的门槛是比较高的。具体如下:

1、您得有一定数量的Money。

(1)开发板贵

(2)培训费更贵

(3)开发平台是贵得不能再贵。(除非您只是想玩玩而已)

2、需要学习的东西多。(1)window环境编程;(2)Linux环境编程;(3)单片机

3、最后也是最重要的一点,你得有坚韧不拔之志和一颗平常之心。

(1)自信 坚强 积极 勤快(注:好的自信是自觉的!)

(2)成功其实就是成为最好的您自己

    嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,东雪终将化去,春风定会吹来。具体步骤如下:

1、《C语言》第二版 谭浩强 ; 《C程序设计语言》第二版 徐宝文译机戒工业出版社

你能区分开指针数组和数组指针吗?你知道函数指针吗?

你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?

2、《数据结构》C语言版  黄国愉、叶乃青编 清华大学出版社

你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?

3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著

此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。

4、学习单片机,最好能找个前辈带一带。

你能用51单片机做出一样实际的东西吗?即使它再简单!

要注意加深对中断的理解。

5、学习ARM单片机。

(1)、细读《ARM微控制器基础与实战》周立工编写 (注:即使你不用书中的开发板)

(2)、细读相关芯片的原版英文文档。如:arm920TE.pdf  S3C2410_1.2.pdf

6、学习uCOS!!操作系统。

(1)、细读《嵌入式实时操作系统uC/OS-!!》第二版 召贝贝译

你能把uCOS!!移植到自己的平台上吗?

(2)、能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序

7、熟悉Linux环境,学习Linux环境编程,学习交叉编程

(1)、细读《linux命令大全.pdf》

(2)、细读《GNU Make 使用手册(中译版).pdf》

(3)、学习创建交叉编程环境.

8、学习Linux操作系统。

(1)、《UNIX环境高级编程》

(2)、细读“joyfire 笔记”,可在“qianrushi.com”网站的好书下载栏目获取

  (3)、细读《linux内核完全注释》

(4)、细读《understanding the linux kernel 2》

(5)、利用源代码阅读利器工具"Source Insight"进行真正的linux内核原码刨析

(6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序

9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》

10、复习C++,学习用QT进行图形界面编程

(1)、细读《QT编程宝典》

(2)、学会通过查看QT电子文档进行QT GUI实地编程

(3)、学习交叉编程.(其实就是把命令qmake变为tmake)

11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)

    至此,你已学完嵌入式的完整流程!但谨记:一个有思想的人才真是一个力量无边的人;有容乃大,能予方强!

王洪辉:嵌入式系统和Linux内核开发是核心技术,做起来确实比较辛苦,我觉得关键在于首先掌握一些硬件工具(比如万用表、示波器、逻辑分析仪、各种嵌入式系统调试仿真器)和一些工具软件(比如硬件原理图和PCB图设计软件及系统调试软件),然后最中心的工作就是读芯片手册、设备手册、各种标准和协议手册、Linux内核源代码,少说多做,做多了自然就得心应手、举一反三了,各种架构处理器的内部原理也都是相通的,只是汇编指令和具体实现和操作方法不同;而底层软件和操作系统内核是离不开硬件的,虽然说硬件相对比较简单,可硬件是基础,必须首先吃透,然后操作系统才可能稳定;所以嵌入式Linux内核开发要同时跟硬件和软件打交道,遇到问题要从软硬件两方面考虑,这就牵涉到分析解决问题的技能,总的来说,做多了,经验就丰富了,技能也会随之提高,别忘了勤记笔记;

打赏
原文链接:,转发请注明来源!

发表评论