Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89568
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-12 15:01
个人简介

蒹霞苍苍白露为霜

文章分类
文章存档

2016年(1)

2015年(5)

2014年(24)

我的朋友

分类: 嵌入式

2015-05-14 15:00:59

原文地址:嵌入式职业规划 作者:乐百事2

嵌入式职业规划

在职工作已近两年了,接触了很多产品、很多技术与很多领域,生活中的一些事情也让我有所反思,于是我在戒除LOL游戏之后,决定多花点时间在这个领域给自己做一次规划。
                                                                                                                              作者:乐百事
                                                                                                                              始于:--2013.4.10

在决定写这份沉长的规划之前,我特意浏览了一些前辈对这个行业的比较透彻的分析,并从中借鉴以丰富内容,下面开始我的开场白吧!

我们大家都不是含着金钥匙出生的富二代,因此,我们的一切成就需要自己的努力,这里面有痛苦,有彷徨,有挫折,我们是否能够咬牙坚持下去?

选择嵌入式行业之前,希望理性对待IT已经不是曾经的泡沫经济时代了,如果你不是那块料,那么在你还没有进入这行之前,请三思,因为竞争对手各个都身怀绝技。如果你已经选择了嵌入式这个行业,那么你必需玩命的学习!

好了,很显然我已经决定这一行了,那么就让我来分析一下嵌入式,然后再做一个合理的职业规划。

对于一个公司来说,拳头部门是他的产品与研发部门这两个支撑着整个公司的核心,没有产品没有平台谈其他的都没有任何意义至于收益部门,肯定是销售和市场这两个部门,不管在哪个公司,只要你有成熟的产品,这两个部门的精英们就会想尽一切办法将其变为收益;再次是售前售后支持部门,一个好的产品并不是卖出去就算成功了,更重要的是客户的良好反馈,百年老店靠的是什么——口碑!

由此可见,在公司之间的市场搏击中,拳头的实力是多么的重要。那么嵌入式究竟是个什么样的行业呢,从事又需要什么样的资质呢?

嵌入式是软硬结合的东西,嵌入式开发又分为两类,这两类各有特点,需要的资质又有不同:

一类是学电子工程、通信工程等偏硬件专业出身的人主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader最初级的硬件驱动程序等,他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心

一类是学软件、计算机专业出身的人主要从事嵌入式操作系统和应用软件的开发。嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作,因为很多公司都知道,嵌入式产品的差异很大程度在软件上,所以都将硬件设计包给了专门的硬件公司

个人认为驱动上对软硬件的差别不是很明显,尤其是基于操作系统的嵌入式平台下,所以我认为还有一种选择,就是搞软件的人去了解数字电路,入门简单一些,加之软件的基础可以写出不错的底层硬件驱动程序。这点只是个人见解,比较高端的驱动,涉及时序等内容,还是需要比较深厚的电路知识的。

嵌入式开发已经划分了两大类,再渗透一点的了解下去,又有很多的方向,单从操作系统来说就大有文章。

第一类:传统经典的RTOS,例如VxworkspSOSQNXNucleus操作系统,这类操作系统实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等特点。Vxworks因价格很高,所以一些小公司或小产品中往往用不起。

第二类:嵌入式Linux操作系统,性能虽然比不上RTOS,不过现在熟悉linux的人越来越多了,加上免费开源的优势,linux操作系统也越做越好了,目前比较受中低端市场的欢迎。

第三类:WindowsCE嵌入式操作系统Microsoft果然是厉害,WinCE出来只有几年时间,但目前已占据了很大市场份额特别是在显示仪表等界面要求较高的场合,因为我们长期windows的使用习惯与市场相关开发人员的积累,原来的VC用户很容易上手WinCE操作系统,加上微软强大的技术支持,WinCE的快速开发难度要低于Linux

