
2.1.1 MDK开发环境概述
RealView MDK开发工具源自Keil公司,被全球超10万的嵌入式开发工程师验证和使用,是ARM公司目前新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内领先的技术,融合了我国多数软件开发工程师所需的特点和功能,包括µVision集成开发环境(Integrated Development Environment,IDE)与RealView编译器,支持ARM7、ARM9、Cortex-M3核处理器及Cortex-M0核处理器,可自动配置启动代码,集成FLASH烧写模块,具有强大的Simulation设备模拟、性能分析等功能。与ARM之前提供的工具包ADS等相比,RealView编译器新版本的性能提升了约20%。
MDK5使用µVision5 IDE,是目前针对ARM处理器(尤其是Cortex- M内核处理器)的较佳开发工具。MDK5向后兼容MDK4和MDK3等,相应项目同样可以在MDK5上进行开发,但应注意头文件需由用户自行添加。MDK5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行了升级。
MDK5的组成如图2-1所示。

图2-1
MDK5由MDK Tools(MDK工具)和Software Packs(包安装器)两部分组成。其中,Software Packs可以独立于工具链进行新芯片支持和中间库的升级。
MDK Tools分为MDK-Core(核心)和ARM C/C++ Compiler(编译器)两部分。
MDK-Core又分为µVision IDE和µVision debugger(调试跟踪器)。它基于µVision IDE,在单个环境中结合了项目和运行时环境管理工具,以及支持源代码编辑和程序调试的构建工具,为基于ARM Cortex-M的设备提供领先的支持,包括ARMv8-M架构(Cortex-M23/M33/M35P)。µVision debugger用于在单个环境中测试、验证和优化应用程序代码。MDK支持运行/停止调试,支持数据跟踪甚至是非介入式指令跟踪,以促进调试和系统优化。通过ULINK调试探针,可以使用流跟踪和功率测量等功能。
ARM C/C++ Compiler专为生成最佳代码大小和最佳性能而设计,它包括汇编程序、链接程序和高度优化的运行时库,以确保最佳性能。
Software Packs分为Device(芯片支持)、CMSIS(Cortex Microcontroller Software Interface Standard,Cortex微控制器软件接口标准)和Middleware(中间库)3个部分。MDK使用软件包来提供设备和板卡支持,对于CMSIS库、中间件、代码模板以及示例项目,可随时将软件包添加到MDK-Core中,从而支持独立于工具链的新设备和中间件更新,加速产品开发。
其中,CMSIS是ARM公司为统一软件结构而为Cortex微控制器制定的软件接口标准。CMSIS为处理器和外设提供了一致且简单的软件接口,可方便软件开发,易于软件重用,缩短开发人员的学习过程和应用项目的开发进程。目前,很多针对Cortex-M微控制器的软件产品都与CMSIS兼容。CMSIS提供了一个与供应商无关的、基于Cortex-M处理器的硬件抽象层,基于CMSIS的开发结构如图2-2所示。

图2-2
CMSIS始于为Cortex-M微控制器建立统一的设备驱动程序库,即其核心组件CMSIS-CORE。之后,添加了其他CMSIS组件,如CMSIS-RTOS等。
● CMSIS-CORE为Cortex-M处理器核和外设定义应用程序接口(Application Program Interface,API),也包括一致的系统启动代码。从软件开发角度看,CMSIS-CORE进行了一系列标准化工作:标准化处理器外设定义、标准化处理器特性的访问函数、标准化系统异常处理程序的函数等。用户的应用程序既可以通过CMSIS层提供的函数(包括设备厂商提供的外设驱动程序)访问微控制器硬件,也可以利用CMSIS的标准化定义直接对外设编程,以控制底层的设备。如果移植了RTOS,用户应用程序也可以调用操作系统函数。
● CMSIS-RTOS提供用于线程控制、资源和时间管理的RTOS的标准化编程接口,以便软件模板、中间件、程序库和其他组件能够获得RTOS支持。