I notice that ARM now has an LLVM compiler. It differs from their GCC compiler in that the customer must now pay a lot of money for the LLVM compiler while their GCC compiler is free. Must be the non-GPL license loop hole.
I notice that ARM now has an LLVM compiler. It differs from their GCC compiler in that the customer must now pay a lot of money for the LLVM compiler while their GCC compiler is free. Must be the non-GPL license loop hole.
I noticed the same! Besides that I'm wondering what the actual code generation improvement is compared to GCC and how long it will take before support for LLVM becomes really mainstream. There is a tendency for some people to declare stuff obsolete because there is something new on the horizon but fail to see the (potential) problems early adopters have to deal with. I don't doubt LLVM looks better under the hood (cleaner sourcecode) but for me as a compiler user I only really care about the output.
"Must be the non-GPL license loop hole."
Choices are always good.
Just spent another evening messing around with another Eclipse-based IDE. Why do I put myself through this torture?
Are there any ARM IDEs based on NetBeans? That would be so much better than Eclipse, based on my experience doing non-embedded development with it and my experience with MPLAB X.
GCC + Whatever you're comfortable with, all the way. This way, I have the same development environment for STM32 (F0->F7), Nordic nRF51, TI CCxxxx, Ralink MIPS, ESP8266, etc..
No commercial IDE even comes close to offering something similar.
What IDE do you use?, eclipse?
Do you have any links/startingpoints etc, on how to set up an environment with multiple toolchains?
When installing vendor specific solutions, the computer gets littered with various versions of IDE's, toolchains everywhere and so on, would be nice to have one setup at one place so I can move things around, now, if I move anything, I guess I would break everything..
Or explain what the problem is with Eclipse...
Or explain what the problem is with Eclipse...
It's too bloody sluggish. Opening up a workspace takes a long time. Navigating the UI is sluggish. Downloading code to a board takes too long. Single-stepping code takes 1-2 seconds per step. It all adds up to a poor experience.
And it's not just performance issues. Eclipse has a messed up workspace/project paradigm that's needlessly complicated, poorly designed perspectives, metadata that gets out of sync easily--I could go on and on.
I have used MPLAB X extensively. It's based on NetBeans and it's much faster than Eclipse and without as many of Eclipse's UI quirks. That seems to me to be a better option than Eclipse. Another option is IntelliJ, which is also much nicer than Eclipse and is open source.
What I'm trying to say here is that there are viable alternates to Eclipse (NetBeans and IntelliJ) to base an IDE on (assuming insufficient resources to write an IDE from scratch in a proper language such as C++). Too many companies seem to take the path of least resistance and go with Eclipse, despite its shortcomings. I think the market is ripe for a good alternative.
Or explain what the problem is with Eclipse...
It's too bloody sluggish. Opening up a workspace takes a long time. Navigating the UI is sluggish. Downloading code to a board takes too long. Single-stepping code takes 1-2 seconds per step. It all adds up to a poor experience.
As I wrote before: the default theme Eclipse uses can be very slow. Changing the theme made a world of difference to me.
And it's not just performance issues. Eclipse has a messed up workspace/project paradigm that's needlessly complicated, poorly designed perspectives, metadata that gets out of sync easily--I could go on and on.
The workspace/project paradigm is just fine but it is intended to work on very large projects (workspace) consisting of multiple sub-projects (projects) so it may be overkill for a single microcontroller project. In my use of Eclipse I have VHDL code, PC code and microcontroller code in one workspace.
Metadata getting out of sync is a matter of tweaking the file monitoring settings in Eclipse.
OTOH: nothing helps if your PC is extremely slow. Indexing a large project with lots of includes is going to take a while if you have a slow hard drive.
I notice that ARM now has an LLVM compiler. It differs from their GCC compiler in that the customer must now pay a lot of money for the LLVM compiler while their GCC compiler is free. Must be the non-GPL license loop hole.
Must? No. Maybe? Perhaps. One can charge an arm and a leg for GPL licensed software and give non-GPL software available for free. So, you should probably consider alternative explanations. There are a few.
So what is the industry standard IDE for ARM MCUs today? I mean, what the professionals use for designing products.
CodeBlocks IDE, which is written in GCC, is quite fast. Our compiler loads and compiles quite fast as well. We could have gone with Eclipse when we were deciding, but the speed issue weighs heavily.
So what is the industry standard IDE for ARM MCUs today? I mean, what the professionals use for designing products.
We are using Keil for all of our products in the company, have been doing so for 12 years.
Using it on ARM mostly, but also 805x in the earlier years.
Same for my own hobby projects, always using Keil
So what is the industry standard IDE for ARM MCUs today? I mean, what the professionals use for designing products.
Keil and IAR. Both of these are in the USD$4-5K range, however, so they are not used much by hobbyists unless the code size limitation imposed by the free versions isn't an issue.
I notice that ARM now has an LLVM compiler. It differs from their GCC compiler in that the customer must now pay a lot of money for the LLVM compiler while their GCC compiler is free. Must be the non-GPL license loop hole.
Must? No. Maybe? Perhaps. One can charge an arm and a leg for GPL licensed software and give non-GPL software available for free. So, you should probably consider alternative explanations. There are a few.
This is exactly what Microchip does with their PIC16/32 compilers - for an extra $1k you gain back the optimizer settings in GCC. Dubious at best.
So what is the industry standard IDE for ARM MCUs today? I mean, what the professionals use for designing products.
Last firmware job I had used a parameterized meta builder (which I overhauled a few times): it kicked out project files for IAR as well as Makefiles, depending on the compiler in use for that product variant. There was a big precedent for code reuse in the same repository line, and we had large scale automated tests to avoid regressions on all those variants. There were only 5 firmware developers.
Used Emacs and SublimeText as editors, and only used IAR for debugger access.
This is exactly what Microchip does with their PIC16/32 compilers - for an extra $1k you gain back the optimizer settings in GCC. Dubious at best.
Since their compilers are based on GCC, there's nothing stopping anyone from downloading the source from the Microchip site, removing the licence manager code, and compiling it.
OTOH: nothing helps if your PC is extremely slow. Indexing a large project with lots of includes is going to take a while if you have a slow hard drive.
Let's see... My development machine is an 8-core Core i7 Haswell-E box with 32 GB of RAM. The C: drive, where Java and Eclipse reside, is two SSDs in RAID-0. The graphics board is an Nvidia GTX 980Ti.
Do you think this machine is fast enough to run Eclipse?
Nope it's not. All Eclipse aficionados that claim that it's because your computer is not on par, are just experiencing cognitive dissonance.
And I would have recommended CrossWorks, but lots of other already have done here.
Just a few words about their licensing scheme:
- there is now a free license with limited output size
- if you own a named license you are able to run CW on all your own computer and on all the three systems (OS X, Linux and Windows) without restrictions
- they provide both GCC and CLang based compiler
- they provide their own C library (in an open source manner)
- crossword is extensible, you don't have to install all the existing library and can do it on the fly
- no need to Internet access to validate every days that you have the right to use the software
- support is done really quickly and in a really efficient way (I had a really good contact with them)
- and the full price for commercial is only $1500 which compared to all other commercial packages, really cheap. ($150 for a personal non commercial license)
Nope it's not. All Eclipse aficionados that claim that it's because your computer is not on par, are just experiencing cognitive dissonance.
I am using eclipse professionally on large software projects. When I say large I mean really large, not measly binaries with just a few tens of MBs, and it works just great. Same goes when I use it for small hobby LPCXpresso M0 hobby projects on a low end 11" Macbook Air.
YMMV.
I am using eclipse professionally on large software projects. When I say large I mean really large, not measly binaries with just a few tens of MBs, and it works just great. Same goes when I use it for small hobby LPCXpresso M0 hobby projects on a low end 11" Macbook Air.
Yep. YMMV. I've often found that people who use Eclipse on embedded projects think it works great because they don't have anything to compare it to.
I use Eclipse Luna + plug-ins for hobby development on windoze XP. Underclocked CoreDuo 750MHz with 3GB of RAM.
As for stepping speed of Eclipse OP whinges so much about, I have done Hello World project for ARMv7M (STM32L-Discovery) and when I press F6 continuously:
printf("Eclipse Luna stepping on ARMv7M + ST-link/V2\n");
for(int iterate=0; iterate != 100; iterate ++){
volatile int step_count =0;
step_count+=1;
step_count+=2;
step_count+=4;
}
it does 16 full loops under 30 seconds (each loop has 4 steps). So that is over two steps per second.
Mind I did not state the are no faster stepping IDEs but OP's 2s sounds impossible (or OP has messed up something badly with setup).
How can you compare an "hello world project" with less than 10 lines of code, with a Multi GB project?
I've tryed Eclipse in the different company I have worked to select an IDE, it never has been able to load the full project on each, and on one of these jobs it was nothing more than the Linux kernel...
I am using eclipse professionally on large software projects. When I say large I mean really large, not measly binaries with just a few tens of MBs, and it works just great. Same goes when I use it for small hobby LPCXpresso M0 hobby projects on a low end 11" Macbook Air.
Yep. YMMV. I've often found that people who use Eclipse on embedded projects think it works great because they don't have anything to compare it to.
I would not trade Eclipse for Freescale's old Code Warrior, Keil uVision, IAR's Workbench or Visual Studio. Unfortunately there can be several reasons for Eclipse to run slow so you really need to investigate instead of just bashing. Eclipse is (among) the most used IDEs in the world; do you really think that so many people will want to use an IDE which is slow? For example Panda anti-virus made Eclipse take 2 minutes to compile a project which otherwise took 20 seconds.
@Godzil: the Linux kernel does take a while to index and you have to configure Eclipse to use more memory but it can handle the Linux kernel just fine! Been there, done that.