ARM处理器与嵌入式系统沈建华(华东师范大学计算机科学技术系,上海200241)业界论坛INDUSTRY FORUM62010年第11期adv@(广告专用)可以用散热器加风扇散热。
ARM针对嵌入式应用,在满足性能要求的前提下,力求最低的功率消耗。
ARM结构的优点是能兼顾到性能、功耗、代码密度、价格等几个方面,而且做得比较均衡。
在性能/功耗比(MIPS/W)方面,ARM处理器具有业界领先的性能。
基于ARM核的芯片价格也很低,目前ARM Cortex-M的芯片价格可低至10元人民币左右。
2.2丰富的可选择芯片ARM只是一个核,ARM公司自己不生产芯片,采用授权方式给半导体生产商。
目前,全球几乎所有的半导体厂家都向ARM公司购买了各种ARM核,配上多种不同的控制器(如LCD控制器、SDRAM控制器、DMA控制器等)和外设、接口,生产各种基于ARM核的芯片。
目前,基于ARM核的各种处理器型号有好几百种,在国内市场上,常见的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、Hynix、Crystal等厂家的芯片。
用户可以根据各自的应用需求,从性能、功能等方面考察,在许多具体型号中选择最合适的芯片来设计自己的应用系统。
由于ARM核采用向上兼容的指令系统,用户开发的软件可以非常方便地移植到更高的ARM平台。
2.3广泛的第三方支持以如今的技术,设计一个处理器并非难事,但要使这个处理器得到大家认可,并取得市场成功却是非常困难的,其中涉及许多技术与非技术的因素和环节,还包括时机、运气。
因为现在许多产品的开发,不是一个简单的处理器加几百条指令、语句就可以解决的。
要用到32位处理器,一般都要有编译器、高效的开发工具(仿真器及调试环境)、操作系统、协议栈等,这些东西都不是一个芯片生产商可以解决的,而需要许多第三方的支持。
这就像一粒种子,需要土壤、空气、水等环境才能发芽、成长。
这也是我们的一些“中国芯”该反思之处。
ARM通过近20年的培育、发展,得到了广泛的第三方合作伙伴支持。
目前,除通用编译器GCC,ARM有自己的高效编译、调试环境(MDK、Keil),全球约有50家以上的实时操作系统(RTOS)软件厂商和30家以上的EDA工具制造商,还有很多高效率的实时跟踪调试工具的厂商,对ARM提供了很好的支持。
用户采用ARM处理器开发产品,既可以获得广泛的支持,也便于和同行交流,加快开发进度,缩短产品的上市时间。
2.4完整的产品线和发展规划ARM核根据不同应用需求对处理器的性能要求,有一个从ARM7、ARM9到ARM10、ARM11,以及新定义的Cortex-M/R/A系列完整的产品线。
前几年应用较多的主要是基于V4架构的ARM7TDMI、ARM720T、ARM920T核的一些处理器芯片,如NXP的LPC2000系列、ST的STR7/9系列、Atmel的AT91系列和Samsung的S3C系列。
近两年,ARM Cortex系列以更好的性能、更低的价格得到快速推广,典型的就是基于Cortex-M3的STM32系列。
ARM Cortex-M/R/A系列分别针对不同的应用领域。
M系列主要面向传统微控制器(MCU/单片机)应用,这类应用面很广,要求处理器有丰富的外设,并且各方面比较均衡;R系列强调实时性,主要用于实时控制,如汽车引擎;A系列面向高性能、低功耗应用系统,如智能手机。
选用ARM处理器进行开发,技术积累性较强,生命周期长,设计重用度高,不易被淘汰。
用户在选择ARM处理器时,可以针对应用需求,从大量的ARM芯片中选用满足性能、功能要求的产品,以获得较好的性价比。
3ARM嵌入式系统的软件由于嵌入式系统的差异性很大,对不同的应用需求,必须选择不同的软件设计方法、开发平台和系统工具。
对于一些不需要复杂图形用户界面、通信协议和复杂文件操作(如同时打开多个文件)的应用,如果选用Cor-tex-M3核的处理器就已可以满足要求,任务数不多,任务之间的关系也不复杂,则不一定需要移植复杂的操作系统。
这样一方面可以降低系统硬件开销,也可以获得更好的实时性和执行速度。
不过,这样的软件开发方法需要开发人员有较好的程序设计思想,对所用器件有深入的了解,并掌握其编程控制方法。
若引入一个简单的操作系统,如μC/OS,可以简化程序结构,但开发者最好熟悉其内核结构,并有使用经验,否则可能会需要更多的系统开发、调试时间。
如果选择了带存储器管理单元(MMU)的ARM处理器(如ARM920T、Cortex-A8等),这种应用系统根据应用、实时性、开发环境等因素,移植一个功能较强的操作系统一般情况下会比较合适,如Linux、WinCE,甚至新的Android等。
这种系统的开发难度主要是在OS的移植以及硬件驱动程序的开发上。
当这二步工作完成后,主要的软件开发工作已和在PC机上开发没有多大区别,可以按照一般的软件工程方法来进行,要注意的只是与ARM硬件平台相关的软件优化问题。
由于嵌入式系统硬件资源的有限性,嵌入式软件与其他应用软件的主要区别,在于嵌入式软件要有较高的效率,包括执行速度和存储空间,尽管这二者经常是相互矛盾的。
目前一般要求更多的是速度优化。
要编写出高效的ARM程序,需要开发人员熟悉ARM的体系结构,包括内核结构、指令系统、Cache与存储器结构等,还要有好的程序设计思想,以及对一些常用函数、算法的深刻理解。
paper@(投稿专用)2010年第11期Microcontrollers&Embedded Systems 5ARM处理器与嵌入式系统沈建华(华东师范大学计算机科学技术系,上海200241)摘要:本文是作者关于嵌入式系统一些基本问题的思考和总结。
主要是从嵌入式处理器与硬件、ARM处理器的优势、嵌入式软件、嵌入式系统教学等方面进行了一些梳理,谈了一些个人的观点。
关键词:嵌入式系统;ARM;硬件;软件;教学中图分类号:TP399文献标识码:AARM Processor and Embedded SystemShen Jianhua(Computer Science&Technology Department,East China Normal University,Shanghai 200241,China)Abstract:Thoughts and summaries of some basic issues in the field of embedded system are put into this paper.Embedded processorsand hardware,the advantages of ARM processor,embedded software,and the teaching of embedded system are discussed.Key words:embedded system;ARM;hardware;software;teaching引言由于各种新型微处理器的出现和应用的不断深化,嵌入式系统在后PC时代得到了空前的发展。
随着时间的推移和技术的进步,在工业控制和新兴的手持式应用等领域,用户体验成为产品成功的关键因素之一,越来越多的产品需要良好的用户界面、互联功能以及较强的数据处理能力,这对嵌入式处理器硬件、软件、教学等提出了新的要求。
1嵌入式处理器与硬件在处理器方面,目前大量的中、低端嵌入式应用,主要使用8/16位单片机。
在国内,由于历史的原因,主要是以MCS-51核为主的许多不同型号单片机,主要厂商有Atmel、Philips、Winbond、宏晶等。
还有一些近几年发展较快的新型单片机,如PIC、AVR、MSP430系列等。
这些单片机各有特点,但从目前的发展角度来看,单片机针对特定应用领域的个性化发展愈发明显,典型的例子就是TI公司的MSP430系列16位单片机、ST公司的STM8L系列8位单片机和STM32L系列32位超低功耗单片机。
在嵌入式中的高端应用领域,像工业控制、POS机、网络设备、图像处理、手机、PDA等,目前主要使用ARM、MIPS、PowerPC、DSP等16~64位处理器,以32位处理器为主。
各种类型的处理器都有其一定的应用针对性。
例如,DSP对数字信号处理技术中用到的常用运算、算法做了优化设计,主要用于实时信号处理领域,如实时音视频处理、电机控制等。
MIPS处理器性能很好,但功耗较大,适合于有交流电源供电的固定应用,如固定的网络设备、机顶盒等。
ARM处理器性能高,功耗低,适合于用电池供电的便携、手持式设备。
由于近几年便携、手持式嵌入式应用的高速发展,ARM处理器的增长速度和市场占有率也快速提升,成为目前32位应用中的主力产品。
由于嵌入式应用系统的广泛性,嵌入式系统的硬件设计涉及的知识面很广,从模拟到数字、低频到高频、小信号到大功率,以及复杂的时序逻辑设计和PCB设计,还要考虑软硬件资源的合理分配,不仅要有广而扎实的理论基础,更需要丰富的实践经验。
只有对大大小小各种应用系统反复实战演练,了解新技术、新器件,使用过多种多样的处理器和模拟/数字器件,才能逐步积累,聚沙成塔,对一个新的应用系统给出快速、合理的硬件方案与设计。
2ARM处理器的优势对于如今大量出现的32位嵌入式应用,以笔者之见,ARM处理器的优势主要有以下几个方面。
2.1高性能、低功耗、低价格把ARM处理器的性能拿来和一些著名的通用处理器(如Pentium)相比是不合适的,因为他们各自针对的应用需求是不同的。
Pentium处理器采用多条指令流水线的超标量结构,追求通用应用目标下的超强性能,功耗大,INDUSTRY FORUM业界论坛paper@(投稿专用)2010年第11期Microcontrollers&Embedded Systems 7这个过程也是ARM系统开发从低级到高级的进阶之路。
关于ARM软件的设计与优化,有一本很好的参考书“ARM System Developer's Guide:Designing and Optimi-zing System Software”,笔者翻译的中译本是《ARM嵌入式系统开发———软件设计与优化》。
目前,由于应用系统越来越复杂,嵌入式软件的移植性和重用性也得到了人们的高度重视,因为它直接影响到嵌入式软件的开发效率和质量。
选择一种通用的开发环境和高级编程语言,使开发的嵌入式软件可以方便地移植到不同的硬件平台,是实现软件重用的基础。
目前在ARM嵌入式系统开发中,ARM RealView、Keil以及IAR的EWARM是较好的开发平台,C/C++语言是应用最广泛的编程语言,并具有广泛的库函数、程序支持,在今后很长一段时间内,仍将在嵌入式系统应用领域中占重要地位。