说点个人看法,Linux免费开源的好处可想而知,各国政府也在大力推Linux系统,以前在嵌入式平台上Linux是叫的最响但还是WinCE实际用的更多,不过随着时间的推移,人才的培养,Linux开发人员也不断得到积累,嵌入式开发也变得普遍起来。

嵌入式开发仅从系统的不同就又划分了几条选择方向,可见嵌入式开发空缺需要多少种不同的人来填补,嵌入式还不单单能从系统上划分开来,因为没有操作系统,嵌入式依旧是嵌入式,而系统已经不可能跑的起来了,这就是硬件的魅力,软件即是驱动,驱动即是软件。

第一类:ARM,其良好的移植性可以有效的缩短应用程序开发与测试的时间,也降低了研发费用。ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面。如果不跑操作系统的话还可以做高性能的单片机来裸跑,不过这也就失去了它界面与应用程序移植方面的优势。

第二类:DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。

第三类:FPGA可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错,通俗的说就是不需要重新制板就能升级硬件电路。

因为我对DSP没有什么研究和见解,在此就不谈了,我从各个方面着重了解ARMFPGA的优劣,下面做一些详细的分析,并作为职业规划的一个参考吧。

ARM领域抉择之操作系统:主要是上面提到的三大类操作系统,需要花功夫了解内核,了解系统的执行过程等,不同的系统就有不同的驱动开发框架。

ARM领域抉择之软件硬件:软件需要掌握应用层的程序开发,目前C++用的比较普遍,而且要擅长界面开发,不管是QT还是Java,不擅长界面处理的软件开发工程师没有什么竞争优势(这是我个人的一点见解)。再说说硬件,设计电路,绘制电路板,或者系统移植兼驱动开发。这些都属于硬件的范畴,你掌握多少决定了你的价值。

FPGA领域抉择之芯片系列:这种选择主要是来自于芯片供应商,现在的供应商XILINXTIALTERA公司,不同厂家的芯片都需要厂家提供的开发软件,例如ALTERAQuartusIINIOS(暂时就用过这个,只能举这一个例子了,惭愧中)。FPGA属于硬件范畴,没有软件的用武之地,VHDLVerilogHDL也属于硬件开发语言,个人觉得上手简单一些,不过开发难度大,门槛要求也比较高,不仅要设计电路,而且要能够绘制不低于四层板的PCB,更要对时序了如指掌,这样才能有上升空间。

两个领域看上去都有鱼与熊掌不可兼得的样子,不过仔细分析一下,FPGA的开发软件无非就是开发工具,软件之间都是有很多共性的,而且上手软件远比上手操作系统要简单容易的多,所以选择FPGA应该在FPGA领域涵盖的面更广一点,直白了说就是,精通了FPGA就能够从事几乎所有有关FPGA的工作。而选择ARM,只能在ARM领域找自己精通的操作系统的工作。

仿佛已经分出胜负了,其实不然,再好的东西如果没有用武之地也是白搭,那么FPGA的用途与局限性又有哪些呢?

最明显的一个不同,ARM有庞大的软件支持,而FPGA偏向于硬件开发,也许有人会说上面不是提到“强大的FPGA可以完成任何数字器件的功能,包括高性能的CPU”么,那么我想说,用FPGA包装的ARM功耗变大了,性能拉下了,成本变高了,什么样的公司会用?也许还会有人问,用FPGA包装成ARM不是多了一个硬件升级的功能了么,这样不就延长产品在市场上的寿命么,这个想法听上去不错,不过硬件升级也是要投入不少人力成本的,所以暂时很少公司优先考虑它。如果我开公司的话,一定向消费者承诺“保证消费者所使用的设备可以通过技术支持免费升级硬件性能”,(这是题外话,乘天还没黑我也做做梦,呵呵),言归正传,FPGA的自身特点使乐道于软件编程的人望而却步,让一些想做低成本中低端电子产品创业的人也另寻其他。我也承认ARM开发更适合创业,尤其是掌握了驱动和软件之后,因为硬件设计可以外包嘛。
    未完待续!

     
阅读(1683) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~