嵌入式系统软件工程师是泛指那些从事嵌入式系统软件领域工作并掌握了该领域基本知识和专业基础的职业技术人员。就一位嵌入式系统软件工程师而言,用人单位会特别关注你在该领域中所具备的特定的职业技能,比如你所擅长的是嵌入式系统驱动软件开发,还是嵌入式系统应用开发,或者是嵌入式系统测试;你具体掌握了哪一种操作系统,是否有在某一种嵌入式系统结构上进行嵌入式系统软件开发的技能。所以,人们经常按照操作系统或者硬件结构来细分嵌入式系统软件工程师,比如嵌入式系统(Linux)工程师、嵌入式系统(WINCE)工程师、嵌入式系统(ARM)工程师、嵌入式系统(MIPS)工程师等。 很多想进入嵌入式系统这个领域的学生总是会经历一个思想过程,就是起初并不知道需要学什么知识,然后就是不知道为什么要学这些知识,再就是不知道如何学这些知识,到了最后就是不知道如何使用这些知识。如果你们同样有这些问题,我们将在职业教育计划实施过程中一一为你解答。在这里我们要回答学生经常提出的一个问题:如何才能成为一位合格的嵌入式系统软件工程师? 简单地说,要成为一位嵌入式系统软件工程师,基本要求是: 具备计算机软硬件的基本知识 掌握一门嵌入式系统程序设计语言 掌握一套嵌入式系统开发工具 掌握一种嵌入式操作系统 掌握一种嵌入式系统结构 掌握嵌入式系统应用领域的行业基本知识 这是嵌入式系统软件工程师最起码的职业技能要求,但要成为一位合格的嵌入式系统软件工程师,光有职业技能还不够,还必须具备基本的职业能力。下面具体列出成为一位合格的嵌入式系统软件工程师所需要具备的条件。1、明确自己的发展方向,并为此制定可行的职业计划 很多学生总不确定将来可能做什么,所以对于专业学习根本就没有计划或分析,而是抱着走一步算一步的态度。这样的想法往往就会通过潜意识去暗示你自己,导致最终你变得无所事事、碌碌无为。如果你从现在起,确定自己的发展方向,制定职业计划并为此付出实际行动,那么无论你将来是往技术、管理方向发展还是自主创业,甚至无论你将来是否仍然执行你现在制定的计划,你都将获得能力的提高。2、具有理论与实践并重,内外双修的素质 一个合格的嵌入式系统软件工程师,是真正理解了嵌入式系统软件产品的本质及软件产品研发思想精髓的人。掌握嵌入式系统软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是嵌入式系统软件工程师的主要工作。但从嵌入式系统软件工程师这个角度来看,这只是外在的东西,并非重要的、本质的工 作。学习、掌握嵌入式系统软件产品开发理论知识、软件开发方法,并在实践中理解、应用软件产品的分析、设计、实现思想来解决具体的嵌入式系统软件产品研发问题,才是真正的嵌入式系统软件工程师的必要素养。3、具有良好的职业知识表达能力 正如前面所言,斯迈尔特职业教育的目标是培养学生能用、能做、能想、能说的能力。实际上,“能说”是最关键的能力培养。建立在“能说”能力的背后的是你对相关知识的确实理解和你对问题的敏捷反应。4、深入理解了嵌入式系统的概念 从硬件上理解。嵌入式系统硬件是将传统的基于CPU的外围器件,整合到CPU芯片内部。例如比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成了PCI控制器,还集成了3个NPE网络处理器引擎。 从软件上理解。嵌入式系统就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组 件则是完成了软件的“嵌入”。比如WinCE在内核定制时,会有相应选择,其中就是Wordpad、PDF、MediaPlay等等选择。如果我们选择了,在CE启动后,就可以在界面中找到这些东西。 从实现上理解。把软件内核或应用文件系统等东西写入到嵌入式系统硬件平台中的ROM,就实现了一个真正的“嵌入”。5、知道嵌入式系统的分层方式 嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层: 硬件层:是整个嵌入式系统的根本,如果你现在对单片机及接口这块很熟悉,并且能用C语言和汇编语言来编程的话,那么从嵌入式系统的硬件层做起来就相对容易。硬件层是嵌入式系统的基础,但嵌入式系统增值还是要靠软件。 ? 驱动层:要能看懂电路图还要能对操作系统内核十分的精通,以便所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能运行。当然,不懂操作系统内核架构和实时调度性、没有良好的驱动程序编写风格,仅仅只是按照资料介绍去添加驱动程序,是很多人可以做到的,但这也仅仅只是个初级的嵌入式系统驱动工程师的最低水平。 ? 操作系统层:在操作系统层的主要工作还是移植,而很少有人来自已写操作系统。 ? 应用层:需要掌握编程语言、开发工具,知道在Linux/Windows等操作系统下如何进行编程、函数调用,掌握编译和开发环境等。 6、掌握操作系统、编程工具和程序设计环境 精通嵌入式系统的程序设计是最主要的要求,因为编程是嵌入式系统软件工程师花费绝大部分时间的工作,因此嵌入式系统软件工程师必须熟练掌握操作系统和嵌入式硬件结构,看得懂诸如硬件寄存器一类的内容、掌握基于板级的汇编和C编程,了解硬件的接口电路设计,掌握基于嵌入式操作系统的环境应用与工具链,比如Linux下的ARM工具链等等。7、熟练使用嵌入式系统开发平台 嵌入式系统开发环境是你学习如何开发一个嵌入式系统项目的实验平台。在培训中,你接触的是一种能够进行具有相当实际效果实验的教学实验平台,这种教学实验平台必须外接特定的开发模块,才能形成一个实际的开发系统。拥有一套嵌入式系统实验平台,能够极大地帮助嵌入式系统软件初学者尽快熟悉和掌握嵌入式系统。熟悉一个实际的嵌入式系统开发平台,并且能够从事某个具体项目的开发,是获得实际进行嵌入式系统软件开发工作经验的必经之路。如果你满足了上面的这些要求,你就可以成为一位合格的嵌入式系统软件工程师。当然,真正优秀的嵌入式系统软件工程师是要靠工作中的积累才能形成的,而这也是用实际工作时间来衡量的。 |