返回首页
当前位置: 主页 > 行业新闻 >

嵌入式开发的职业发展前景(续)

时间:2012-11-30 11:49来源:摘录所得 作者:未知 点击:
一、嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类: 1、一类是学电子工程、通信工程等偏硬件专业出身的人。 他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的
  

一、嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类:

 

1、一类是学电子工程、通信工程等偏硬件专业出身的人。

 

     他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、 Board Support Package(像PC 的BIOS 一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。 

 

2、另一类是学软件、计算机专业出身的人。

 

     主要从事嵌入式操作系统和应用软件的开发。如果学软件的人对硬件原理和接口有较好的掌握,他们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有"花头"可做的),所以搞软件的人完全不用担心在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

 

二、从事嵌入式软件开发的好处是:

 

      (1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT 人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如 ARM 处理器、嵌入式操作系统、MPEG 技术、无线通信协议等),掌握这些新技术的人当然很难找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

      (2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些 (但收入不低)。搞企业应用软件的IT 企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11 等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

     (3)哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫"工程e"的掌上PDA(南校区门口有广告),施工技术人员用该PDA 可当场进行土木概预算和其它土木计算,据说销路特好。上海火车站南广场的 Macdonald 便使用很漂亮的PDA 给用户点食品,像摸像样的。这些PDA 的硬件设计一般都是请其它公司给订做(这叫"贴牌":OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。 薪资一般是在3K-30K 之间!关键看个人能力。

 

三、学习嵌入式,该学习什么基本的知识呢?

 

      首先C 语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C 语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C 语言,你说不掌握它可以吗?

     至于如何学习C 语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C 语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。 

     其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。 还有应该学习嵌入式系统,如linux 或者wince 下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、 Android 等操作系统,Android 是以后发展的趋势,现在很热门,Android 也是基于linux 系统封装的,所以建议先学习下linux。 

     还有,应该学习下单片机或者ARM 或者MIPS,很多人说我没有单片机的经验,直接学ARM 可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM 就更简单了。 最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合 arm 芯片手册学习去学习下 UBOOT 的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux 的源代码,当然如果你直接阅读2.6 的代码,我想你会很痛苦的,可以先看看 linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。 

    至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。 

 

相关课程链接:高薪嵌入式Linux就业班培训班

------分隔线----------------------------

  • 李老师
  • 李老师
  • 胡老师
  • 胡老师
合作伙伴
  • 武汉工程大学合作培训机构

  • 国家信息技术紧缺人才培养工程(NITE)

  • ARM公司全球授权培训中心

  • 国内首家Symbian授权培训

  • 微软全球嵌入式合作伙伴

  • Altera全球合作培训机构