What is relation between CMSIS libs released by ARM.com, libraries provided by manufacture and GCC ARM libraries ?
What is the exact purpose of each? Which of them Should I use?
What is relation between CMSIS libs released by ARM.com, libraries provided by manufacture and GCC ARM libraries ?
What is the exact purpose of each? Which of them Should I use?
What is relation between CMSIS libs released by ARM.com, libraries provided by manufacture and GCC ARM libraries ?
Nothing, Thare are not any relation among CMSIS and libraries provided by ST and GCC ARM libraries.
What is the exact purpose of each? Which of them Should I use?
ST standard peripheral library(HAL) is for using the peripheral of STM32 (Cortex-M MCU series) microcontrollers. then you just use it for ST's microcontrollers.
CMSIS is for all Cortex-M series. then you can use it for all Cortex-M microcontrollers of all manufactures.
GCC ARM libraries I have never used it but it sounds like it's not a lib. I think you have to use CMSIS or ST HAL.
Thus the priority for using is:
CMSIS > ST standard peripheral library(HAL)
Edit: Please note that as Chris pointed out you aren't obligated to use any of these but it can help you to get rid of learning registers and how to use the registers (or peripherals). also, you can use them and after seeing the configurations of the registers in debug(or the lib), you can do it manually to increase the speed of your program and reduce the size of it(optimization).
Hope this will help you