以下内容是我向一位在外企工作多年的大哥咨询的,希望对嵌入式的童鞋有所帮助!
其实嵌入式开发涵盖面非常广泛,要掌握的知识也非常丰富。结合我自己的实际,其实在实际工作中用到的也就是很少的一块。我换过几次工作,每次换工作都是一次全新的学习过程。我到底学了什么,稍后给你说。
你问到的问题:嵌入式课程体系,不同的培训机构可能说法不一样。就我的理解来说,嵌入式开发不外乎两个大的方向:软件,硬件。
首先来说硬件,包括电子系统设计,电路设计。这个方向需要长时间的经验积累,一个硬件工程师做个7、8年才能积累一些有价值的经验。硬件设计中又有前端 (模拟)和后端(数字)之分,目前国内的很多模拟高手都是在外企做过多年的。关于硬件,我了解有限,只能给你说这些了。
再来说说软件。软件有点短平快的感觉,就是起点相对较低,上手较快,且社会上需求量大。软件设计的在嵌入式领域又分为底层驱动和上层应用两个方向。上层应 用难度低,且可以脱离硬件平台的限制,想对应的,发展方向就不是很明朗。底层驱动需要对硬件有基本了解,可以说是介于软件和硬件之间的设计开发,难度较 大,灵活性高。软件开发的最高境界就是操作系统。
简单的了解了以上基本信息,再回到你的问题上来:嵌入式课程体系。可以把学习分为两个步骤:基础学习和专业学习。
基础学习的课程自然会包括:模拟电路,数字电路,电路等。但是当你打开模拟电路这本书的时候,你会发现这门课程的理论性特别强,单单是看这一门课就足以 令人望而却步啦。数字电路简单,应该不是问题,还有就是电路,西交大邱关源编写的那套教材,也是晦涩难懂。所以,基础学习可以是个长期积累的过程,没有必 要从零开始。遇到问题查找一下教材就可以了,这些知识不是必须的。但是另外两门课程却是必须要从零开始的必经之路:C语言程序设计 (谭浩强)和微机原理。这两本书应该烂读。嵌入式开发的软件和硬件基础全在里面了。有了编程基础以后,仔细研读“数据结构”,这对软件开发十分必要。
专业学习就要在实践中展开了。当然,在基础学习阶段,你也可以以某一款单片机来学习,会起到事半功倍的效果。每次换工作,其实都是在变更开发平台和操作系 统,这个是需要不断更新的,但是套路是类似的,所以上手就很快了。所以在这个阶段,你会越来越多的发现,软件编程的本质就是操作系统。在做过一个项目之 后,再次阅读“操作系统”会有更多领悟。
以上是我的一些感受,供你参考。要想在这个方向发展,要耐得住寂寞,多多积累经验。