嵌入式软件工程师主要从事嵌入式
软件开发工作。涉及应用层以及底层软件开发和设计工作。
基本介绍
嵌入式系统是以应用为中心,以
计算机技术为基础,并且软硬件可裁剪,适用于
应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用
计算机系统。它一般由
嵌入式微处理器、外围硬件设备、
嵌入式操作系统以及用户的
应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式软件工程师就是编写嵌入式系统的工程师。
职业要求
应具备哪些能力
最直接的方法,就是去根据各公司,招聘网站的嵌入式软件工程师的应聘要求来分析
1.最重要的是C语言编程,以及C++,这个与你读程序,应用,开发项目,做系统移植息息相关;
2.操作系统: LINUX,WINCE等,至少学习过一种,并且还需要对些基础知识有蛮多的了解;
3.对
ARM,
FPGA,DSP等这些硬件比较了解。
这是最常规的条件
当然,一些
基本素质,像英语能力,团队协作能管理,也很重要。
发展前景
嵌入式领域较新,发展非常快,很多软硬件技术出现的时间都不太长(如
ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能
有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺,身价自然也水涨船高。
权威部门统计,我国嵌入式人才缺口每年50万人左右。根据前程无忧网发布的
调查报告,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一。做软件实际上有高下之分,开发语言从
机器语言、汇编到C、C++,再到红透半边天的
Java、C#等,该学哪种呢?为什么有些开发者工资低,而有些开发者千金难求?为什么3年的Java高级程序员薪水仅仅8k-10k,而一个
Linux底层C语言程序员两年经验就敢要10k的月薪?这就是他厉害之处了。
还是门槛,比如
Linux嵌入式开发职位,门槛就有 Linux系统、
Shell编程、Linux
开发环境、C语言、ARM硬件平台、
数据结构、
Linux内核、
驱动程序等,粗略数数就有8道关口,他需要非常熟悉整个的计算机体系,才能做出实际的产品。
嵌入式开发本身也有高下之分,至少包含嵌入式应用程序工程师和底层的驱动内核工程师两种。根据芯片具体情况把操作系统(如Linux)移植到上面,同时编写必要的驱动程序,改写相应的内核代码,要做出那小小一行代码的修改需要经过大量的资料搜索以及调试,耗费的
脑力劳动是不能单单从改写相应内核代码的数量才判断的。很显然后者是一个公司真正的技术核心。而技术核心的工资很可能是其他开发者的数倍。
嵌入式开发突出强制和项目,学习不仅仅是学习几项技术,而是构建你的
知识体系。比如学习嵌入式开发,就要从基础Linux,C语言,数据结构开始,到ARM,汇编,Linux内核、驱动等,更重要的是更多的项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识。
未来的几年内,随着信息化,智能化,网络化的发展,嵌入式
系统技术也将获得广阔的发展空间。美国著名
未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家
沈绪榜院士98年11月在武汉全国第11次微机
学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的
计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。一些先进的PDA在
显示屏幕上已实现汉字写入、
短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如
物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于
ATM机,
自动售货机,
工业控制等
专用设备,和移动
通讯设备结合、
GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。
职业发展
从个人整体发展来说,如果想创业,做自己的产品,嵌入式软件开发可以开发出
专利产品。
另一个发展路径是:积累丰富开发经验的
嵌入式软件开发工程师可以向
嵌入式系统开发工程师发展,从而晋升为
产品研发经理或
IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转作
嵌入式系统测试工程师,最终也可发展为IT项目经理。