Embedded Foundation

[size=x-large][b]门槛越低的技术从事的人也就越多,竞争也就越激烈。 [/b]
[/size]


我来扒IT培训的皮
[url]http://carywu.blog.51cto.com/13185/96872[/url]
给年轻电子工程师的十大忠告
[url]http://blog.csdn.net/jsayan/archive/2009/02/06/3866383.aspx[/url]
现在谈谈我对做技术的发展道路,我感觉做技术有两条道路走都不错
[url]http://blogold.chinaunix.net/u1/58022/showart_452869.html[/url]


嵌入式系统概念:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

而对于嵌入式系统而言,从事平台研发的人就是要亲自去研发出一个完整的计算机系统,这个过程包括
l 需求分析
2 硬件设计
3 驱动程式
4 Bootloader & BSP (板级支持包)
5 操作系统的移植
6 应用程式的研发
7 性能检查

嵌入式岗位:
bootloader开发;
内核移植与裁剪;
设备驱动开发;

嵌入式所属行业分布情况:
[url]http://www.cioage.com/art/200904/78934.htm[/url]
嵌入式应用领域极为广泛,嵌入式产品应用最多的三大领域是“消费电子、通信设备、工业控制”,所占比例分别是24%、21%和13%,三大领域所占比例之和接近60%,特别是消费电子领域,随着3G时代的来临,智能手机软件开发这一领域的发展前景更是被看好。
[url]http://www.hyqb.sh.cn/publish/portal2/tab227/info336.htm[/url]
目前嵌入式操作系统在通信、汽车、医疗和安全等方面有比较有广泛的应用,同时在消费电子产品中的应用迅速增长。


[url]http://hi.baidu.com/glaivelee/blog/item/38a2ef16a8f1350b962b43c9.html[/url][quote]
就比如说,两个工程师分别用S3C2410和PXA255来做手持设备,同样两人都工作四年,再出去找工作,两人工资可能最多可相差一倍,为什么?
[b]这就是业界不为常人所知的规则,2410属于民品,被业界用烂了,做产品时成本特敏感,当然也对人才成本敏感了,PXA255是intel的东西,一个255 CPU能买三个2410,一直被业界定义为贵族产品,用的公司都是大公司或为军方服务的公司,不会在乎成本,只要把东西做好,一切都好说,但这方面做的人也少啊,因为开发系统贵啊。[/b]

另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类, [b]国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗[/b],即使做个IC前端验证工程师,也要搞上几年才能胜任。
[b]DSP硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大[/b]。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极 大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。[/quote]


嵌入式系统的分层与专业的分类:
[url]http://xilinx.eetrend.com/blog/933[/url][quote]嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。
硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。
2、 驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导致其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。[b]想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,[color=red]但其工资在嵌入式系统四层中可 是最高的[/color]。[/b]
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环 境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌 入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂, 并且有难度了。[/quote]


