CMSIS vs HAL vs Biblioteca de periféricos estándar

Así que estoy cambiando de PIC a ARM y compré una placa de descubrimiento STM32F4. Hasta ahora entiendo que para programarlo puede acceder a todos los registros directamente en la memoria (de manera obvia) y también hay 3 bibliotecas principales que puede usar para facilitarle la vida. Ahora mi...