Arm系列微处理器的软件体系架构工具的制作方法

文档序号:6483030阅读:218来源:国知局
专利名称:Arm系列微处理器的软件体系架构工具的制作方法
ARM系列微处理器的软件体系架构工具
技术领域
本发明展现了一种嵌入式应用软件体系快速设计的自动化软件工具,主 要用于以各种ARM微处理/控制器为核心的嵌入式应用系统软件体系的快速 构建,应用领域包括工业过程的检测与控制、语音/图像的处理与解压缩、仪 表仪器、家用电器、便携式移动通讯、个人数字助理产品、消费电子、航空 航天、军事等行业。
嵌入式应用体系设计中,做好具体的ARM硬件体系后,就可以应用本 软件架构工具快速产生所需的关键性的基于硬体的基本程序框架了 ,之后,
就是在此框架下编写功能代码了 ,整个嵌入式系统的设计过程得以大大地简 化,产品的研发周期也得以极大地缩短。
本发明,不仅可以广泛适用于各级嵌入式软硬件设计人员的ARM单片 机 SCM(Single Chip Microcomputer)或 FPGA(Field Programmable Gate Array)-SoPC(System on Progmmmale Chip)的研发,也可以大量应用于各类高 校/职校的嵌入式应用系统设计与机电一体化专业的学员的实践教育培训。
背景技术
嵌入式系统广泛应用,已经渗透到科学研究、工程设计、工业过程监控、 交通管理、信息家电、智能家庭管理、环境监测、军事技术、气象探测、电 子商务、各类产业和商业文化艺术、娱乐业以及人们的日常生活的方方面面 中,从家用洗衣机、电冰箱,到作为交通工具的自行车、小汽车,再到办公 室里的远程会议系统等等,处处都是可以使用嵌入式技术开发和改造的产品。
在各类嵌入式应用产品中,普遍采用的是以各种ARM微处理/控制器为 核心的嵌入式应用系统。精简指令集RSIC(Reduce Instruction Set Computing) 的ARM微处理/控制器内核,以性能优良、可靠高效、经济实用,被广泛采 用。很多知名半导体广商都推出了以各种ARM内核为核心CPU(Central Processing Unit)、附加各类常用外设和接口的单片高集成微处理/控制器。嵌入式应用产品的研发,主要是相关的嵌入式应用系统的设计,其中重 嵌入式软件体系架构,通常采用混合编程形式,以加速研发的实现,主要的
设计语言多采用C/C++,部分含有Java虚拟机的ARM微处理/控制器的主要 设计语言是Java。嵌入式软件体系框架中,需要设计的程序有基本的启动程 序、异常/中断处理程序、所用外设与接口的初始化配置与操作驱动程序、主 程序文件、嵌入式实时操作系统内核的最小选配或嵌入移植、多任务的分配 与同步/通信程序、实时监控程序等的基于底层硬体的软件,其中启动代码部 分和实时性要求较高的部分代码必须采用ARM指令集汇编语言编写。
编制嵌入式ARM微处理/控制器软件体系框架,必须熟悉所选ARM内 核的构造及其异常中断机制、存储体系构造、ARM汇编指令集,熟悉所用 ARM系列微处理/控制器件的特点及其片内模块/夕卜设/接口的构造与操作,熟 悉所选嵌入式实时操作系统E-RTOS(Embedded Real Time Operation System) 的移植需求及其对底层硬体驱动的特殊实现要求。这里的"熟悉",不是一般 的所谓"了解",而是透彻的"理解",否则就不可能"用活"和"活用"。
ARM指令集,有基本的ARM和Thumb指令集,有增强的双Thumb指 令集和浮点运算指令集,更有针对不同内核的特殊指令集。有ARM7、 ARM9、 XScale等众多ARM内核,有Philips-NXP、 Samsung, Atmel、 Intel等知名 半导体厂商在生产不同类型的各种ARM微处理/控制器件。每种型号的ARM 微处理/控制器件都集成有或多或少的各类常用片内外设或接口 。各类常用的 片内外设或接口,多达几十个。各类常用E-RTOS,对底层硬体更有不同的 依赖和要求。
不同ARM内核、不同半导体厂商、不同的具体ARM微处理/控制器件, 都有100个左右的配置、操作和状态寄存器,复杂的ARM微处理/控制器件 则多达数百个。寄存器的二进制位数通常为8、 16或32位,每个寄存器的单 个或数个位又有不同的涵义。这些寄存器中,有些是关于ARM-CPU的,有 些是关于微处理/控制器的片内外设和接口的。
所以说,使用一款ARM微处理/控制器件,进行嵌入式软件体系设计, 需要花费大部分时间进行嵌入式软件体系框架,并且需要不断的软件测试和 调试,对设计人员能力的要求极高,很难一蹴而就。
嵌入式软件体系框架,迫切需要在保证可靠、高效、精炼、易用的前提下做到智能化、自动化、标准化、模块化,以缩短产品研发时间和软件开发
成本,加速软件设计效率。本发明"ARM系列微处理器软件架构工具"就是这 种广泛迫切需求的产物。有了本软件体系架构工具,对所用ARM微处理/控 制器件,就可以停留在"了解,,而不是众多的"熟悉,,了 。