畅谈学习嵌入式的“四个误区”:
[url]http://www.nuedc.net.cn/viewthread.php?tid=9059[/url][quote]要想成为一位合格的嵌入式开发工程师,需要掌握的知识和技能点不仅广博而且繁杂,自学的效果远不如参加培训,而选择一个好的培训机构,最需要看中的应该是其课程体系,因为一个优秀的课程体系不仅充分考虑到了所传授的知识和技能点的内容的选择,而且还充分考虑到了知识和技能点传授顺序上的安排,否则就很难在短短四五个月的时间里培养出合格的嵌入式开发人才。中国电子学会嵌入式人才信息库的老师曾经尝试过帮助一些培训机构向企业推荐学员,却发现经常会遇到这样的情况:
(1)参加过四五个月嵌入式培训的学员,别说去做什么驱动开发了,很多学员最后只能靠C语言去“混”,而且“混”得还比较尴尬,根本就做不了真正意义上的嵌入式开发。他们对于Java、C++、Python等要么是一知半解要么是根本就没有听过,对ARM和驱动方面的理解也很肤浅,根本就达不到从事研发的水平要求,当然,能够熟练掌握C语言的程序员也是不愁找不到工作的,但能不能在嵌入式行业“混”就不好说了,[b]有些幸运的,也能做些嵌入式应用程序开发,但要往嵌入式系统级和驱动级层面发展则很难,更多的学员最后只能被迫转到PC编程方面去寻找工作。[/b]有些学员在自己毕业找工作的时候才真正意识到这个问题了,于是有些学员就在网上骂培训机构,说自己当初是向往嵌入式才去你那里参加培训的,结果培训了四五个月,还只能去搞PC编程,早知这样还不如当初直接去报一个Java或.net培训机构好了,那样还能安安心心把PC编程方面的东西学得更好,找一个薪水更高的工作。
(2)在参加用人单位的技术面试时,有些考生对QT图形界面编程方面的知识掌握得不好,面试官追问C++能达到什么程度,考生回答说培训机构的C++课程安排在了中后期,所以并没有多少时间和机会去消化、巩固。其实,对于嵌入式开发来说,无论C还是Java、C++、Python等都只是工具而已,参加培训的目的,无非就是希望能在高人的点拨下,摆脱具体开发工具的束缚,洞察开发工具之间的长短,灵活驾驭各种开发工具罢了。很多学员虽说参加过四五个月的培训,但并没有获得广阔的开发视野,也没有真正形成工程化的设计思想,培养出良好的编程习惯,这与抱着一本编程的书自己在家“死磕”又有何异呢?
(3)用人单位还向我们反映,有些学员对ARM掌握的程度达不到他们的要求。我们考察了培训机构的课程设置,发现课程顺序是:先讲C语言,再讲操作系统编程,接下来是ARM,然后是驱动开发,接下来是C++和QT,最后是项目实训。这种课程安排就让ARM的课程显得很孤立,其实ARM的课程并不复杂,只要授课逻辑安排恰当是可以轻松讲透、学透的。培训机构的课程安排不合理和知识体系存在缺陷,最容易造成的现象是:有些知识点学生反映曾学过,但因为在接下来的课程中没有被合理地训练强化,等到几个月的培训结束的时候,这些知识点也就差不多忘光了或者从来就没有被理解透彻过。
(4)[b]还有一个就是关于“嵌入式驱动开发工程师”的神话和谎言,嵌入式的驱动开发包括字符设备驱动、块设备驱动、网卡驱动、液晶驱动、触摸屏驱动、sd卡驱动、USB设备驱动等多个方面,现在有些培训机构在误导学员,夸大嵌入式驱动开发工程师的人才需求和薪资水平,从我们对嵌入式企业界掌握的情况来看,驱动在嵌入式开发中所占的工作量并不是很大,而且在大多数企业中并没有把驱动开发设置为一个单独的工作岗位,很多驱动开发的工作都是由那些资深的嵌入式系统开发工程师去完成的,在各种驱动设备的开发中,涉及最多、最重要的还是字符设备驱动,只要把字符设备驱动吃透了,其他的驱动开发就不是什么难事了。有用人单位向我们反映,很多学员自诩精通驱动开发,经面试发现,他们的水平大多只是停留在了解一些驱动设备的概念而已,对于企业最看中的字符设备驱动方面的实际开发经验,还远远不够。企业会乐意招聘一些新手去做嵌入式应用层面的软件开发,因为这方面的工作量大,人才需求量大,而技术难度又不太高,但萝卜青菜是卖不出好价钱的;在驱动开发人才这方面,企业宁可花高价钱去外面聘用经验丰富的,也不能容忍自己被刚入行的新手当成练手的对象,你甚至可以告诉企业你可以免费帮他干,但企业却会告诉你他不愿意为你潜在的失误买单,事实上,对于这么重要的岗位和抢手的肥缺,只要这家公司还有比你先入职的开发工程师,如果他们不比你傻太多和笨太多,那么机会根本就轮不到你[/b]!
[/quote]


嵌入式系统将成物联网产业发展主流趋势 (1):
[url]http://eco.ccidnet.com/art/33517/20101102/2231667_1.html[/url][quote]嵌入式系统的主要客户分布在消费类电子、安全、电信、医疗、汽车等行业。其中在消费类电子领域嵌入式产品占最大的市场份额36%,紧随其后的是安防安全产品占26%,近年来对安防界影响最大的就是嵌入式系统,特别是无线安防产品更是进入了嵌入化发展阶段。市场格局基本形成,从传统的门禁,CCTV摄像头,录像机,逐渐过渡到以嵌入式系统为基础的网络化设备,如网络摄像头,硬盘录像机,网络数据采集器等等。其次是电信20%、医疗8%、汽车电子及其它10% 。[/quote]


详述嵌入式:
[url]http://xujinquan19.iteye.com/blog/910115[/url][quote]三、嵌入式系统的应用领域

嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:

1、工业控制:基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。

2、交通管理:在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。

3、信息家电:这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。

4、家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。

5、POS网络及电子商务:公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。

6、环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。

7、机器人:嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。

这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。[/quote]


arm dsp fpga 区别:
[url]http://patton.spaces.eepw.com.cn/articles/article/item/33895[/url]
[url]http://topic.csdn.net/t/20050131/00/3764697.html[/url]
个人感觉ARM稍好一些,面广一点。[b]FPGA是纯粹的硬件开发[/b](当然,如果是内嵌MCU核的应用另当别论),除了内部逻辑的设计之外,很多要考虑板级的问题,象什么布线、干扰、信号延迟之类的。ARM是软硬件紧密结合的应用,更偏软件一些,而且开发不仅仅是掌握CPU体系结构,而且象uCLinux之类的嵌入式操作系统知识也是必不可少的。就技术全面性来说ARM显然更胜一筹。我是做FPGA开发好几年,起码我个人观点是如此。

嵌入式开发包含至少两个级别,一个是嵌入式内核驱动级别,另外一个是嵌入式应用层开发,而薪酬高的,最具价值的无疑是嵌入式内核驱动级别的开发者。
嵌入式Linux工程师大致分为两层:一层是嵌入式底层开发,如:驱动开发(高端人才),系统内核开发(非常高端),另外一个是嵌入式应用层开发(高端普遍人才);薪酬高 ,工作机会多,而技术又保值的是那些从事Linux驱动开发的工程师;另外一大部分从事的是应用层开发,在如今嵌入式几近疯狂的市场增长,嵌入式应用层开发者也远比传统软件开发人员更受企业的追捧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值