STM32: Diferencia entre HAL_xxx_Init () y HAL_xxx_MspInit ()

1

Al usar la HAL (Biblioteca de abstracción de hardware) para cualquiera de los microcontroladores STM32:

Para un periférico dado, ¿por qué tiene que llamar un HAL_...init() , así como un HAL ..._ MspInit ( ) : ¿por qué se separan varios "inits"?

    
pregunta m00wn

1 respuesta

3

El manual del usuario de ST UM1725 - Descripción de los controladores HAL y LL STM32F4 , consulte las páginas 61 a 63, da una explicación:

  

La inicialización periférica se realiza a través de HAL_PPP_Init () mientras que
  La inicialización de recursos de hardware utilizada por un periférico ( PPP ) se realiza durante esta inicialización llamando a MSP función de devolución de llamada HAL_PPP_MspInit () .
  La devolución de llamada MspInit realiza la inicialización de bajo nivel relacionada con los diferentes recursos de hardware adicionales: RCC, GPIO, NVIC y DMA.

(MSP: M CU S upport P ackage)

y

2.12.2 Inicialización global de HAL:

  

HAL_Init (): esta función debe llamarse al inicio de la aplicación para
  - inicializar el caché de datos / instrucciones y pre-buscar cola
  - configure el temporizador SysTick para generar una interrupción cada 1 ms (según el reloj HSI) con la prioridad más baja
  - establecer la agrupación de prioridad en 4 bits de prioridad
  - llame a HAL_MspInit () función de devolución de llamada del usuario para realizar inicializaciones a nivel del sistema (Reloj, GPIO, DMA, interrupciones). HAL_MspInit () se define como "débil" vacío   función en los controladores HAL.

    
respondido por el m00wn

Lea otras preguntas en las etiquetas