For a peripheral PPP(), there is an initialization function in HAL as:
HAL_PPP_Init();
and there is also the following which is a called a callback:
HAL_PPP_MspInit();
In this manual, it says:
HAL_PPP_MspInit() is called from HAL_PPP_Init() API function to perform peripheral system level initialization (GPIOs, clock, DMA, interrupt)
I'm a bit confused with the meanings of initializations here and the terminology.
1-) What type of initialization is HAL_PPP_Init() called in terminology if not low-level? After we compile the code and upload to the uC memory isn't all happening low-level hardware level? I guess HAL_PPP_MspInit sets up registers that's why called system level. So does that mean HAL_PPP_Init stored in memory registers after the upload and HAL_PPP_MspInit is actually executed?
2-) Is the following true about the usages?
low-level initialization = peripheral level initialization = system level initialization