文章目录
0、前言
在上一章中,我们构建了几个控制 GPIO 外设的函数,算是实现了函数库的雏形,但 GPIO 还有很多功能函数我们没有实现,而且 STM32 芯片不仅仅只有 GPIO 这一个外设。 如果我们想要亲自完成这个函数库,工作量非常巨大。ST 公司提供的 标准软件库 或者 HAL软件库,包含了 STM32 芯片所有寄存器的控制操作,我们直接学习如何使用 ST 标准库或者 ST 的 HAL库,会极大地方便控制STM32 芯片。
1、CMSIS标准及库层次关系
因为基于 Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生 产的 Cortex 微控制器软件 的兼容性问题,ARM 与芯片厂商建立了 CMSIS 标准(Cortex MicroController Software Interface Standard)。
所谓CMSIS 标准,实际是新建了一个软件抽象层,见下图。
CMSIS标准中最主要的位 CMSIS 核心层,它包括了:
- 内核函数层:其中包含用于访问内核寄存器的名称、地址定义,主要由 ARM 公司提 供。
- 设备外设访问层:提供了片上的核外外设的地址和中断定义,主要由芯片生产商提供。