cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 Development Methodologies

bobdeschambault9
Associate II
Posted on January 06, 2016 at 20:35

Hi,

I would like to understand what development tools/environments are being used for STM32F4xx chips by professional developers.

1. What is the most popular RTOS?

2. What is the most popular IDE?

3. Does anyone really use C++?

4. Is CMSIS compliance important?

5. Who provides the best support for their products?

6. Is LwIP the most widely used TCP/IP stack?

7. Are people using the ST Cube?

I probably can't get exact answers, but if you have some strong opinions on software development on the ST chips, I would love to hear them.

Thanks,

Bob

#development
2 REPLIES 2
Nesrine M_O
Lead II
Posted on January 07, 2016 at 09:51

Hi Bob,

Good questions, it is interesting for us also to know interests of our forum members. So please share your experience.

-Syrine –

Osto
Senior
Posted on January 07, 2016 at 14:48

Dear Bob,

I can answer your questions with my personal experience (30 years). Other persons may have different experience.

When you want to develop STM32 CPUs you should use the STM32CubeMX. This is a software where you can setup the in CPU available peripherals with a graphical interface. This will save you hundreds of hours of design and redesign because you just change the pin in the graphical interface and your code automatically refer to new pin. Or you just enable and set timer values regardless of which bus or clock need ti be activated. When you are novice, its mandatory to use STM32Cube and HAL-Libraries.

But this have also some bad sides. The serial interface HAL libraries are very weak and if you need serial communication, you need to let Cube init the devices but anything else do by yourself.

1.) When you use Cube, Free RTOS is very suiteable. The integration is seamless, so you just write your program. Dont need to implement systick timer or call to any scheduler functions. The description is very weak but you can see that on the freertos.org or better buy from there for ~30$ the manuals. The manuals will help you a lot to come fast forward. They are better than the manual on the web site.

2.) I prefere keil for development because I'm working since 30 years with it. but you need to download the test versions of others like atolic and check which one if your prefered IDE. There are also freeware IDE but I dont use them because its a lot of job to setup them.

With Keil you just make your programm. Compilation and debugging is sesamless and directly supported by Cube. You can see the list of supported IDE's when you start Cube, make a new project and go to the project/settings. then you see for which IDE is the code generated. You should use one of them.

3.) No. You need to check which project need which resources and then decide to use C or C++. In C, you can imagine how much runtime cost a C-Instruction. In C++, referencing a virtual class which is only one line of code could produce 100's of milliseconds of code. I would say that when you use STM32F/L0xx you have to use C because there is not enough Flash, other CPU's depends on project size, CPU speed, available flash and RAM then you need to decide to use C or C++. My projects are 10:1. It means 10 projects C, one project C++.

4.) When you want to reuse the code then its very important else not realy. When you are CMSIS compliant, you can copy part of code to other project and just use it (with some restrictions).

5.) STM Support is through this web page. The support is sometimes very good, sometimes very weak.

6.) LWIP is the code which is supported directly by STM32Cube. So to use anything else need more arguments than is it the best or not.

7.) For novices its strongly recommended. Save you hundreds of hours senseless debugging.

I hope this would help you to find you solution.

Osto