You are probably all too aware of how complex today's software products can be, and the difficulty to ensure no tricky bugs sneak into them. Development tools are no different. The GNU GCC compiler project for example, consist of some 10 million lines of source code. Proprietary compilers from traditional tool vendors are complex software products too.
This is where open-source projects, like the Eclipse IDE or the GNU GCC/GDB compiler and debugger projects really shine. With the source code open for anyone to study and improve, these tools get so many more eyes on the code a proprietary development team just can't come close to match. This helps improve quality and tool stability. Learn more in this blog post!
Software quality can be improved if more developers review the code. This is the foundation of source code review activities commonly performed by the safety-critical software development market, for example in certain automotive and aircraft projects (think anti-lock breaks, airbags and flight control systems).
With more developers studying the source code, more bugs can be detected and resolved, often at an earlier phase during the product's development or lifecycle. This is why open software components, like the Eclipse IDE or the GNU GCC/GDB compiler and debugger, are very stable pieces of software.
And the size of the user-base matters too. Popular open-source software components attracts very large user-bases, on a scale very few proprietary software products can come near. The GNU compiler at large have millions of users, and no ARM compiler have a larger user-base than GCC (possibly, with the exception of the Apple iOS toolchain). The same goes for the Eclipse IDE – it is unlikely any proprietary embedded ARM IDE have more users than Eclipse.
With its massively larger user-bases, the Eclipse IDE and the GNU tools likely gets bugs found faster than any proprietary ARM tool reasonably can. As these free open-source products have so many more eyes studying and improving the source code, they quickly reach maturity and stability.
Do you dare to take the risk of using a proprietary closed-source tool with a relatively small user-base in your next mission-critical development project, or do you want to use a rock-solid and trusted tool with a massive user-base? I'd bet on widely used open-source software.
But there is a downside. Open-source components like the Eclipse IDE and the GNU GCC/GDB toolchain lack many embedded- or ARM- specific functionalities you want and need, in particular in terms of target debugging (SWV/ETM tracing, RTOS-aware debugging, etc.). To leverage the best of both worlds, you can buy a commercially polished and extended ARM Cortex development tool, that is based on Eclipse and GNU. Atollic TrueSTUDIO is a great choice here!
Read this whitepaper to learn more on commercially polished and extended ECLIPSE/GNU tools for ARM Cortex-M: