Please help me understand the relationship / layering between STM32 HAL drivers and Keil drivers.
Keil DFP seems to include STM32 HAL drivers. But they also provide their own drivers, which I assume are CMSIS-Drivers.
Thanks for your help!
Hi ziffusion,
in short:
HAL drivers are provided by STMicroelectronics for their devices/peripherals and use STMicroelectronics defined specification (API).
CMSIS drivers comply to the CMSIS-Driver specification (API).CMSIS drivers can use either HAL drivers or direct register accesses, or a combination of both, depending on the device series.
Both of these drivers, HAL and CMSIS drivers, can use CMSIS-Core functionality.
And in general they are similar in functionality / features aspects.
Just to add one obvious difference I forgot to mention:
HAL drivers are STMicroelectronics specific whereas CMSIS drivers are generic.
Meaning HAL drivers are only available for STMicroelectronics devices whereas CMSIS drivers are available for multiple devices and vendors.