-
如何熟练运用嵌入式系统开发学习方法
学习嵌入式系统开发有哪些方法?我看到网上有很多人问这样的问题,可以看出很多人都处于初始阶段,对于嵌入式系统开发的学习还处于“未入门”的阶段。从多年的嵌入式系统开发经验出发,为大家介绍学习嵌入式系统开发的一些使用的方法,希望能够对大家有所帮助。一、开发系统选择有哪些要求。很多ARM初学者都希望有一套自己能用的系统,但他们住住会产生一种错误认识就是认为处理器版本越高、性能越高越好,就象很多人认为ARM9与ARM7好,我想对于初学者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的那个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操作系统层面或应用层面上走,不管是驱动还是应用,那当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。在某种意义上请,ARM7与9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如286和386。对于用户来讲可能觉查不到什么,只能是感觉速度有些快而已。比较适合于那些想从硬件层面上走的人,因为ARM7系列处理器内部带MMU的很少,而且比较好控制,就比如S3C44B0来讲,可以很容易将Cache关了,而且内部接口寄存器很容易看明白,各种接口对于用硬件程序控制或AXD单步命令行指令都可以控制起来,基于51单片机的思想很容易能把他搞懂,就当成个32位的单片机,从而消除很多51工程师想转为嵌入式系统硬件ARM开发工程师的困惑,从而不会被业界某此不是真正懂嵌入式烂公司带到操作系统层面上去,让他们望而失畏,让业界更加缺少这方面的人才。而嵌入式系统开发不管硬件设计还是软件驱动方面都是十分注重接口这部分的,选择平台还要考察一个处理器的外部资源,你接触外部资源越多,越熟悉他们那你以后就业成功的机率就越高,这就是招聘时所说的有无“相关技能”,因为一个人不可能在短短几年内把所有的处理器都接触一遍,而招聘单位所用的处理器就可能是我们完全没有见过的,就拿台湾数十家小公司(市价几千万)的公司生产的ARM类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能招有相关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口设计,在软件上讲是操作系统方面相关接口驱动及应用开发经验。我从业近十年,2000年出现,我一天始做ARM7,然后直接跑到了Xscale(这个板本在ARM10-11之间),一做就是五年,在这些方面还是深有体会的。。因此开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资源、还要看业界的通用性。二、从嵌入式基本概念出发,嵌入式系统的概念着重理解“嵌入”的概念主要从三个方面上来理解。1、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。2、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类IntelXscale架构下的IXP网络处理器CPU内部集成控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G内存,1G×10或10G×1的以太网口或Febrechannel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科。三、从实际应用和开发过程出发,嵌入式系统的分层与专业的分类。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。1、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年。2、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。3、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。4、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。四、成为高级嵌入式系统硬件工程师要具备的技能。对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15K以上。另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类,国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗,即使做个IC前端验证工程师,也要搞上几年才能胜任。DSP硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如PXA255处理器I2C要求速度在100Kbps,如果把一个I2C外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接LCD,但为什么这种LCD就不能挂在ARM的总线上,还有总线上可以外接个Winband的SD卡控制器,但为什么这种控制器接不到ARM9或是处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5V变1.8V的DC芯片,直接更换成LDO,有时就会把CPU烧上几个。前几天还有人希望我帮忙把他们以前基于PXA255平台的手持GPS设备做下程序优化,我问了一下情况,地图是存在SD卡中的,而SD卡与PXA255的MMC控制器间采用的SPI接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计PCB绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ECAD工程师,就是专业的画PCB板的工程师,和EMC设计工程师,帮人家解决EMC的问题。硬件工程师再往上就是板级测试工程师,就是C语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行验证。然后再交给基于操作系统级的驱动开发人员。总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头脑。那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握EDA设计的辅助工具类如ProtelORCADPowperPCBMaplux2ISE、VDHL语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方案设计这块,那就基本上快成为资深工程师了。硬件是要靠经验,也要靠积累的,十年磨一剑,百年磨一针。五、学习的目标与定位。先有目标,再去定位。从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面的驱动、移植了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上基于API的应用层的编程,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。因此针对于嵌入式系统的硬件层和驱动程的人,ARM的接口电路设计、ARM的C语言和汇编语言编程及调试开发环境还是需要掌握的。因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。如果想从嵌入式系统的应用层面的走的话,可能与ARM及其它体系相去较远,要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如WinCe操作系统下的EVC应用开发(与windows下的VC相类似),如果想再有突破就往某些音视频类的协议上靠,比如领域的基于SIP或H.323协议的应用层开发,或是基于嵌入式网络数据库的开发等等。对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应的高工资,我是做硬件层的,以前每月工资中个人所得税要被扣上近3千大元,当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间就那些。硬件这方面上可能与我PK的人很少了,才让我拿到那么多的工资。上面是我这些年来从事嵌入式系统开发的经验总结,其中有很多学习嵌入式系统开发的方法。总的来说,学习嵌入式系统的要比一般的行业要求相对偏高一点,技术难度也大一点,其待遇自然也会高出很多。学好一门技艺需要一两年的时间,但是一旦掌握,将会受益终身的。
-
学习嵌入式系统开发的课程有哪些
嵌入式总体概括为硬件和软件,可以说是两个方向,这两方面都有很好的发展前途。嵌入式系统开发的两个方向有着明显的不同,但其也有交集,相互依存。那么,学习嵌入式系统开发的课程有哪些?这就得从硬件和软件上面来介绍了。小编从目前嵌入式系统开发的主流课程出发,详细介绍硬件和软件学习的必要课程。一、嵌入式系统开发操作系统(软件)课程除了的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统RealTimeOperatingSystem.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、等RTOS。第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式软件开发的已被裁减过的系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM9上的,一般是将Linux2.4.18内核移植在其上,可使用更多的Linux功能(当然更可跑在ARM9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以我院不将其作为教学重点,要学习就应学直接实用的,比如uClinux就很实用。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。我院在该嵌入式Linux方面的课程系列是:本科生操作系统必修课,然后是程序设计选修课,最后是嵌入式Linux系统选修课。我院在Linux方面目前已有较强力量。二、嵌入式系统开发硬件结构与应用嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书,您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。三、嵌入式开发的其它相关软件课程,主要的相关应用领域包括1、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。。2、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。3、网络与信息安全技术:如加密技术,数字证书CA等。4、DSP技术:DSP是数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。嵌入式开发的相关硬件基础对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。有些是学电子、通信类专业的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。题外话另外,能写驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。写驱动程序就必须掌握操作系统(如或Linux)的内部工作原理,还涉及到少量硬件知识,难度较大,所以这方面的人很难找。想成为高手的同学,也可从驱动程序方面获得突破。我可说一下自己的经历,三年前我曾短暂地在一家公司写过WinCE驱动程序(正是因为知道这方面的人紧缺,所以才要做这方面的事),尽管那以前从未做过驱动程序,应聘那个职位时正是看准了公司是很难招聘到这方面的人,既然都找不到人,驱动还得有人做,这正是可能有机会切入这一领域的大好机会。面试时大讲自己写过多少万行汇编程序,对计算机工作原理如何清楚,简历中又写着我曾阅读完两本关于indowsDriverModel的两本英文原版书,写过几个小型的驱动程序练习程序(其实根本没写过,我们的同学将来千万不要像我这样,早练就些过硬功夫,就不至于沦落到我这等地步,就不用像我那样去“欺骗”公司了,我这是一个典型的反面教材),居然一切都PASS(当然最重要的是笔试和面试问题还说得过去),这只能说明这一领域找人的困难程度。搞完一个版本就会空一段时间,只有等公司新的芯片推出或新的OS出现后,才需要再去开发新一版驱动,那时有将近一个月时间空闲着在等WinCE.NETBeta版推出,准备将驱动程序升级到CE.NET上,现在在软件学院工作整日忙,无限怀念那段悠闲时光。要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每个搞嵌入式的人都可选一条路,条条大路通罗马嵌入式系统开发的课程比较多,应将和软件始终是嵌入式系统开发的核核心。通常,学习嵌入式系统都是从单片机开始的,学好了单片机就等于入了门槛。一品威客网小编提醒大家,任何一门学问的学习,都是一个不断积累,从理论到实践的过程。
-
从事嵌入式系统开发的优缺点及前景如何呢
随着智能家居,智能电器等领域的不断发展,嵌入式系统的发展也迎来了“春天”。嵌入式系统开发也被IT界所看好,各大院校纷纷开设相关课程。那么,嵌入式系统开发的方向如何,其发展前景又是怎样?一品威客网小编请教了多年从事嵌入式开发的相关业内工程师,对嵌入式的发展方向及前景做了详细透彻的分析。嵌入式系统开发人才的发展方向。业内一致认为,搞嵌入式开发的人有两类。一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件开发,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。从事嵌入式软件系统开发的好处:(1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。(3)哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。从事嵌入式软件开发的缺点是:(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。(2)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。(3)这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有Intel、Motorola、、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。从上面详细的分析可以看出,嵌入式系统开发的发展方向及前景是比较好的。也可以看出,嵌入式系统开发的知识性比较强,想从事这方面的工作难度还是比较大的。当然,干什么事,只要肯想功夫,也会得到收获的。古话说的好“天下事有难易乎?为之则难者亦易矣;不为则易者亦难矣”。
-
成为嵌入式系统开发工程师需要注意些什么
目前,国内对于嵌入式系统开发的人才需求量很大。嵌入式工程师也能找到比较理想的工作。嵌入式系统开发的火热,掀起了一股学习嵌入式系统开发的热潮。那么,学习嵌入式开发需要注意些什么,在实际的操作和开发上是如何运用的呢?小编,结合自己多年的开发实践和在学习中遇到的一些问题,进行了汇总,希望对大家有所帮助。1.遇到问题,首先进入baidu.com、www.google.com(或是其他搜索引擎)搜索一下,任何一个嵌入式工程师都不敢否认,这是学习嵌入式最好的老师2.尽可能多的论坛,遇到问题,及时发贴,情况紧急的时候,可以在不同的论坛同时发贴,这样,并行处理你的问题也许会解决得更快些3.尽可能多的结交嵌入式高手,最好是在公司上班的嵌入式软件开发工程师,他们有一个优势:了解市场,了解业界的发展动态.和他们多混混,对尚未上班的学习者来说,是非常有必要的4.要经常进入一些好的嵌入式网站,尤其是一些国外的网站,去看看嵌入式的发展动态,并且,要把这些网站都收集起来。5.如果可能,我建议大家在网上订一下电子刊物,这些电子刊物是按时发到你邮箱的,那些资讯都是最新的,可以说是很前卫的了。如果资金允许,建议报名参加嵌入式培训班。在培训公司可以很快的入门提高,这样可以更好的提高学习效率。6.相信自己的选择,相信自己行业的发展前景,要对自己的选择和自己的行业有浓厚的兴趣,这一点做不到,你就很难学到很高深的层次。7.追求要执着!刚开始学习嵌入式系统,肯定会遇到很多问题,我当时也是这样,学了三个多月,好像一点进展都没有,我在怀疑:难道我不适合搞嵌入式?当时我也想过放弃,但心里太不甘心了,脚都踏出了一只,我不能就这样屈了!于是就硬上,不断的琢磨(现在,终于知道什么是嵌入式linux了。8.不要对自己要求过高,只要你比昨天进步了一点,你就离成功又近了一步!学习嵌入式也忌浮气燥(其实这一点,我最有感触!),也就是要踏实。9.万丈高楼平地起,不要忽略了低层的东西,你越是学习到高层的技术,越是发觉低层的东西有用,这些大家以后会有所体会的!我大一学习51单片机的时候,感觉它没什么用处,大二学习ARM处理器,才知道,没有51的基础,可能还不知道要多花多少时间才能搞懂ARM的硬件。10.系统的选型的问题.现在的开源操作系统已经很多了,并且也做得非常成熟,初学者也会为此而烦恼.目前较为流行的嵌入式操作系统有:linux,winCE,VxWork,uC/OS2等等。主要区别在于实时性的问题。如果你是搞自控(像我学习的专业,不过我不玩控制的),学习实时性高一点的操作系统更有帮助,如VxWork.如果你想以后搞民用产品,如手机,机顶盒,终端设备之类的,学习linux,winCE这些方便于多任务运行的操作系统较好!建议你在学习之前先了解该系统的市场占有率,学东西得看看学完它之后到底有没有作为啊,否则,你就一辈子只有自己玩系统啰。学习某一项求生的本领,需要的坚持不懈的努力,满怀的热情和莫大的兴趣。通过上面的介绍,大家对于怎么样学习,如何学好,学习中如何运用等有了一个比较清楚的了解吧。更多嵌入式系统开发方面的学习心得,开发实例,学习教程,请关注小编的后续介绍。一品威客网汇聚了数百万专业的程序开发、软件美工、插件开发、软件汉化、脚本制作、软件测试、游戏开发、办公系统开发、程序修改、嵌入式、桌面软件、多媒体软件、其他软件开发等优秀威客人才,只要您在网站发布任务需求,就能够吸引众多威客给您献上最好的创意服务。推荐更多与“成为嵌入式系统开发工程师需要注意些什么”相关推荐:安卓app应用开发|创意宣传册设计|app手机应用开发|移动app应用开发|手机app开发工具手机app开发建设|电子商务网站开发|PHP网站开发环境|宣传册设计应用|安卓应用开发工程师嵌入式开发就业|商标设计要求|Java程序开发学习|汉字字体设计方法|嵌入式系统开发学习
-
嵌入式系统开发学习步骤介绍
通常,我们在学习嵌入式系统开发的时候,有哪些步骤?嵌入式系统开发,在学习中的这些步骤有哪些需要注意的,每个步骤需要掌握哪些知识点?嵌入式系统开发的知识结构又是怎样?带着这些问题,小编资讯了很多资深的业内高手,整理出了嵌入式系统开发学习步骤,希望对大家有所帮助。1、Linux基础安装Linux操作系统Linux文件系统Linux常用命令Linux启动过程详解熟悉Linux服务能够独立安装Linux操作系统能够熟练使用Linux系统的基本命令认识Linux系统的常用服务安装Linux操作系统Linux基本命令实践设置Linux环境变量定制Linux的服务Shell编程基础使用vi编辑文件使用Emacs编辑文件使用其他编辑器。2、Shell编程基础简介认识后台程序Bash编程熟悉Linux系统下的编辑环境熟悉Linux下的各种Shell熟练进行shell编程熟悉vi基本操作熟悉Emacs的基本操作比较不同shell的区别编写一个测试服务器是否连通的shell脚本程序编写一个查看进程是否存在的shell脚本程序编写一个带有循环语句的shell脚本程序。3、Linux下的C编程基础语言环境概述Gcc使用方法Gdb调试技术AutoconfAutomakeMakefile代码优化熟悉Linux系统下的开发环境熟悉Gcc编译器熟悉Makefile规则编写Hello,World程序使用make命令编译程序编写带有一个循环的程序调试一个有问题的程序。4、嵌入式系统开发基础嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和内核嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程建立嵌入式系统开发环境制作cross_gcc工具链编译并下载U-boot编译并下载Linux内核编译并下载Linux应用程序。5、嵌入式系统移植内核代码平台相关代码分析ARM平台介绍平台移植的关键技术移植Linux内核到ARM平台了解移植的概念能够移植Linux内核移植Linux2.6内核到ARM9开发板。6、嵌入式Linux下串口通信串行I/O的基本概念嵌入式Linux应用软件开发流程Linux系统的文件和设备与文件相关的系统调用配置超级终端和MiniCOM能够熟悉进行串口通信熟悉文件I/O编写串口通信程序编写多串口通信程序。7、嵌入式系统中多进程程序设计系统进程概述,嵌入式系统开发的进程特点,进程操作,守护进程,相关的系统调用了解Linux系统中进程的概念,能够编写多进程程序编写多进程程序,编写一个守护进程程序,sleep系统调用任务管理,同步与通信,Linux任务概述任务调度管道,信号共享内存任务管理,API了解,Linux系统任务管理机制,熟悉进程间通信的几种方式,熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输,编写一个使用共享内存的程序。8、嵌入式系统中多线程程序设计线程的基础知识多线程编程方法线程应用中的同步问题了解线程的概念能够编写简单的多线程程序编写一个多线程程序。9、嵌入式Linux网络编程网络基础知识嵌入式Linux中TCP/IP网络结构socket编程常用API函数分析Ping命令的实现基本UDP套接口编程许可证管理PPP协议GPRS了解嵌入式Linux网络体系结构能够进行嵌入式Linux环境下的socket编程熟悉UDP协议、PPP协议熟悉GPRS使用socket编写代理服务器使用socket编写路由器编写许可证服务器指出TCP和UDP的优缺点编写一个web服务器编写一个运行在ARM平台的网络播放器。10、GUI程序开发基础嵌入式系统GUI类型编译QT进行QT开发熟悉嵌入式系统常用的GUI能够进行QT编程使用QT编写“Hello,World”程序调试一个加入信号/槽的实例通过重载QWidget类方法处理事件。11、Linux字符设备驱动程序设备驱动程序基础知识Linux系统的模块字符设备驱动分析fs_operation结构加载驱动程序了解设备驱动程序的概念了解Linux字符设备驱动程序结构能够编写字符设备驱动程序编写Skull驱动编写键盘驱动编写I/O驱动分析一个看门狗驱动程序对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux块设备驱动程序块设备驱动程序工作原理典型的块设备驱动程序分析块设备的读写请求队列了解Linux块设备驱动程序结构能够编写简单的块设备驱动程序比较字符设备与块设备的异同编写MMC卡驱动程序分析一个文件系统对比Linux2.6内核与2.4内核中块设备驱动的不同。12、文件系统虚拟文件系统文件系统的建立ramfs内存文件系统proc文件系统devfs文件系统MTD技术简介MTD块设备初始化MTD块设备的读写操作了解Linux系统的文件系统了解嵌入式Linux的文件系统了解MTD技术能够编写简单的文件系统为ARM9开发板添加MTD支持移植JFFS2文件系统通过proc文件系统修改操作系统参数分析romfs文件系统源代码创建一个cramfs文件系统。学习每一门技术都是循序渐进的过程,切不可“一口吃一个胖子”。学习的过程相对比较枯燥和漫长,离不开的是坚持不懈的精神。嵌入式系统开发需要具备比较多的知识,所以学习上要下足功夫。当然,也离不开好的老师,有老师比较专业的指导,会起到事半功倍的效果。一品威客网汇聚了数百万专业的程序开发、软件美工、插件开发、软件汉化、脚本制作、软件测试、游戏开发、办公系统开发、程序修改、嵌入式、桌面软件、多媒体软件、其他软件开发等优秀威客人才,只要您在网站发布任务需求,就能够吸引众多威客给您献上最好的创意服务。推荐更多与“嵌入式系统开发学习步骤介绍”相关推荐:安卓app应用开发|创意宣传册设计|app手机应用开发|移动app应用开发|手机app开发工具手机app开发建设|电子商务网站开发|PHP网站开发环境|宣传册设计应用|安卓应用开发工程师嵌入式开发就业|创意海报设计流程|中文logo字体设计|汉字字体设计方法|手机APP应用开发设计
-
嵌入式系统开发就业要求和前景分析
嵌入式系统开发也是IT行业时下比较火热的一个职业,有着工资高、待遇好等优势。很多年轻人上大学都选择电子信息,机电自动化等专业,都包含有嵌入式的学习。那么,嵌入式系统开发的就业要求和前景又是怎样的呢?下面,小编资讯了一些业内人士,也在查询了一些相关信息,希望对大家有所帮助。嵌入式系统开发的就业前景1、我国嵌入式人才缺口每年50万人左右;2、10年工作经验的高级嵌入式工程师年薪在30万左右,初级工程师平均月薪3000~5000元,中高级的工程师月薪超过10000元。3、嵌入式软件开发是未来几年最受欢迎职业之一;嵌入式系统开发工程师的招聘要求一、岗位职责:负责高精度模拟信号的调理,以及ARM、DSP高速数字电路的搭建。?任职要求:1、精通模拟电子技术,能够使用电路设计仿真工具对电路进行仿真分析;3、具有板级EMC及EMI防护设计能力,保证单板及整机抗干扰能力;3、熟悉ADI等模拟器件以及ARM、DSP、CPLD等数字器件的使用和设计等。二、岗位职责:1、熟练使用Protel,熟悉掌握多层PCB电路的设计和系统硬件电路的调试;?4、具备从事相关技术开发工作3年优先,有手持通讯设备开发经验的从优。2、具备一定的硬件功底,有扎实的模拟电路和数字电路基础,具有通讯技术基础;3、精通嵌入式系统设计,熟悉多种微处理器,有AVR系列单片机;三、职位描述:1、熟悉EMC、EMI问题,熟练掌握一到两种layout工具,如Pads等,懂得高速心哈走线应注意的问题,阻抗特性等;2、熟悉ARM平台的嵌入式系统开发过程,熟悉ARM开发及相关外围硬件电路设计;3、熟练使用各种示波器,逻辑分析仪等捕捉关键点的信号,并找出问题原因;4、熟练使用一些专业软件(如:protel、Orcad、Allegro、PADS、DXP等),具有多层PCB制版2年以上经验.通过上面的了解,大家应该对嵌入式系统开发行业有了一个清晰的认识吧。嵌入式系统开发也是一个稀缺的行业,相对的待遇也比较高。从事于嵌入式系统的开发,也是一个比较好的选择。从岗位职责,职位描述,前景等方面,我们可以看出其快速发展是必然的。一品威客网汇聚了数百万专业的程序开发、软件美工、插件开发、软件汉化、脚本制作、软件测试、游戏开发、办公系统开发、程序修改、嵌入式、桌面软件、多媒体软件、其他软件开发等优秀威客人才,只要您在网站发布任务需求,就能够吸引众多威客给您献上最好的创意服务。推荐更多与“嵌入式系统开发就业要求和前景分析”相关推荐:安卓app应用开发|创意宣传册设计|app手机应用开发|移动app应用开发|手机app开发工具手机app开发建设|电子商务网站开发|PHP网站开发环境|宣传册设计应用|安卓应用开发工程师企业手机网站开发|创意海报设计流程|中文logo字体设计|汉字字体设计方法|手机APP应用开发设计
-
一般嵌入式系统开发基本知识
嵌入式系统开发的技术对于当代微型电子计算机的贡献是非常大的,因为嵌入式系统开发属于高新技术产业。因此,对嵌入式系统开发的基本知识多加了解总能给我们进行计算机应用技术的应用提供更多助力。小编对嵌入式系统开发也是研究颇多,非常喜欢嵌入式系统开发那种集群化微型化的趋势。嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。处理器技术与实现系统功能的计算引擎结构有关,很多不可编程的数字系统也可以视为处理器,这些处理器的差别在于其面向特定功能的专用化程度,导致其设计指标与其它处理器不同。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。以上内容就是小编所论述的嵌入式系统开发基本知识了。为了电子产品发展的美好明天,小编希望广大读者朋友能够认真阅读小编上述内容并查阅相关书籍。如果您有嵌入式系统开发方面的需求,欢迎将其发布在一品威客网上,该网站上会有更多企业和个人为您提供更专业贴心的服务。
-
当代嵌入式系统开发的一些特点
嵌入式系统开发的相关常识已经在前面叙述过了,不过关于嵌入式系统开发的特点相信广大读者朋友应该不太清楚吧。没关系,小编在下文会进行叙述。为什么嵌入式系统开发对于当代微电子产品的贡献那么多?相信很多人都会有产生疑问,比如为什么那么小型的电子产品都能有这么强大的功能。处理器技术与实现系统功能的计算引擎结构有关,很多不可编程的数字系统也可以视为处理器,这些处理器的差别在于其面向特定功能的专用化程度,导致其设计指标与其它处理器不同。嵌入式系统开发同通用型计算机系统相比具有以下特点:1.嵌入式系统通常是面向特定应用的嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。3.嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。以上内容就是小编所论述的嵌入式系统开发同通用型计算机系统相比具有的特点了。嵌入式系统开发的出现,直接带动电子计算机登上了新台阶。如果您有嵌入式系统开发方面的需求,欢迎将其发布在一品威客网上,该网站上会有更多企业和个人为您提供更专业贴心的服务。
-
关于嵌入式系统开发的相关常识
大家都听说过嵌入式系统开发吧,嵌入式系统开发一般针对的是手机以及平板电脑这些电子产品。大家都可以发现这些电子产品的共性,就是极其的精细,没有不错的嵌入式系统开发,就很难将这些精细的电子产品完成,难度非常大。当然不可否认的是嵌入式系统开发有赖于高新技术的发展。我们有必要了解一下嵌入式系统开发的相关常识。嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。在嵌入式系统中使用单用途处理器,在指标上有一些优缺点。这些优缺点与通用处理器基本相反,性能可能更好,体积与功率可能较小,数量大时的单位成本可能较低,而设计时间与NRE成本可能较高,灵活性较差,数量小时的单位成本较高,对某些应用性能不如通用处理器。在嵌入式系统中使用通用处理器具有设计指标上的一些优势。提前上市时间和NRE成本较低,因为设计者只需编写程序,而不需要做任何数字设计,灵活性高,功能的改变通过修改程序进行即可。与自行设计处理器相比,数量少时单位成本较低。当然,这种方式也有一些设计指标上的缺陷,数量大时的单位成本相对较高,因为数量大时,自行设计的NRE成本分摊下来,可降低单位成本。同时,对于某些应用,性能可能很差。由于包含了非必要的处理器硬件,系统的体积和功耗可能变大。以上内容就是小编所论述的关于嵌入式系统开发的相关常识了。相信浏览了小编上述内容大家对嵌入式系统开发会有更深的理解,这种系统的应用可是相当广泛的。如果您有嵌入式系统开发方面的需求,欢迎将其发布在一品威客网上,该网站上会有更多企业和个人为您提供更专业贴心的服务。
-
怎么样选择嵌入式系统开发的处理器
相信现如今,每个人都知道什么是计算机,但很多人不明白什么是嵌入式系统和嵌入式微处理器。与计算机不一样,嵌入式系统是工程师自己设计的系统。那么,在实际的设计开发过程中,如:电话、传真机、打印机和网络路由器等应用产品时,应怎么样选择嵌入式系统的处理器呢?仅有一种答案,那就是选择是多样化的。因为嵌入式系统开发设计的差异性极大,这就是有100种微处理器存在的原因。在某种情况下,性能极为重要,而在另一种情况下,低功耗又成为最关键的因素。另外,一些设计者会考虑支持软件、代码的大小以及多种渠道的资源和过去的经验。那么,哪些因素是设计者最为关心的?上市的CPU供应商有哪些某些公司如Motorola、Intel很有名气,而有一些小的公司如QED(SantaClara.CA)虽然名气很小,但也生产很优秀的微处理器。另外,有一些公司,如ARM、MIPS等,只设计而并不生产CPU,他们把生产权授予世界各地的半导体制造商。一些半导体厂商生产的CPU不单纯以传统的封装形式出售,而是以一种软件模型库方式向用户供应ASIC设计。截至1997年底,所有各种形式的32位嵌入式微处理器的销售额超过1.8亿美元,如果加上PC、苹果机和工作站,那么,几乎每一位生活在美国的人都拥有一颗32位微处理器。Motorola传统的68K结构仍是32位CPU的主流,虽然它起源于80年代初,但在1997年依然销售了8000万个,并基本上是传统680xx芯片(00、20、40K),另外就是683xx(60、02、32、28K)以及Coldfire。68K嵌入式微处理器最大的挑战者是MIPS的授权制造商。众所周知,MIPS属于SGI公司,而MIPS主要做嵌入式系统,SGI工作站只是MIPS芯片销售额的1;紧跟在MIPS后的另一个RISC芯片制造商是Hitachi的SH,SH主要在远东销售(日本最多),北美则很少有人使用。ARM是另外一种近年来在嵌入式系统有影响力的微处理器制造商,ARM的设计非常适合于小的电源供电系统。Apple在Newton手持计算机中使用ARM,另外有几款数字无线电话也在使用ARM。除MIPS、SH和ARM之外,就数PowerPC和X86了。这两款微处理器在桌面系统用量极大,但在嵌入式系统开发中的影响却不够大。1997年,Intel、AMD及其他X86兼容厂商共生产了900万个X86嵌入式CPU。实际上,在嵌入式X86CPU方面,AMD的工作远比Intel多,如AMD186/188系统和AMD基于386、486Elan系统(把整个PC基成在单个芯片上)。选择高性能的处理器如果你的设计是面向高性能的应用,那么建议你考虑某些新的处理器,其价格极为低廉,如IBM和Motorola的PowerPC。以前Intel的i960是销售极好的RISC高性能芯片,但是最近几年却遇到强劲的对手,让位于MIPS、SH以及后起之星ARM。另一种趋势就是越来越多的人在磁盘控制器、数码相机、手持电话、调制解调器等方面使用DSP。采用DSP的好处是可以大大减少系统内CPU的数目,提高效率,并使编程简单,但是毕竟DSP不能完全替代CPU的功能。目前已经有公司宣布推出复合型的微处理器,如Motorola的M.Core(一种新一代的16/32位微处理器),它将跨越CPU与DSP。据悉,TI、Siemens也在开发相似的产品。IntelPentium无疑是一种高性能处理器,但由于其体积大、散热差等原因,除客户使用OEM板外,在用户自己设计的系统中则较少使用。选择低功耗的处理器嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS导航器等消费类电子产品,这些产品中选购的微处理器除了要有很高的性能外,还要有极低的功率消耗。许多CPU生产厂家已经进入了这个领域。今天,用户可以买到一颗嵌入式的微处理器,其速度像笔记本中的Pentium一样快,而它仅使用普通电池供电,并且价格不足50美元。典型的例子有NEC、日立为HPC、PalmPC而设计的VR4111和SH7707。Digital的StrongARM1100,在一个极小的200MHz主频封装中集成了彩色LCD控制器、PCMCIA接口、触屏接口等6个接口(含USB、IRDA),而批量的价格也在40美元以内。选择专用的集成化的处理器嵌入式微处理器与通用的微处理器最大的不同就是嵌入式微处理器多数工作在用户自己设计的系统中。为了满足日益高速增长的各类嵌入式系统开发设计的需求,CPU厂商设计了许多兼有16/32位微处理器并集成了许多外围功能的CPU。根据笔者的经验,这里列举几种在国内外被广为采用的通信用集成化微处理器范例。Motorola68360是一个32位内核(CPU32+)的集成通信用CPU,除了内建的常规的DMA、DRAM控制、时钟、片选、异步串口、中断等常规微处理器功能外,它最大的特点是集成了一个通信系统,内含4路同步协议的协议通道,可以支持HDLC、T1/E1、ISDN等通信协议。68360还可编程,提供一个10M以太网接口,方便嵌入式系统与网络管理计算机系统的连接。围绕着这类应用,Motorola还有68302——一个16位的通信用协议处理器和高档的860系列——PowerPCRISC内置的通信处理器。值得注意的是,AMD公司最近宣布了一种186CC的通信用处理器,内置采用国人熟悉的X86内核和四路HDLC,适合于ISDN路由、通信接入等系统。通常,对于嵌入式系统开发工程师而言,更多更好的嵌入式处理器的不断出现是好事。但,太多在选择上也会遇到很多问题。通常会综合考虑系统的性能、价格、开发工具难以以及工程师对这种处理器的掌握程度,决定选择哪一种处理器。嵌入式处理器的选择也会随着时代变化,科技的进步,工业的发展等都对其有一定的影响。一品威客网汇聚了数百万专业的程序开发、软件美工、插件开发、软件汉化、脚本制作、软件测试、游戏开发、办公系统开发、程序修改、嵌入式、桌面软件、多媒体软件、其他软件开发等优秀威客人才,只要您在网站发布任务需求,就能够吸引众多威客给您献上最好的创意服务。推荐更多与“么样选择嵌入式系统开发的处理器”相关推荐:android应用开发|android程序开发|手机应用程序开发|嵌入式开发课程|企业手机APP开发嵌入式开发流程|企业手机WAP网站|微信公众平台开发|嵌入式系统分类|企业台历设计方案手机图标设计理念|网站开发主流技术|互联网网站开发|网站开发建设|微信平台功能开发