CMSIS
编辑
1结构
?CMSIS软件层次
?CMSIS包含的组件
?基于CMSIS应用程序的基本结构
?CMSIS软件包详细目录
2使用步骤
CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。
CMSIS可以分为多个软件层次,分别由ARM公司、芯片供应商提供。
其中ARM提供了下列部分,可用于多种编译器:
●
●中间设备访问层:为软件提供了访问外设的通用方法。芯片供应商应当修改中间设备访问层,以适应中间设备组件用到的微控制器上的外设。目前中间设备访问层仍处于开发过程中,本文不做详述。芯片供应商扩展下列软件层:
●微控制器外设访问层:提供片上所有外设的定义。
●外设的访问函数(可选):为外设提供额外的助手函数。CMSIS为Cortex-Mx微控制器系统定义了:
●访问外设寄存器的通用方法和定义异常向量的通用方法。
●内核设备的寄存器名称和内核异常向量的名称。
●独立于微控制器的RTOS接口,带调试通道。
●中间设备组件接口(TCP/IP协议栈,闪存文件系统)。
1、2、内核外设函数:特定处理器功能和内核外设的访问函数
3、DSP库:优化的信号处理算法,并为SIMD指令提供Cortex-M4支持
4、系统视图说明(SVD):描述设备外设和中断的XML文件。
该标准完全可扩展,可确保其适合于所有Cortex-M处理器系列微控制器,从最小的8KB设备到具有复杂通信外设(如以太网或USB)的设备。(内核外设函数的内存要求少于1KB代码,少于10字节RAM)。
CMSIS-外设访问层的文件
基于CMSIS应用程序的基本结构
独立于编译器的文件:
●Cortex-M3内核及其设备文件(core_cm3.h+core_cm3.c)
─访问Cortex-M3内核及其设备:NVIC,SysTick等
─访问Cortex-M3的CPU寄存器和内核外设的函数
●微控制器专用头文件(device.h)
─指定中断号码(与启动文件一致)
─外设寄存器定义(寄存器的基地址和布局)
─控制微控制器其他特有的功能的函数(可选)
●微控制器专用系统文件(system_device.c)
─函数SystemInit,用来初始化微控制器
─函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件
startup_stm32f10x_xx.s/.c,在跳转到main前调用
─SystemFrequncy,该值代表系统时钟频率
─微控制器的其他功能(可选)
编译器供应商+微控制器专用启动文件
●编译器启动代码(汇编或者C)(startup_device.s)
─微控制器专用的中断处理程序列表(与头文件一致)
─弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖)
CMSIS(3张)
下载的CMSIS软件包含有CortexM3核的支持文件以及基于CortexM3核处理器的启动代码和库引导文件。
以STM32F10XX序列处理为例,介绍CMSIS的使用步骤。
1、从ST官方网站下载3.0以上版本的标准外设库。
2、基于开发软件新建工程,建立相应的文件目录,注意询问是否加入启动文件时,选择“否”。
3、根据所选芯片,把Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中的启动代码加到工程中。
4、根据处理器FLASH容量的大小,选择启动代码。stm32f10x.h的66-73行表明了启动代码的类型。例如STM32F10X_HD行表示大容量的,如果不需要直接注释掉即可。
5、选择是否启用标准外设库。stm32f10x.h的105行的USE_STDPERIPH_DRIVER用于确定是否启用,如果不启用直接注释掉。
6、确定处理器的频率。system_stm32f10x.c的110-115行用于确定处理器的频率,注释掉不需要的即可。例如处理器的频率为是36MHz,注释SYSCLK_FREQ_72MHz,去掉SYSCLK_FREQ_36MHz注释。
|
|