嵌入式系统软件工程师是泛指那些从事嵌入式系统软件领域工作并掌握了该领域基本知识和专业基础的职业技术人员。就一位嵌入式系统软件工程师而言,用人单位会特别关注你在该领域中所具备的特定的职业技能,比如你所擅长的是嵌入式系统驱动软件开发,还是嵌入式系统应用开发,或者是嵌入式系统测试;你具体掌握了哪一种操作系统,是否有在某一种嵌入式系统结构上进行嵌入式系统软件开发的技能。所以,人们经常按照操作系统或者硬件结构来细分嵌入式系统软件工程师,比如嵌入式系统(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、熟练使用嵌入式系统开发平台

嵌入式系统开发环境是你学习如何开发一个嵌入式系统项目的实验平台。在培训中,你接触的是一种能够进行具有相当实际效果实验的教学实验平台,这种教学实验平台必须外接特定的开发模块,才能形成一个实际的开发系统。

拥有一套嵌入式系统实验平台,能够极大地帮助嵌入式系统软件初学者尽快熟悉和掌握嵌入式系统。熟悉一个实际的嵌入式系统开发平台,并且能够从事某个具体项目的开发,是获得实际进行嵌入式系统软件开发工作经验的必经之路。

如果你满足了上面的这些要求,你就可以成为一位合格的嵌入式系统软件工程师。当然,真正优秀的嵌入式系统软件工程师是要靠工作中的积累才能形成的,而这也是用实际工作时间来衡量的。

转自:http://quyi218.blog.163.com/blog/static/719346802010102091435365/

如何成为一位合格的嵌入式系统软件工程师相关推荐

  1. IC岗位详解| 一位合格的模拟版图工程师需要具备哪些能力?

    近年来,随着IC行业快速发展,模拟版图岗位反而呈现上升趋势,这个岗位被称为转行人的福音,只要经过专业的培训,哪怕是0基础的同学都有机会进入行业.业内外都说模拟版图好转行,那么模拟版图到底学些啥?需要什 ...

  2. 如何成为一名嵌入式系统工程师

    嵌入式系统软件工程师是泛指那些从事嵌入式系统软件领域工作并掌握了该领域基本知识和专业基础的职业技术人员.就一位嵌入式系统软件工程师而言,用人单位会特别关注你在该领域中所具备的特定的职业技能,比如你所擅 ...

  3. 嵌入式课程学习 嵌入式硬件工程师需要学习哪些内容?

    嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM.PROTEL设计软件,有四层板开发经验. 嵌入式硬件工程师主要职责是为产品设计硬件 ...

  4. 分析实时嵌入式系统软件调试问题

    设为首页 | 值班电话:18958035226 捷配欢迎您! [登录] 免费注册 | 行业黑名单 | 捷配商城 | 网站导航 全球领先的电子元器件市场 IC电子元器件PDF技术资料电子资讯电子通论坛 ...

  5. 合格的嵌入式开发者应掌握的技能大全

    嵌入式知识和技能体系庞大,样样精通者凤毛鳞角,一般都是一专多能,各类技能多少都能说上一点.按照嵌入式开发层次关系,整理嵌入式开发者技能大全如下: 1.处理器 MCU架构及开发.MCU俗称单片机,把中央 ...

  6. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南题八——MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统

    简介: 为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为<基于 Linux ...

  7. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南

    内容: 1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式Linux 系统的图形用户界面 4 小结 关于作者 相关内容: 主题一:选择MiniGUI-Thread ...

  8. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八)

    基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八) MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统 魏永明 (ymwei@minigui.org) 自由撰稿人 ...

  9. 10001.基于Linux和MiniGUI的嵌入式系统软件开发指南(转载)

    1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式Linux 系统的图形用户界面 4 小结 关于作者 相关内容: 主题一:选择MiniGUI-Threads 或者 ...

最新文章

  1. 个人技术生涯的感悟(2)
  2. 一个有趣的实验:用0.1f 替换 0,性能提升 7 倍!
  3. 在Linux系统下配置Java开发环境
  4. BCH社区为比特币现金的发展买单
  5. 通信原理及matlab仿真实验指导书,通信原理实验指导书——2015.pdf
  6. Android音视频开发之ExoPlayer(二):播放列表常用的功能
  7. 徐思201771010132《面向对象程序设计(java)》第十周学习总结
  8. Linux互信及互信失效问题
  9. 光伏发电量和用电量的概率预测研究综述(1)
  10. 7月书讯 | 12本新书如期而至!
  11. CSDN ARIMA R语言_R语言时间序列:ARIMA / GARCH模型的交易策略在外汇市场预测应用...
  12. Lua 实现Get Set属性
  13. 基于机器视觉的表面缺陷检测方法研究进展(2022最新)
  14. OTA升级二——阿里云端OTA配置及应用
  15. meter元素的使用
  16. 美国程序员枪击案后的48小时,请放过程序员吧!
  17. 稀疏表示、字典学习、压缩感知的简单理解
  18. 生成二维码或条形码JavaScript脚本库
  19. puzzle(0919)一个白球一个坑、图形对位
  20. web arcgis 示例_Web设计中的大背景图像:提示和示例

热门文章

  1. 将Origin做的图导出到word、ppt或直接另存为图像
  2. HTML网页设计结课作业 web课程设计网页规划与设计 网页设计成品DW静态网页 Web大学生网页成品 web网页设计期末课程大作业
  3. cnpm报错‘cnpm‘不是内部或外部命令,也不是可运行的程序或批处理文件
  4. html相框自动生成功能,网页制作HTML5拖放API实现自动生成相框功能
  5. C#毕业设计——基于C#+asp.net+sqlserver的报表管理系统设计与实现(毕业论文+程序源码)——报表管理系统
  6. php 邮箱中转站sha解析源码
  7. 让你的文字会「说话」,抠脚大汉秒变撒娇萌妹
  8. 《牛津字典精华总结》- 初阶系列 - 字母 - N
  9. java的settext_java只getText()与setText()区别
  10. OPPO崩溃问题解决