The embedded industry standardize on AGE

Posted by Magnus Unemyr on Aug 2, 2016 10:39:50 AM

The embedded industry has been incredibly fragmented for decades, resulting in inefficiencies and vast duplication of efforts. Small processor core ecosystems had to duplicate commodity "me-too" functionality instead of providing differentiation and innovation. With a plethora of competing CPU cores, the market was full of isolated islands with proprietary microcontroller architectures and their incompatible tool and middleware ecosystems. But finally, the embedded industry is coming of age. In fact, it now standardises on AGE!


As we all know, ARM is taking a stronger and stronger grip on the embedded market and is now the de-facto standard microcontroller architecture. This trend has been strengthened a lot since the introduction of the low-cost Cortex-M0(+) and Cortex-M3 cores and continues with the powerful Cortex-M4 and Cortex-M7 cores for high-end microcontrollers. And of course, for DSP and application processor type of applications, Cortex-R and Cortex-A is being increasingly used as well. ARM is actively pushing for standardisation and portability, through its CMSIS initiative too.

An equally strong paradigm shift has been happening in the embedded tools industry, where the GNU C/C++ compiler and debugger tools (gcc, gdb, binutils, etc.) are quickly emerging as the de-facto standard and default tool solution as well. This trend is valid with both smaller companies who appreciate the better return on investment compared to traditional proprietary tools, as well as multinational corporations who value a tool-chain that exists for almost all CPU architectures in common use, on all relevant host operating systems. Furthermore, the GNU tools help avoid a proprietary lock-in and offers second-source suppliers and support should the need arise.  These benefits are not possible with proprietary tools.

This trend is strengthened further with ECLIPSE as the de-facto standard embedded C/C++ IDE, with its supremely powerful feature-set, a flexible plug-in architecture, and cross-platform operating system support. The large number of corporations and other organizations that help develop the ECLIPSE IDE  - and 3rd party plugin developers - makes it virtually impossible for any embedded tools vendor to keep up with the development pace using a proprietary IDE. Not to mention the productivity gains caused by the familiarity of using the same IDE framework across different product vendors, tool niches, or problem areas.

The emerging trend where the combination of the ARM cores, the GNU tools, and the ECLIPSE IDE is quickly becoming a de-facto standard for embedded tools is likely to continue at an accelerated speed. Commercially polished ECLIPSE IDE's, like Atollic TrueSTUDIO, provides a very compelling tool solution indeed.

The combination of AGE (ARM, GNU, and ECLIPSE) provides a standardized set of technologies, that will benefit embedded developers who will get reduced training costs, improved portability, and better tools at lower prices.

With AGE, embedded developers get a well-known platform with a minimum of migration problems when moving from one project to another. This is particularly useful for developers who start to use the free low-end IDE's, as a commercial high-end tool based on Eclipse and GNU provides a supremely smooth upgrade path (due to the Eclipse->Eclipse and GCC->GCC migration) that is not possible if upgrading to a proprietary compiler and IDE.

And with Atollic TrueSTUDIO, ARM developers can get a commercially polished IDE for free, with an optional upgrade path to a best-in-class tool that offers a lot of additional benefits for professional developers.

It is my belief that embedded developers will do well by adding experience from the GNU tools and the Eclipse IDE to their resumés, as this will be a required expertise in the years to come. The embedded industry is finally coming of AGE.


ARM Development White Paper - TrueSTUDIO


Topics: Embedded Software Development, ECLIPSE, ARM Cortex, GNU tools (GCC/GDB)