嵌入式系统广泛应用,已经渗透到生产生活的方方面面。各类嵌入式应用产品普遍采用各种ARM微处理器为核心的嵌入式应用系统。ARM微处理器内核,以性能优良、可靠高效、经济实用而著称,很多知名半导体厂商都推出了各种ARM内核为核心CPU、附加各类常用外设和接口的单片高集成微处理器。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
嵌入式应用产品的研发,主要是相关的嵌入式应用系统的设计,其中重要的嵌入式软件体系设计中必不可少的基本设计是嵌入式软件体系的架构。嵌入式软件体系架构,通常采用混合编程形式,以加速研发的实现,主要的设计语言多采用C/C++,部分含有Java虚拟机的ARM微处理/控制器的设计语言也可以是Java。嵌入式软件体系框架中,需要设计的程序有基本的启动程序、异常/中断处理程序、所用外设与接口的初始化配置与操作驱动程序、主程序文件、嵌入式实时操作系统内核的最小选配或嵌入移植、多任务的分配与同步/通信程序、实时监控程序等的基于底层硬体的软件,其中启动代码部分和实时性要求较高的部分代码必须采用ARM指令集汇编语言编写。
编制嵌入式ARM微处理器软件体系框架,必须熟悉所选ARM内核的构造及其异常中断机制、存储体系构造、ARM汇编指令集,熟悉所用ARM系列微处理/控制器件的特点及其片内模块/外设/接口的构造与操作,熟悉所选嵌入式实时操作系统E-RTOS的移植需求及其对底层硬体驱动的特殊实现要求。ARM相关的指令集及其指令、内核类型、片内外设/接口集成、生产半导体厂家众多,各类常用E-RTOS,对底层硬体更有不同的依赖和要求。不同ARM内核、不同半导体厂商、不同的ARM微处理器件,都有100个左右的配置、操作和状态寄存器,复杂的ARM微处理/控制器件则多达数百个。使用一款ARM微处理器件,进行嵌入式软件体系设计,需要花费大部分时间进行嵌入式软件体系框架,并且需要不断的软件测试和调试,对设计人员能力的要求极高,很难一蹴而就。
嵌入式软件体系框架,迫切需要在保证可靠、高效、精炼、易用的前提下做到智能化、自动化、标准化、模块化,以缩短产品研发时间和软件开发成本,加速软件设计效率。“ARM系列微处理器软件体系架构工具”就是这种广泛迫切需求的产物,它展现了一种嵌入式应用软件体系的快速设计构建。
ARM系列微处理器软件体系架构工具,用以快速有效地解决以下问题:怎样在一个硬件平台上建立并运行起一个最小的基本软件体系?怎样通过软件与系统的各种外围设备打交道?怎样通过系统的各种接口在软件上实现和外部通信?怎样建立针对具体IDE或E-RTOS的多任务应用软件框架并使之即稳定可靠又实时高效?
嵌入式软件体系架构,与硬件密切相关,又称为硬体操作软件或者基于硬体的软件,其开发设计包括基本软件体系的构造、底层外设或接口驱动程序的设计、IDE/E-RTOS系统的建立等一系列繁琐的过程,也可以是这些部分的有机整合---可编程片上系统设计SoPC。为彻底简化这一过程,实现上述目标,该“ARM系列微处理器软件体系架构工具”,立足于嵌入式ARM硬件体系,通过简单易用的可视化人机交互进行“量体裁衣”的定制,得到基于具体ARM型号微处理/控制器类型的“实际配置”,结合内嵌的广泛而丰富的“代码数据库”,经过逐级的“适配与优化”,进而,向下形成由含有基本的启动代码、系统初始化代码在内的最小软件体系和所用外设和接口驱动程序组成的底层软件,向上形成由基于ARM指令集的直接软件体系或所选多任务E-RTOS的板级支持包BSP、可调用的应用程序接口API函数库和可以直接使用的应用程序框架组成的顶层软件。有了具体的可靠高效的嵌入式ARM软件体系框架,软件工程师,就可以直接在此程序框架的各个“用户可以加入代码”的注释处,调用所产生的API函数,进行功能性应用程序设计了。嵌入式ARM应用系统,特别是其软件体系及其架构的设计层次与流程如图1所示。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
该软件架构工具的主要组成及其特征如下:可视化人机交互的“实际配置”;广泛丰富的“程序代码数据库”;逐级紧凑“适配”及其“优化”;简明规范开放的“软件体系代码”。
可以适用的常见ARM内核有:ARM7TDMI-S、ARM9xxT/E、CoreTex-M3、CoreTex-M1、CoreTex-M0、CoreTex-M4、xScale、ARM11、CoreTex-A8、CoreTex-A9等。
可以适用的常见ARM系列微处理器有:Philips-NXP的LPC1000/2000/3000系列、Samsung的Mobile-SoC系列、Atmel的AT91ASM系列、Intel的PXA/IOP/IXP系列、ADI的ADuC7xxx系列、ST的STR7xx/ATR91x系列、TI的LMxxxx/AMxxxx/OMAP35xx系列、FreeScale的MAC71xx系列、OKI的ML67xx系列,等。
可以适用的常见片上外设或接口有:PLL时钟发生/控制器、异常/中断控制器INTC、外存接口控制器EMIC、闪存控制器、IIS、DMA控制器、MMU/PMU、UART/SCI、SPI、IIC/TWI、USB主机/设备控制器、以太网控制器、1394接口控制器、LCD控制器、SD/MMC、CAN、TSC、8/16/32定时/计数器、PWM、WDT、RTC、ADC、DAC、GPIO、1线控制器等。
可以适用的常见集成开发环境有:RV-MDK,RVDS,IAR EWB-ARM,等。
可以适用的常见嵌入式操作系统有:RTX,μC/OS-II,μCLinux/ARM-Linux/Android,Windows CE/EXP/Mobile,Nucleus/MTK,Vxworks,eC/OS,Sybian,等。
ARM系列微处理器软件体系架构工具,几乎覆盖了目前所有的ARM内核、众多的知名半导体厂商的微处理器件、常用的片内外或接口、常规的集成开发环境和常见的嵌入式操作系统,并为今后的扩展留足了丰富空间。嵌入式应用体系设计中,做好具体的ARM硬件体系后,就可以应用该软件架构工具快速产生所需的关键性的基于硬体的基本程序框架了,之后,就是在此框架下编写功能代码了,整个嵌入式系统的设计过程得以大大地简化,产品的研发周期也得以极大地缩短。目前推出的版本有“PhilipsNXP-ARM7系列微处理器软件体系架构工具”、“Samsung-ARM9系列微处理器软件体系架构工具”和“Atmel-CortexM3系列微处理器软件体系架构工具”,已经得到了迅速的传播,应用效果极好。今后,还会有更多的类似版本不断推出,也会对已有版本进一步的完善丰富。ARM系列微处理器软件体系架构,方兴未艾,任重道远,前景光明。
文章评论(0条评论)
登录后参与讨论