6
\$\begingroup\$

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?

\$\endgroup\$
2
\$\begingroup\$

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

\$\endgroup\$
  • \$\begingroup\$ So, Can I use say ADC of STM32 with CMSIS or GCC Libs, without using ST Libs? I did think they should be used together. \$\endgroup\$ – user62541 Jan 3 '15 at 17:49
  • \$\begingroup\$ @baifrouj Of course! \$\endgroup\$ – Roh Jan 3 '15 at 18:03
  • \$\begingroup\$ @baifrouj I changed the answer. \$\endgroup\$ – Roh Jan 3 '15 at 18:22
  • 2
    \$\begingroup\$ You aren't obligated to use any of these - although many projects do, the programmer's manual shows how to configure the hardware directly. \$\endgroup\$ – Chris Stratton Jan 4 '15 at 4:16
  • \$\begingroup\$ @ChrisStratton Yes, but it make your job simple and easy if you use them and also there are much more sample codes to use them. anyway, I have edited the answer and added your point. Thanks Chris \$\endgroup\$ – Roh Jan 4 '15 at 8:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy