Hi all,
As a C++ programmer I would like to start using it in the embedded world. For that I wish to be familiar with a popular IDE on which I can write projects for ARM-based MCUs, from different vendors, be it of ST or others, and get help when running across a problem.
I've some titles in mind such as: IAR and Keil. What are your ideas, please?
Thanks.
Hello Ary,
being the product manager of Keil MDK, I'm of course a bit biased, but I think you will like MDK because of the Arm Compiler 6 that we're using under the hood. It supports most of the latest features of C++ and it C++ libraries are based on the LLVM libc++ libs (refer to Arm Compiler). Also, we have excellent support in MDK for STMicroelectronics devices and a well-defined interface to their own configuration tool, STM32CubeMX.
Be aware that the deeply embedded pace is based on C though. You will find lots of C code, but not so much of C++, so you will need to make the best out of both worlds.
Kind regards,
Christopher
Ary said:IAR and Keil
Both of those are paid-for commercial products - do you have budget for that?
Both offer free evaluations for you to try out (with certain limitations, of course)
Note that Keil has a free unlimited version specifically for STM32 Cortex-M0 parts: https://www2.keil.com/stmicroelectronics-stm32/mdk
Some popular "free" (as in beer) IDEs are
Note that most chipmakers' "own" IDEs are based on Eclipse
As a beginner, I would suggest that you start with the chipmaker's "own" IDE: getting a "generic" IDE properly set-up, installed, and configured can be a non-trivial task - especially when it comes to debugging.
More than just an IDE, there's also mbed: https://os.mbed.com/
I mean also that Eclipse is a really good one to start with getting good process in work
A agree that Eclipse is great tool to use - but to set it up from scratch is very far from trivial.
There are people whose entire job is setting up & configuring Eclipse-based solutions!
It's delightful that your product supports most of the latest feature of C++, since advanced C++ will flip over C soon. Using C for embedded is mainly a habit and old habits die hard so we need some more time to see much of code in C++. Of course C++ is now everywhere and is much higher to be compared to C. Anyhow, thank you for your reply. I think you consider Keil_MDK_5.34 a good choice for me. Right?
Andy Neil said:Both of those are paid-for commercial products - do you have budget for that?
Andy Neil said:Some popular "free" (as in beer) IDEs are
I have budget, yes. So if we remove the budget restriction, which do you consider more popular and better for me, please?
One thing about the reason why I asked this question and my experience with some other IDE:My current arm board is STM32F10C8T6 (Blue Pill) and have also ordered a STM32F411 Nucleo-64 one abroad, which I will receive about a month from now. So I started working on the blue pill using STM32Cube IDE to blink the its LED as my first embedded programming project. The IDE looks modern and is said to be popular and very good especially for ST MCUs. (I.e., products of the same family!)The problem with that IDE which made me look for another IDE is that it seems to be very proprietary. While it sees my board and I can upgrade the firmware using it, I neither can debug nor run my project on the board, and will face the error shown in the screenshot below when debugging/running. Although I tested "many" solutions to work it out but no success. It's only possible to build the project. :(For blinking the LED I had to open and flash the built binary file onto the board using STM32 ST-LINK Utility. That's why I'm going to select another IDE and hopefully won't see that problem there. PS: I wish the thread weren't moved to the Keil forums since it's more general than Keil and is more suitable for the Embedded section! :|
You need to take problems with ST's tools to the ST forum.
Ary said: I wish the thread weren't moved to the Keil forums since it's more general than Keil and is more suitable for the Embedded section!
You initially posted it in some entirely inappropriate forum - I guess it got moved to the Keil forum as you specifically mentioned Keil, and the first reply was all about Keil.
Andy Neil said:You need to take problems with ST's tools to the ST forum
There's solely a forum for the Keil IDE on this website out of all other IDEs!
Andy Neil said:You initially posted it in some entirely inappropriate forum
Why was it some entirely inappropriate forum?
Andy Neil said:I guess it got moved to the Keil forum as you specifically mentioned Keil, and the first reply was all about Keil.
I didn't mention Keil to be sure to pick it out, out of all other IDEs; I just said what was in mind about two IDEs and asked others to suggest one (amongst all IDEs) based on my circumstances and purposes. If it was my final choice, there wouldn't be a need to ask the question! Still I can get useful replies for my question if the thread goes back to the general forum I believe. Please get it back there. I'm not comfortable with this Keil forum because of the reasons I mentioned. Yet, I'm not completely sure what IDE to start with now.
Ary said:There's solely a forum for the Keil IDE on this website out of all other IDEs!
Errr ... the clue is in the name:
IIRC, You originally posted in the 'Simulation Models' forum - which was definitely wrong
I have asked the community owner to move the thread, as your original forum was definitely not the right place. Unfortunately, we have no generic IDE forum, so I think that this is the best one you can get for the moment. But we can also move it to the general "Embedded" forum.
Regarding a test drive with Keil MDK, I'd suggest to download the latest version (v5.34) and either try the MDK-Lite version (free, 32 kB code size max) or test the MDK-Professional version by getting a 30-day trial license here: https://www.keil.com/MDKEvaluationRequest/.
Christopher Seidl said:we can also move it to the general "Embedded" forum
I think that would be the best place - as it's not specific to Keil.
Christopher Seidl said: But we can also move it to the general "Embedded" forum.
"Yes, please do that."Still I'm not sure about the IDEs to select one between them. I appreciate your point of view about things that are important for me and your suggestion on Keil, but I like to hear different people's perspectives too, those who are embedded programmers and have experienced the IDEs all. That's why the Embedded forum was chosen by me first. I will ask my upcoming questions in the Keil forum if I choose that IDE for my purposes.
Ary said:I will ask my upcoming questions in the Keil forum if I choose that IDE for my purposes
But only the ones that are actually about the IDE / toolchain.
Again:
Ary said:I'm not sure about the IDEs to select one between them
IDE preference is very much a personal thing - so just try a few to see what you like.
At the end of the day, they all do the same thing - and in pretty similar ways.
As you're already a C++ programmer, you must have some ideas about what you like & dislike in an IDE.
An advantage of using the chipmaker's own IDE is that you have a one-stop-shop for everything - the chipmaker knows all about their chips and all about their IDE, and all about their supporting HALs, SDKs, Middlewares, DevKits, Examples, Debuggers, etc, et.
With a 3rd-party IDE, you will always run into the problem of "is this a Keil question or is this an ST question", etc...
The big thing that's different between "embedded" IDEs and "desktop" IDEs is getting the programming and debugging set up and working, so this is a key thing that chipmakers will focus on getting right in their "own" IDE.
Again, most (the vast majority) of chipmakers' own IDEs are Eclipse-based - so they do have a lot in common.
Eclipse is probably the most widespread "free" IDE
I would say that Keil is probably the most widespread commercial IDE. As Keil is an ARM company, they should be really well placed for the ARM-specific support.
Of the commercial IDEs, Keil does seem to be the most widely supported by chipmakers
A key difference between "free" IDEs and the commercial ones is that the free ones tend to be built on general-purpose stuff - GCC, Eclipse, etc - whereas the commercial ones are generally built from the ground up specifically for embedded use.
Of course, with a commercial IDE, you get professional support; with a "free" IDE, you have to rely on the community.