STM32学习:STM32固件库介绍
2019-08-12 本文已影响0人
虞锦雯
一、CMSIS标准介绍
CMSIS标准的英文全称是Cortex Microcontroller Software Interface Standard,翻译过来就是ARM Cortex微控制器软件接口标准。因为基于Cortex内核的芯片生产厂商有很多,不只是ST公司。为了解决不同厂家生产的Crotex芯片软件兼容问题,ARM公司和其他芯片厂商制定了这个CMSIS标准。
CMSIS标准的软件架构.png基于CMSIS标准的软件架构主要分为以下4层:
用户应用层、操作系统及中间件接口层、CMSIS层、硬件寄存器层。
其中CMSIS层起着承上启下的作用:
- 一方面该层对硬件寄存器层进行统一实现,屏蔽了不同厂商对Cortex-M系列微处理器核内外设寄存器的不同定义;
- 另一方面又向上层的操作系统及中间件接口层和应用层提供接口,简化了应用程序开发难度,使开发人员能够在完全透明的情况下进行应用程序开发。
二、固件库内文件介绍
STM32F10xxx标准外设库体系结构.png文件名 | 功能描述 | 具体功能说明 |
---|---|---|
core_cm3.h、core_cm3.c | Cortex-M3内核及其设备文件 | 访问Cortex-M3内核及其设备:NVIC,SysTick等;访问Cortex-M3的CPU寄存器和内核外设的函数 |
stm32f10x.h | 微控制器专用头文件 | 这个文件包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等 |
system_stm32f10x.h、system_stm32f10x.c | 微控制器专用系统文件 | 函数SystemInit,用来初始化微控制器;函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm32f10x_xx.s /.c,在跳转到main前调用SystemFrequncy,该值代表系统时钟频率。 |
startup_stm32f10x_Xd.s | 编译器启动代码 | 微控制器专用的中断处理程序列表(与头文件一致);弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖) 该文件是与编译器相关的。 |
stm32f10x_conf.h | 固件库配置文件 | 通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。 |
stm32f10x_it.h、stm32f10x_it.c | 外设中断函数文件 | 用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。 |
stm32f10x_ppp.h、stm32f10x_ppp.c | 外设驱动函数文件 | 包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。 |
Application.c | 用户文件 | 用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。 |