Keil MDK5软件包的组成、Cortex微控制器软件接口标准CMSIS,重点介绍CMSIS-CORE的组成和使用

嵌入式系统的应用开发需要基于目标机-宿主机的交叉编译系统,在集成开发环境的支持下进行,应用程序通常采用高级编程语言C/C++进行编写。使用MDK开发工具进行STM32微控制器的应用开发需要安装软件包,软件包包括设备驱动程序库STM32F1XXX_DFP.XXX.pack(对于Keil MDK5而言是根据开发设备的不同选择性安装,MDK4之前的版本都是默认全部安装)、Cortex微控制器软件接口标准CMSIS库(默认安装)、中间件Middleware(默认安装)以及代码模板、示例等,如下图所示。


图 MDK软件包

Cortex微控制器软件接口标准CMSIS

CMSIS(Cortex Microcontroller Software Interface Standard)是ARM公司为统一软件结构而为Cortex微控制器制定的软件接口标准。CMSIS为处理器和外设提供了一致且简单的软件接口,方便软件开发,易于软件重用,缩短了开发人员的学习过程和应用项目的开发进程。目前,很多针对Cortex-M微控制器的软件产品都是CMSIS兼容的。

CMSIS始于为Cortex-M微控制器建立统一的设备驱动程序库,即其核心组件CMSIS-CORE。之后,添加了其他CMSIS组件,如CMSIS-RTOS,CMSIS-DSP等。

CMSIS-CORE:为Cortex-M处理器核和外设定义应用程序接口API(Application Programming Interface),也包括一致的系统启动代码。

CMSIS-RTOS:提供标准化的实时操作系统RTOS(Real-Time Operating System),以便软件模板、中间件、程序库和其他组件能够获得RTOS支持。

CMSIS-DSP:为数字信号处理DSP(Digital Signal Processing)实现的函数库,包含各种定点和单精度浮点数据类型,超过60个函数。

(1)CMSIS-CORE的组成

CMSIS提供了一个与供应商无关的、基于Cortex-M处理器的硬件抽象层,如下图所示。


图 基于CMSIS-CORE的开发结构

从软件开发角度看,CMSIS-CORE进行了一系列标准化工作:标准化处理器外设定义、标准化处理器特性的访问函数、标准化系统异常处理程序的函数名等。用户的应用程序既可以通过CMSIS层提供的函数(包括设备厂商提供的外设驱动程序)访问微控制器硬件,也可以利用CMSIS的标准化定义直接对外设编程,控制底层的设备。如果移植了实时操作系统,用户应用程序也可以调用操作系统函数。

(2)CMSIS-CORE的使用

CMSIS文件包含在微控制器厂商提供的设备驱动程序包中,当使用CMSIS兼容的设备驱动程序库时,实际上已经使用了CMSIS。具体来说,在MDK V5开发平台下,用户应用程序需要如下的文件:

1、Startup_<device>.s——设备启动代码,包括复位处理程序和异常向量。

2、System_<device>.c——设备的基本配置文件,包括时钟和总线的配置。

3、<device>.h用户代码需要的包含文件,用于访问设备。

在创建项目时,在运行库管理中选择CMSIS-COER(CMSIS:CORE)和设备的启动代码(Device:Startup),这两个是开发应用程序时必须的2个组件。当处理器是STM32F10X时,启动代码为startup_stm32f10x_hd.s、时钟和总线配置文件为system_stm32f10x.c以及应用程序中需要包含的头文件stm32f10x.h。

猜你喜欢

转载自blog.csdn.net/chenguigan/article/details/80223687