0.CMSIS
https://baike.baidu.com/item/CMSIS/4082822
ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层(英文原文为:a vendor-independent hardware abstraction layer for the Cortex-M processor series and defines generic tool interfaces--来自ARM官方定义)。
使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。软件的创建被嵌入式行业公认为主要成本系数。通过在所有Cortex-M 芯片供应商产品中标准化软件接口,这一成本会明显降低,尤其是在创建新项目或将现有软件迁移到新设备时。最新版本的CMSIS为5.5.1。
-----
翻译一下就是,ARM 的Cortex芯片的内核相同,但芯片厂商外设可能不同,所以不同芯片厂商开发的微控制器软件可能不兼容。所以ARM和芯片商建立CMSIS。
1.STM32标准外设库、HAL库、LL库
标准外设库的认识:
STM32固件库文件分析
1.固件库的内容:
1.1-汇编编写的启动文件startup_stm32f10x_hd.s(hd:high density大容量)
功能:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、调用c库函数_main最终去到C的世界
1.2-时钟配置文件system_stm32f10x.c
功能:把外部时钟HSE=8M,经过PLL倍频为72M
1.3-外设相关的 stm32f10x.h
功能:内核之外的实现了寄存器映射
stm32f10x_xx.c:外设的驱动函数库文件(xx:gpio、i2c、can、usart...)
stm32f10x_xx.h:外设驱动函数的初始化结构体,外设初始化结构体成员参数列表,外设库函数的声明
1.4-内核相关的
CMSIS-Cortex(微控制器软件接口标准)
core_cm3.h:内核里面外设的寄存器映射
core_cm3.c:
NVIC(嵌套向量中断控制器)、SYSTick(系统滴答定时器)
misc.h misc.c:
1.5-头文件的配置文件
stm32f10x_conf.h :包含所有外设头文件的头文件
1.6-专门存放中断服务的C文件
stm32f10x_it.h stm32f10x_it.c
中断服务函数也可以随意的放在其他的地方,并不是一定放在stm32f10x.c
三个库都是ST对出的,有一些区别。