嵌入式领域的职业发展方向是什么?

转载 2012年03月25日 14:23:32

时成,物联网,嵌入式,Linux

嵌入式开发的门槛相对较高,对程序员的要求一般都是对底层感兴趣,学习能力、动手能力要强,对问题能够从全局和细节去把握,有很强的系统分析和设计能力。从工程师起步,一般有几个发展方向,一个是成为技术方面的核心,领域内的专家;另一个是从项目中锻炼起来,成为项目主管或是管理型人才;再有就是利用自己的技术及行业经验去创业。

硬件和软件的发展方向是不同的。说说软件需要学习的知识。

虽然说搞嵌入式软件更多时候是在实际的工作中学习的,但一些重要的基础知识不可或缺。
1. 计算机组成/微机原理
主要是为了了解微型计算机的硬件工作原理,明白CPU、总线、I/O、存储器等一些关键结构是怎么工作的,虽然是很枯燥的知识,但是对熟悉外围设备硬件工作方式,及操作系统,软件架构的设计及优化相当关键。
2. 操作系统
嵌入式产品应用比较广泛的是Linux和WinCE。但操作系统的内部设计原理都是殊途同归。首先要去学习的是操作系统原理,去了解进程通信、内存管理、文件系统等几个重要的部分,因为这些在软件开发尤其是内核驱动开发时会用到。接下来可以去熟悉至少一种主流的操作系统,Linux是一个很好的选择,去了解它的内核架构,设备驱动架构,如何去编译,裁剪,编写应用程序,以及如何使用在具体的嵌入式产品上。
3. 数字电路
学习这方面的知识主要是了解一些基本的电路知识,如门电路、逻辑电路、存储器、寄存器,为了更好的理解嵌入式芯片,存储器,外围设备等硬件的设计,但往往在软件开发中未必能用的到。因为大部分硬件都提供了很完整的软件接口。
4. 编程语言:C语言和汇编
对于C语言本身的基础来说,无非是把结构化,函数,数组,指针弄熟,但是嵌入式开发对C语言应用的要求会更高。要对内存分配,文件访问,寄存器访问,预处理指令,中断处理程序等等相当熟悉,这些都是在使用中要注意的细节问题。C语言对程序的优化也很重要,而这些往往是需要从全局去考虑。汇编一般是和处理器的指令集相关的,可以更好的去理解处理器的工作原理,往往是用在一些需要效率的地方,如系统的初始化。
5. 数据结构和算法
数据结构在嵌入式开发中也很重要,比如说操作系统里的很多实现都用到了具体的算法。基本的数据结构需要掌握,如各种链表,树,图等等;而算法的学习需要数学知识作为铺垫,用计算机语言去实现。对于软件从业人员来说,算法终究是一个工具,在实际应用时再深入挖掘也可。
6. 软件工程/软件测试/项目管理基础
这些是软件开发人员的必备知识。
7. 开发平台
嵌入式的开发平台不局限于一种操作系统,因此要熟悉各种操作系统下的命令、编辑器及开发工具,这一点往往被很多人忽视。举个例子,Linux下的程序员开发环境往往是按自己的习惯搭建,熟练掌握一种编辑器如Vim/Emacs可以大幅度提高工作效率。磨刀不误砍柴工。

嵌入式领域的方向是很多的,它所应用到的行业范围也很广。因此除了这些基础的知识以外,在具体的应用中可能还需要一些其它的知识,这些知识的每一种都可以研究的很深,举几个例子。
1. 内核,驱动及中间件
内核开发和驱动本身就是一个方向,驱动和硬件接口相关,而内核的修改和移植更是需要对OS有很深的理解。至于中间件,一般是基于OS或存在于OS和应用程序之间的库,最典型的就是基于Linux的Android。
2. 通信协议
通信协议有很多种,经常用到的有网络通信协议,无线通信协议,串口/USB通信协议等等。
3. 音视频技术
牵涉到音频视频处理,压缩,编解码等等。
4. 信息安全
如加密技术,身份认证,数字证书等等。
5. 行业知识
和具体行业或领域相关的知识,如通讯、工控、电子等等。

这里有一个我认为不错的学习步骤:
1. 基础知识中,计算机组成、操作系统、编程语言和数据结构是必需的。
2. 找一种CPU体系,了解其核心架构,学习指令集,比如说ARM。
3. 找一种OS,如Linux,或是传统RTOS,如Nucleus、eCos,读源码和文档,理解OS内部实现,包括进程,任务,消息机制,内存管理,设备驱动,中断等核心内容。
4. 找一块成熟的开发板,板级资料要齐全,熟悉嵌入式软件开发流程。
5. 在项目过程中深入学习其它的技术。

总之,这些知识的学习不是一蹴而就的,过程会很漫长,也没有什么特别的技巧。需要去看大量的技术文档和源码,而这些文档大部分又都是英文的。在工作和做具体项目的过程中会学习的比较快,理论结合实践才是王道。

关于嵌入式的学习和职业发展

最近我的工作太忙了。身边朋友问我如何学习嵌入式,在这个行业健康的发展。我一直未能做一个系统的回答。这里我想写篇文章,彻底的回答这个问题。嵌入式,这是个术语。在我看来,嵌入式系统是:为了应用高度定制软件...
  • coolbacon
  • coolbacon
  • 2013年01月20日 12:58
  • 27614

嵌入式软件工程师前期职业生涯规划

ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2)必须掌握一个嵌入式操作系统 (初步定为uclinux...
  • dearsq
  • dearsq
  • 2015年11月06日 17:09
  • 1878

做FPGA的出路在哪里?——同行的感受,我的方向

已经而立之年,对30以后该以怎样的一个状态生活,也比以前思考的多些。   很多人都说,技术员(工程师)30以后要正确向领导(技术型领导)或者创业方面转,而不能继续去做技术。因为论精力,...
  • frank_wff
  • frank_wff
  • 2015年01月20日 14:31
  • 8051

(收藏)嵌入式领域的职业发展方向

嵌入式开发的门槛相对较高,对程序员的要求一般都是对底层感兴趣,学习能力、动手能力要强,对问题能够从全局和细节去把握,有很强的系统分析和设计能力。从工程师起步,一般有几个发展方向,一个是成为技术方面的核...
  • sinat_36184075
  • sinat_36184075
  • 2016年10月27日 15:48
  • 189

嵌入式职业发展方向

近几年来,随着移动互联网、物联网的迅猛发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用;随着嵌入式技术及相关产品不断渗透到人们日常生活,大大小小公司对于嵌入式开发人...
  • farsight2009
  • farsight2009
  • 2015年11月04日 17:24
  • 1020

嵌入式&驱动发展方向具备条件简介

嵌入式&驱动方面的招人条件: 【linux 用户层】 1、熟悉TCP/IP通信机制,对Socket通信和HTTP通信有较深刻的理解和经验 2、了解linux系统ppp拨号实现流程 3、...
  • A09211008
  • A09211008
  • 2013年11月14日 10:47
  • 984

专家预测未来嵌入式人才的发展方向

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着...
  • kevinyao0126
  • kevinyao0126
  • 2013年03月26日 20:39
  • 282

嵌入式人才的发展方向

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着...
  • yangxkl
  • yangxkl
  • 2012年02月25日 23:13
  • 323

谈技术人员发展方向及嵌入式学习

对于技术人员可以选择以下几个方向     一、继续做技术。做技术比较稳定,是一个撑不死,饿不着的行业,要想挣到比较多的钱比较困难。     二、销售。做销售是一个比较有钱途的行业,因为直接...
  • hbzh2008
  • hbzh2008
  • 2012年05月11日 17:44
  • 401

谈技术人员发展方向及嵌入式学习

  • 2010年05月06日 15:05
  • 14KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式领域的职业发展方向是什么?
举报原因:
原因补充:

(最多只允许输入30个字)