Referneces:
- STM32函数固件库
- CMSIS_6 -> 此为arm提出的cmsis6的标准,各个用arm作内核的mcu厂商在写自家的固件库时应该遵守的标准。以后以stm32为例说明
- 【STM32】驱动库的选择:CMSIS Driver、SPL、HAL、LL | 在ARM MDK、STM32Cube中如何选择? -> 感觉这篇文里对于cmsis库的描述有些不准。cmsis库不是对硬件操作的实现,而是一个模板
以下基于cmsis和stm32 std库进行一个对比
对比前准备工作
下载cmsis
arm官方提供的cmsis可以在github找到。链接如下:
https://github.com/ARM-software/CMSIS_6
(以上仅用于对比)
repo目录如下:
为构建stm32工程,配置好cmsis以及stm32 std库
然后随便在keil官网里找一款stm32的package,然后导入keil中。链接如下:https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/versions/
然后还有cmsis的package,下载好之后导入keil中。链接如下:
https://www.keil.arm.com/packs/cmsis-arm/versions/
(此库用于对stm32工程的创建,因为stm32的std库是基于cmsis的描述进行创建的)
完成之后可以用两种方式查看是否导入成功:
1)查看keil目录
cmsis:
stm32 package
2)在keil中的Pack Installer查看
基于构建stm32 std库构建工程
对比
以下基于cmsis对比,即先看cmsis代码,然后再看stm32工程对其的依赖或实现
- core_cm3.h