Hardware Abstraction Layer,硬件抽象层
嵌入式的开发,从根本上是基于寄存器的开发。但是寄存器地址多,难于记忆;不同型号间的寄存器地址不同,不方便在不同型号间移植。为了方便开发、增加代码的可移植性,ST公司提供了HAL库,对底层做了封装。
CMSIS,Common Microcontroller Software Interface Standard,通用微控制器软件接口标准
ARM公司设计了ART内核,交由不同的芯片厂商(ST, NXP, TI等)生产芯片。为了让不同的厂家按照统一的标准生产芯片,ARM制定了CMSIS。内容大致定义了:中断、定时器、寄存器。
CMSIS解决的是:内核如何运转,约束的是芯片厂商;而HAL库解决的是:让开发者更容易地使用MCU,由ST公司提供。