发明内容
本发明的目的,在于提供一种在保证可靠、高效、精炼、易用的前提下 做到智能化、自动化、标准化、模块化的ARM系列微处理器的软件体系架 构的简易途径,以快速有效地解决以下问题怎样在一个硬件平台上建立并 运行起一个最小的基本软件体系?怎样通过软件与系统的各种外围设备打交 道?怎样通过系统的各种接口在软件上实现和外部通信?怎样建立针对具体 IDE或E-RTOS的多任务应用软件框架并使之即稳定可靠又实时高效?
嵌入式软件体系架构,与硬件密切相关,又称为硬体操作软件或者基于 硬体的软件,其开发设计包括基本软件体系的构造、底层外设或接口驱动程 序的设计、IDE/E-RTOS系统的建立等一系列繁瑣的过程,也可以是这些部 分的有机整合…可编程片上系统设计SoPC。为彻底简化这一过程,实现上 述发明目的,本"ARM系列微处理器软件体系架构工具",立足于嵌入式ARM 硬件体系,通过简单易用的可视化人机交互进行"量体裁衣"的定制,得到基 于具体ARM型号微处理/控制器类型的"实际配置",结合内嵌的广泛而丰富 的"代码数据库",经过逐级的"适配与优化",进而,向下形成由含有基本的 启动代码、系统初始化代码在内的最小软件体系和所用外设和接口驱动程序 组成的底层软件,向上形成由基于ARM指令集的直接软件体系或所选多任 务E-RTOS的板级支持包BSP(Board Support Board)、可调用的应用程序接口 API(Application Programmable Interface)函数库和可以直接使用的应用程序 框架组成的顶层软件。有了具体的可靠高效的嵌入式ARM软件体系框架, 软件工程师,就可以直接在此程序框架的各个"用户可以加入代码"的注释 处,调用所产生的API函数,进行功能性应用程序设计了。嵌入式ARM应 用系统,特别是其软件体系及其架构的设计层次与流程如图l所示。
本ARM系列微处理/控制器软件架构工具,有中文和英文两个版本,其 主要组成及其特征如下
1.可视化人机交互的"实际配置"可视化人机交互的"实际配置",通过各种简单明了、界面友好、便于操
作的可视化Windows对话框视窗完成人机交互,形成描述具体嵌入式硬件应 用体系环境和功能性应用程序必需的基于底层硬体的"实际配置"。
整个软件工具i殳计成"多文档界面MDI(Multi-Document Interface)应用程 序",众多人机交互的可视化Windows对话框视窗作为一个个子窗体出现, 用以完成从半导体厂商及其器件类型到具体器件型号的选择,实现时钟/存储 器/电源的管理、异常中断的安排、栈/堆/接口分配的最小启动配置,形成最 小的软件体系,初始化和操作所选各种片内外设或接口的驱动配置;还有 ARM 内核的选择、集成开发环境 IDE(Integrated Development Environment)/E-RTOS及其多任务分配与同步/通信的选择,API及其应用程 序框架的选择,等。每个对话视窗,都对应一类配置,在窗口关闭时形成, 记录在配置文件中。再次打开窗口,可以从该配置文件调出并显示上次的选 择,以便于调整和修改。资源冲突的选择"配置"会按原半导体设计厂商的规 定进行优化,在没有相关仲裁规则时会以弹出窗口的形式提示用户再次进行 选择。人机交互窗口内的各项操作,都配有简单明了的提示或弹出"暗示", 复杂的操作则提供有相应的帮助文档。最终形成的"实际配置"文件,用于下 一步的"适配与优化"。
"选配"实现的大部分功能示意在图2中,其中PLL为锁相环(Phase Locked Logic), INTC为异常/中断控制器(Interrupt Controller)、 EMIC为外部 存储器接口控制器(External Memory Interface Controller),闪存控制器为 (Flash Memory Controller) 、 DMA为直才矣存储器访问(Direct Memory Access)、 MMU/PMU为存储器/电源管理单元(Memory Management Unit/Power Management Unit)、 UART/SCI为通用异步收发器(Universal Asynchronous Receiver Transmitter)/串行通信接口 (Serial Communication Interface) 、 SPI为串 行外设接口 (Serial Peripheral Interface) 、 I2C为内部集成电路接口 (Inter-Integrated Circuit) 、 USB为主机/设备通用串行总线(Host/Device Universal Serial Bus)、 LCD为液晶显示器(Liquid Crystal Display)、 I2S为数字 音频总线(Inter-IC Sound Bus)、 SD/MMC为安全数据卡/多媒体控制器(Secure Digital Card/Multimedia Control) 、 EMAC为以太网接口控制器(Ethernet Media Access Controller)、 CAN为控制器局域网(Controller Area Network), TSC为触摸屏控制器(Touch Screen Controller), PWM为脉沖宽度调制(PulseWidth Modulation), WDT为看门狗定时器(Watch Dog Timer)、 RTC为实时时 钟(Real Time Clock) 、 ADC为模数转换器(Analog Digital Converter) 、 DAC为 数模转换器(Digital Analog Converter), GPIO为通用输入/输出接口(General Purpose I/O), AHB指先进的高性能总线(Advanced High performance Bus), APB指先进的外设总线(Advanced Peripheral Bus).
可视化人机交互的"实际配置",可以在几到十几分钟内快速完成,设计 效率的提高,可想而知。
2.广泛丰富的"程序代码数据库"
要适合不同ARM内核及其不同半导体厂商的不同类型不同型号的微处 理/控制器,必须具备广泛与丰富的而且经过调试与优化的"程序代码数据 库"。本发明的软件架构工具,含有各类用不同ARM指令集编写的启动汇编
语言代码文件库,用<:^++语言编写的各类常用外设或接口的驱动程序文件
库、各种异常/中断中断处理函数库、常规的"应用程序架框"文件库、常用的 E-RTOS之BSP库、及其多任务分配与通信函数库。对于具有Java虚拟机的 ARM内核,还构建有大量的Java代码库,以支持以Java语言为主的嵌入式 系统设计。各类接口的驱动文件,根据相关总线的标准通信协议和常规的编 程指导思想,进行代码编写,通信协议如CAN总线传输,USB中断/批量/ 同步传输实现,等;编程指导思想如主动数据发送,中断数据接收,DMA 方式实现大批量数据传输,等。代码数据库中的大部分程序文件都经过了实 际调试,并进行了结构和执行效率上的优化,做到了模块化、标准化和易读 易用。另外,还特别为代码数据库设计了特殊的链接接口,以便于应用中进 一步的修改、完善和发展。
广泛丰富的"程序代码数据库"为本软件架构工具提供了强有力的底层硬 体适应性保障
本软件架构工具适用的常用ARM内核有ARM7TDMI-S、 ARM9xxT/E、 CoretexM3、 CoretexMl、 XScale等。
本软件架构工具适用的常用ARM系列微处理/控制器件有Philips-NXP 的LPC2000/LPC3000系列、Samsung的Mobile-SOC系列、Atmel的AT91 ASM、 Intel的PXA/IOP/IXP系歹寸、Actel/Altera/Xilinx的各种CoretexMl-FPGA、 ADI 的ADuC70xx/ADu71xx系列、ST的STR71x/STR73x/ATR75x/ATR91x系列、 TI的TMS470Rlx系列、FreeScale的MAC71xx系列、OKI的ML67xxx系列等。
本软件架构工具适用的常见片内外设或接口有以PLL为中心的时钟发 生/控制器、异常/中断控制器INTC、外存接口控制器EMIC、闪存控制器、 DMA控制器、MMU/PMU、 UART/SCI、 SPI、 I2C、 USB主机/设备控制器、 1394接口控制器、LCD控制器、I2S、 SD/MMC、 EMAC、 CAN、 TSC、 8/16 位定时/计数器(Timer/Counter)、 PWM、 WDT、 RTC、 ADC、 DAC、 GPIO、 l-Wires总线接口控制器等。
本软件架构工具适用的常见E-RTOS有RTX 、 pC/OS-II 、 (iCLinux/ARM-Linux、 WinCE/XP、 VxWorks 、 Nucleus 、 eC/OS等。
"程序代码数据库",由软件架构平台在"适配与优化"时调用,并实现与 其的无缝的链接。
3.逐级紧凑"适配"及其"优化,,
逐级紧凑"适配"及其"优化",在可视化人机交互完成后,由用户单击软 件架构工具中代码发生按钮,得以触发而执行。
架构软件工具分析得到的"实际配置"需求,逐一查找后台的"代码数据 库",按照启动代码、最小软件架构、底层外设/接口驱动、异常/中断/DMA、 IDE或E-RTOS适配、BSP的形成、多任务分配与连接、GPIO配置、应用程 序框架发生等顺序,由主到次,由硬件底层到软件上层,逐级逐一地进行"适 配",得到初步的各个程序文件代码,这就是所谓的"逐级紧凑适配"。
接下来,架构软件工具,对初步得到的各个程序文件代码进行优化。代 码库中的程序,因需要适应很多硬件的实际情况,往往编写得面面俱到,如
"switch"语句引起的众多"case,,分支,而实际硬件平台常常是其中的 一种情 形,此时,十分需要"代码优化",以缩小程序代码量,加速程序的执行效率, 这对于资源有限和实时性要求高的嵌入式系统设计尤为重要。
本阶段完成的任务还有适应底层硬体的各个必需API函数的形成,代 码注释的添加,必需的应用程序框架的选择与优化,以注释形式给出众多的 用户增加代码的位置,各个使用指导文件的产生,等。
逐级紧凑"适配"及其"优化",过程虽然复杂,但通过计算机在后台完成, 通常仅需要几分钟时间,就可以一蹴而就,程序设计效率非常之高。 4.简明规范开放的"软件体系代码"
针对具体硬件平台的ARM微处理/控制器系统的软件体系程序框架,在
9"适配与优化,,的后期产生,它包括启动程序文件,异常/中断处理文件,各 个外设/接口的驱动程序文件,必需的应用程序框架文件,多任务分配及其同 步与通信文件,适合该^硬件体系的API函数库,相对所选E-RTOS的BSP, 等等。
产生的"軟件体系框架代码"具有以下显著特点 >程序简洁明了
程序代码严格遵循汇编语言和0^++语言的程序编写风格和规范,同时 在程序中做有大量的注释,可读性强,对于代码探索、分析、技术交流及其 初级人员学习十分方便。对汇编代码、函数、函数的参数、全局/局部变量的 功用、涉及的算法、"读/写"操作或"收/发"访问的编程思想,其注释更为详细。
>代码规范标准
对程序代码,力求高度规范化、模块化、标准化。按功能类型把架构代 码分为若干"对"程序文件,每"对"程序文件,划分为头文件(*上、,inc等)和 程序体文件(气c、气cpp等),以便于项目的嵌套引用和重构组合。整个项目文 件采用"树"状结构组织在一起。
>源码完全开放
产生的各个程序文件,完全以源代码的形式给出,即便于应用、技术交 流、编程学习,又便于软件架构工具本身的改进、完善和提高。 >紧随嵌入式系统开发需求
程序代码的编写上,尽可能采用低级语法规则给出,如在C/C+十语言的
使用上,就做到了尽可能使绝大多数代码为c语言,尽量避免使用c+十语法, 尽量不使用库函数或仅使用少量常规库函数,这样使程序代码对编译器几乎 失去了依赖性,更加符合了嵌入式系统开发的需要。


图1为本发明ARM系列微处理器软件体系架构工具的层次与流程框图。
图2为以ARM系列微处理器为核心的嵌入式系统的通用选择配置缩略框图。
图3为ARM单片机的厂商与器件选择框图。
图4为LPC2138单片机的系统配置框图。
图5为LPC2138单片机的系统管理窗口框图。
图6为LPC2138单片机的中断配置窗口框图。
图7为LPC2138单片机的中断异常代码架构选择窗口。图8为LPC2138单片机的中断异常代码架构选择窗口。
图9为LPC2138单片机架构代码及其启动汇编代码浏览。
图10为LPC2138单片机架构代码及其SPI片内外设C代码浏览。
图11为LPC2138单片机架构代码及其主程序C代码浏览。
图12为程序代码架构文件预览与输出窗口框图。
图13为由项目工程文件直接打开的Real View MDK集成开发环境。
实施方式
本发明"ARM系列微处理/控制器软件体系架构工具",实现了各种ARM 微处理/控制器件的嵌入式应用系统軟件体系的快速构建。具体实施中,关键 环节的"程序代码库"和"适配与优化,',均在后台运行,面向用户的只是一 系列的简易的"人机交互操作,,, 一直到最后得到其所需的嵌入式应用软件体 系框架为止。
下面以工业测量和控制场合广泛应用的Philips-NXP的LPC2000系列 ARM7TDMI-S单片机,针对ARM公司的主流的集编辑、编辑、调试于一体 的IED—Real View MDK,产生的嵌入式软件应用体系框架为例,说明本"软 件架构工具"中文版的具体应用。这里选用的具体器件型号是LPC2138。
1. 在Windows下运行本软件架构工具,选择厂商与器件型号,如图3 所示。
2. 由此可打开图4所示的LPC2138程序代码架构框图。
3. 在图4中,单击亮橙色的各个按钮,即可打开对应的CPU管理窗口 或片内外设配置窗口。在打开的窗口中可以通过人机对话的方式完成相应的 寄存器配置和初始化、读写访问、中断等相关函数的选择。图5 8是对系统 管理、中断管理与UART片内外设配置的窗口。
4. 打开所需的各个窗口进行各项选择后关闭窗口,即可完成对所需的寄 存配置和代码API接口函数的选择。然后,回到项目管理主窗口,在主菜单 或工具栏中单击生成代码项,软件工具在后台即可生成所希望的程序代 码框架。在项目管理主窗口主菜单或工具栏中单击代码浏览项,可以打 开程序代码架构文件,从中可以浏览所生成的程序代码,如图9 U,该代码 是针对Real View MDK集成开发环境产生的,程序代码所对应的开发环境的 选择可以在系统控制管理窗口的一般配置页面完成。
5. 在项目管理主窗口的菜单栏或工具栏中,单击生成输出项,可以将生成的程序代码输出到指定目录。如图12所示。
6. 点击所生成目录中的项目工程文件,如针对Real View MDK软件 的.uv2文件,即可打开相应的IDE环境,如图13所示。
7. 如果需要修改程序架构代码,可以重新运行软件工具或在项目管理主 窗口的菜单栏或工具栏中,单击打开项目项,选择以前建立项目的".acf, 文件,打开以前建立的项目,重新或者修改各个所需窗口中的选择项目,生 成代码即可。
权利要求
1.本“ARM系列微处理器的软件体系架构工具”,其特征在于它具有嵌入式应用体系的广泛覆盖面、硬件与软件的紧密结合力、具体硬件操作的快速封装能力和面向具体集成开发环境IDE/嵌入式实时操作系统E-RTOS的高效过渡功能,通过对“简易可视化人机交互的‘实际配置’”、“全面丰富的‘程序代码数据库’”和“逐级紧凑的‘适配与优化’”的有机组合,能够快速形成简明、规范、开放的“嵌入式应用软件体系程序框架代码”,从而使传统而繁琐漫长的基于底层硬体的软件设计在很大程度上得以实现高效的自动化和智能化。
2. 如权利要求l所述的"简易可视化人机交互的'实际配置,",其特征 在于它能够通过可视化的多窗口显示和简单明了的选择操作,快速实现应用 和问题的具体与简化,以完成厂商及其器件类型到具体器件型号的选择、时 钟/存储器/电源的管理、异常/中断的安排、栈/堆/接口分配的最小启动配置, 形成最小的软件体系,并初始化和操作所选各种片内外设或接口的驱动配置, 还可以完成ARM内核的选择、IDE/E-RTOS及其多任务分配与同步/通信的 选择,应用程序接口 API函数及其应用程序框架的选择等。
3. 如权利要求1所述的"全面丰富的'程序代码数据库'",其特征在于 该代码库含有各类用不同ARM指令集编写的启动汇编语言代码文件库、用 C/C十+语言编写的各类常用外设或接口的驱动程序文件库、各种异常/中断中 断处理函数库、常规的"应用程序架框,,文件库、常用的E-RTOS之板级支持 包BSP库、多任务分配与通信函数库及适用于具有Java虚拟;f几的ARM内核 的Java代码库,库中的大部分代码和程序文件都经过了反复的优化和调试, 几乎覆盖了所有常用ARM内核及其数百个知名半导体厂商的ARM系列微处 理/控制器件,而且代码库还能够通过预留的接口不能地实现完善和扩展。
4. 如权利要求1所述的"逐级紧凑的'适配与优化,",其特征在于"适 配"能够按照启动代码、最小软件架构、底层外设/接口驱动、异常/中断/DMA、IDE或E-RTOS适配、BSP的形成、多任务分配与连接、GPIO配置、应用程 序框架等顺序,由主到次,由硬件到软件,逐级逐步地展开,更好地完成"代 码数据库"的搜索和"实际配置"的程序代码化;"优化"能够适合嵌入式系统 设计的特点,兼顾硬件资源和实时性的要求,充分缩小程序代码量而加速其 执行效率;"适配与优化"还能够完成适应具体硬体环境的各个必需API函 数的形成,代码注释的添加,必需的应用程序框架的选择与优化,以注释形 式给出众多的用户增加代码的位置,各个使用指导文件的产生,等。
5.如权利要求1所述的"简明规范开放的'嵌入式应用软件体系程序框 架代码,",其特征在于针对具体硬件平台所产生的软件体系程序框架,不 但覆盖了启动程序文件、异常/中断处理文件、各个外设/接口的驱动程序文 件、必需的应用程序框架文件、多任务分配及其同步与通信文件、适合该硬 件体系的API函数库、相对所选E-RTOS的BSP等几乎所有的嵌入式应用软 件需求,而且能够使所得程序简洁明了,注释齐备,可读性强;使程序文 件的结构和组织规范化、模块化、标准化;使源码完全开放,以便于应用、 交流、学习和软件架构工具本身的改进、完善与提高;使代码尽可能采用低 级而常规的编程规则给出,尽量降低对编译器的依赖性,更符合嵌入式系统 开发的需要。
全文摘要
本发明“ARM系列微处理器的软件体系架构工具”实现了各种ARM微处理/控制器件的嵌入式应用系统软件体系的快速构建,它以丰富的基于底层硬体的程序代码库和强大的嵌入式硬件体系适配能力,立足于嵌入式ARM硬件体系,通过简便易用的可视化人机交互,得到基于具体ARM型号微处理/控制器类型的实际配置,结合内嵌的广泛而丰富的代码数据库,经过逐级的适配与优化,向下形成由含有启动代码、系统初始化代码等在内的最小软件体系和所用外设和接口驱动程序组成的底层软件,向上形成由基于ARM指令集的直接软件体系或所选多任务实时操作系统的板级支持包、可调用的应用程序接口函数库和可以直接使用的应用程序框架组成的顶层软件。本软件架构工具应用于嵌入式系统设计,以最大限度地减少开发周期,降低研发成本和入门门坎,增强系统的可靠高效性,使直接展开功能性应用程序设计得以顺利实现,从而推动嵌入式产品快速上市。
文档编号G06F9/44GK101551747SQ20091005705
公开日2009年10月7日 申请日期2009年4月9日 优先权日2009年4月9日
发明者怯肇乾 申请人:怯肇乾
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1