Atollic GNU Tools in Embedded Development
Atollic GNU Tools in Embedded Development
COPYRIGHT NOTICE
©Copyright 2012-2015 Atollic AB. All rights reserved. No part of this document may be reproduced
or distributed without the prior written consent of Atollic AB.
TRADEMARK
Atollic, Atollic TrueSTUDIO, Atollic TrueINSPECTOR, Atollic TrueVERIFIER and Atollic TrueANALYZER
and the Atollic logotype are registered trademarks owned by Atollic. ECLIPSE™ is a registered
trademark of the Eclipse foundation. All other product names are trademarks or registered
trademarks of their respective owners.
DISCLAIMER
The information in this document is subject to change without notice and does not represent a
commitment of Atollic AB. The information contained in this document is assumed to be accurate,
but Atollic assumes no responsibility for any errors or omissions. In no event shall Atollic AB, its
employees, its contractors, or the authors of this document be liable for any type of damage, losses,
costs, charges, claims, demands, claim for lost profits, fees, or expenses of any nature or kind.
DOCUMENT IDENTIFICATION
ASW-WPGNU February 2012
REVISION
First version
Second version Update April 2015
ii | P a g e
List of Contents
Contents
Abstract ...................................................................................................... 1
Introduction ................................................................................................ 2
The GNU tools ............................................................................................ 4
The GNU make utility (make) ............................................................................ 4
The GNU C/C++ compilers (gcc and g++) .......................................................... 5
The GNU macro assembler (gas) ....................................................................... 7
The GNU linker (ld) ............................................................................................ 7
The C/C++ runtime and math libraries.............................................................. 7
The GNU librarian (ar) ....................................................................................... 8
Other binary utilities ......................................................................................... 8
The GNU debugger (gdb) .................................................................................. 9
Practical considerations ........................................................................... 10
Building the GNU toolchain............................................................................. 11
Obtaining the correct source code trees ......................................... 11
Applying patches .............................................................................. 12
Create a working build environment ............................................... 12
Configuring the build system ........................................................... 13
Building the GNU tools..................................................................... 13
Testing and quality assurance.......................................................... 13
Optimizing the runtime libraries...................................................... 16
Package the toolchain for deployment............................................ 16
Using gcc for embedded development ........................................................... 17
Start-up code and example projects ................................................ 17
CMSIS ............................................................................................... 18
Integration with the Eclipse IDE....................................................... 18
Using gdb for embedded debugging ............................................................... 19
Support for JTAG probe debug hardware ........................................ 19
iii | P a g e
Copyright Notice
iv | P a g e
List of Tables
Tables
No table of figures entries found.
v|Page
Abstract
ABSTRACT
In the past decade, there has been an unmistakable trend in the embedded industry
towards the use of GNU build tools and open-source build management tools such as
ECLIPSE™. GNU tools and the Eclipse IDE are freely available, of high quality, and are
becoming the de-facto standard development environment in the software industry.
This white paper will focus on considerations of using the GNU C/C++ compiler and
associated tools for embedded systems development, for ARM-based projects and
together with the ECLIPSE™ integrated development environment.
The information outlined in this white paper will give the reader a better understanding of
the advantages of using the GNU compiler and debugger tools, as well as familiarity with
the areas where the open-source solutions have limitations in embedded development
work. It will also enlighten the readership as to the extent of effort required to configure,
build, integrate and test an Eclipse/GNU tool solution along with ancillary components that
are incorporated for productivity enhancement.
1|Page
White paper
INTRODUCTION
The GNU compiler is one of the most widely used C/C++ compilers in the world. It is the
basic build tool for building all embedded Linux and Android systems, as well as all desktop
or server Linux operating systems and their applications. The GNU compiler is also used to
build many commercial real-time operating systems, such as products from Enea®, QNX®,
WindRiver® and many more.
GNU tools are being constantly improved upon by both commercial companies and private
individuals. The GNU compiler is widely disseminated in academia as a teaching tool, and
as the subject of computer science research projects. The expertise and enhancements
developed there quickly become state-of-the-art compiler technology that finds its way
into practical GNU tools use, and is of enormous benefit to real-world developers. Few
companies, if any, are by themselves able to keep up with the pace of the collaborative
development efforts done on GNU tools by a large amount of individuals, companies and
academic research institutions.
The GNU toolchain is open-source, and thus freely available. It is available for most
microprocessor architectures, including the different ARM processor cores. This makes it
an ideal starting point for embedded software development. However, prospective GNU
tools users must weigh a number of critically important factors before deciding whether or
not GNU and open-source tools are the best option for their particular situation. Among
these are cost, time, and requirements for capabilities that pertain to the software build
process.
Do I want to perform system analysis and real-time tracing using the ARM Serial
Wire Viewer (SWV) technology?
Can I use the hard fault crash analysis capabilities of Cortex-M cores?
And so while the GNU tools are freely available, and can be built from scratch by any
individual or organization with the right skills and enough available time, this may not be
the best strategy for professional development teams.
2|Page
White paper
Additionally, commercially offered products, like Atollic TrueSTUDIO, typically gives a lot of
extra features that professional developers value and use productively; such as project
wizards, readymade example projects for hundreds of ARM devices and evaluation boards,
advanced debug features such as peripheral register (SFR) viewers and Serial Wire Viewer
(SWV) real-time event- and data tracing, ETM/ETB instruction tracing, hard fault crash
analysis, RTOS kernel aware debugging, as well as Flash support and integration with JTAG
probe debug hardware, such as Segger J-Link.
Compared to similar commercial tools with proprietary compilers, you typically get a
matching toolchain at a considerable lower price if you decide upon a commercially
packaged tool that is based on the GNU toolchain and the Eclipse IDE. And you are joining
the strongly emerging de-facto standard at the same time.
3|Page
White paper
Make utility
C/C++ compilers
Assembler
Linker
Librarian
Debugger
While not part of the GNU toolchain as such, other software are often used in combination
with the GNU tools, such as an Eclipse-based IDE, and gdbservers that enables the GNU
debugger (gdb) to connect to embedded JTAG probe debug hardware required to debug
embedded targets.
The make utility and associated makefiles are perfectly usable, but many professional
development teams of today prefer a tool-managed build process that does not require
the manual maintenance of a makefile. This is a considerable time-saving feature because
the IDE is managing the makefile on behalf of the developer. This capability is offered in
Eclipse-based IDE’s, such as Atollic TrueSTUDIO.
4|Page
White paper
The GNU C/C++ compilers have a number of extensions that make them well suited for
embedded development, including fine-grained control using many command-line options,
inline assembly, and compiler #pragmas that helps control the compiler behavior in great
detail. Furthermore, the GNU compilers have extensive support for a large number of
target processors and language dialect standards.
Generates information for linker optimization (dead code & data removal)
5|Page
White paper
The GNU compilers support almost all CPU architectures in common use, such as Intel x86,
Renesas SH and RX, PowerPC, MIPS etc. This white paper is focused on ARM processors, so
it should be mentioned that the GNU compilers have excellent support for the ARM cores,
including for example:
ARM7™
ARM9™
Cortex™-M0
Cortex-M0+
Cortex-M1
Cortex-M3
Cortex-M4
Cortex-M7
Cortex-R4
Cortex-R5
Cortex-R7
Cortex-A5
Cortex-A7
Cortex-A8
Cortex-A9
Cortex-A15
Cortex-A17
Cortex-A53
Cortex-A57
Cortex-A72
The GNU C and C++ compilers are open-source, but their licenses (GPL) do not affect the
application you build with them. In other words, the GNU compilers and associated
libraries are open-source, but applications built using these tools can be as proprietary or
closed-source as desired.
6|Page
White paper
Assembles CPU specific assembler source code to a format suitable for linking
Links object files and pre-compiled library files into a binary ELF file
Removes unused C/C++ functions and code sections (dead code removal)
Removes unused C/C++ variables and data sections (dead data removal)
C runtime library
7|Page
White paper
C math library
The most commonly used C runtime library for use in embedded systems is newlib, while
the most common C++ runtime library is stdlibc++. These compiler libraries are open-
source, but their licenses do not affect the application you develop. In other words, the
GNU compilers and associated libraries are open-source, but applications built using these
tools can be as proprietary or closed-source as desired.
In addition to newlib, a somewhat smaller version called newlib nano is also available.
Additionally, Atollic provides a super-tiny implementation of printf()-styled functions,
making use of only about 1KB of code size, in the Atollic TrueSTUDIO IDE.
Convert application binary ELF-files into other formats (Intel Hex or Motorola S-
Record format) better suited for flash loading using external flash loading
equipment
8|Page
White paper
Script language
The gdb debugger supports over 800 commands that can be typed on its command line.
Additionally, gdb commands can be scripted using a script language that supports
evaluation of mathematical expressions, loops and conditional execution. This facilitates
for automation of advanced debug tasks.
Unfortunately the gdb debugger by itself is not enough to create a productive debug
solution for embedded ARM targets. It does not handle DRAM or Flash support or JTAG-
probe integration as-is.
Nor does it handle device specific debug features required by professional developers, like
providing a graphical IDE debugger, peripheral register (SFR) visualization, real-time event-
and data tracing using the ARM Serial Wire Viewer (SWV) technology, instruction tracing
using the ETM/ETB technology, etc. It also does not include a Cortex-M hard fault crash
analyzer or RTOS kernel aware debugging. These issues and solutions to them will be
discussed in detail in the chapter below.
9|Page
White paper
PRACTICAL CONSIDERATIONS
The GNU tools have come a long way in recent years, and are now of very high quality and
are rapidly being deployed in more and more large-scale projects. For example, Atollic has
been involved in a mission-critical development project in the defense industry with over
100 developers, all using the GNU compiler. Even though the GNU tools as such are very
good, there are still a number of factors to consider.
If the choice is made for a development team to use GNU tools, then the important
question becomes whether it is better to download and build the GNU tools in-house, or
buy a readymade and tested commercial product that includes the GNU tools.
Additionally, there are many practical considerations that need to be weighed before
making the build-or-buy decision. Some of the relevant factors are:
Is there sufficient expertise to configure and build the tools for embedded
applications development?
What level of testing is required by the user to ensure that the tools will meet the
organization’s criteria for accuracy, usability, and reproducibility?
How much time is available for downloading, configuring, building, testing, and
integration of components such as gdbservers, flash programmers and other
productivity tools?
o Project wizard with out-of-the-box support for your device, board and
JTAG probe
o Real-time event- and data tracing using Serial Wire Viewer (SWV)
10 | P a g e
White paper
o Etc
In short, an organization must have realistic expectations about the amount of time and
expertise that is required to “roll your own.” There is a basic philosophical and practical
question that must be answered, which is whether or not it is cost effective to mimic the
actions of a professional tools development company that spends tens of thousands of
engineering hours to perfect similar tool solutions, or if the user wishes to get a tool
solution that is productive immediately, and focus time and resources on making their
own product unique and ready for market.
Also be aware of what a version number means in the world of GNU tools. A specific
version number of a tool, say the gcc compiler, applies to the source code. Dependent on
11 | P a g e
White paper
the build configuration, the gcc compiler of that version number can be built in many
different ways with vastly different feature-set and thus behavior.
APPLYING PATCHES
In addition to the full source code tree of a specific version number, there might be a large
amount of patches available from various sources, which fixes bugs or adds features or
other improvements. Some of these might be of importance to you, and some do not.
When building the GNU toolchain from scratch, it is important to be aware of what
patches are available from various sources, and decide upon if you need to add them to
your tools build or not. Atollic for example have created and applied many patches in
various GNU tools to correct problems or add new features that is relevant to embedded
ARM developers. Atollic also works closely with ARM Ltd. to help improve the GNU tools
for ARM processors, for example by sharing patches or bug reports between the two
companies.
1. Build the GNU toolchain targeting ARM, for running on a Linux PC host. This will
be used to build the ARM runtime libraries.
2. Build the GNU toolchain targeting a Windows PC, for running on a Linux PC host.
This will be used to build the GCC for ARM compiler as a Windows executable file.
The process of using one system to build a compiler that targets a second system, and runs
on a third system, is called a Canadian build. To build a GNU ARM compiler that runs on
Microsoft Windows, a Linux computer is typically used, thus leveraging a Canadian build
system.
Additionally, the GNU tools were originally designed to run on Unix-styled operating
systems, like Linux. This causes some additional problems when building the GNU
compilers for execution on Microsoft Windows host PC’s. When building the GNU tools to
run on Windows based host PC’s, there are two options:
If you build the GNU compiler for use with Cygwin (a UNIX emulation environment on
Microsoft Windows); the GNU compiler for ARM cannot be run outside the Cygwin
environment. The Cygwin emulator must thus be installed in all Windows computers
where the compiler shall be run. If you build the compiler using MingW, the compiler will
be a self-contained Windows executable file that that can be executed in any Windows PC
without additional software being installed.
12 | P a g e
White paper
It is easier to build the GNU toolchain for use with the Cygwin emulation environment, but
also less convenient for the users of the tools. Vice versa, it is more difficult to build the
GNU tools into self-contained Windows applications using MingW, but it is obviously more
convenient for the users of the toolchain.
Atollic and other commercial suppliers of quality-assured GNU toolchains use fully
automated build systems that builds the compiler and debugger toolchain automatically.
Atollic builds our GNU toolchains for use with MingW, to provide an easy-to-use toolchain
with an “out-of-the-box” experience for our customers.
All runtime libraries must be built with required combinations of relevant code generation
options, such as different CPU core variants, big- or little endian, software- or hardware
floating point support, ARM- or Thumb mode, optimization for speed or code-size, etc.
These different library-builds are commonly called multi-libraries, or “multilibs”.
Compilation tests that ensure that legally formed programs do compile, and that
malformed programs do not compile or at least generate appropriate warnings.
Execution tests where test cases are compiled, downloaded and executed in
target hardware to verify the correctness of the behavior of the generated
machine code on each supported processor core or instruction set.
Testing that the compiler generated output file can be loaded into the gdb
debugger, and that the debugger works as expected with the generated ELF
binary files.
13 | P a g e
White paper
Testing that the Eclipse debugger IDE works as expected when wrapped over the
new gdb debugger build, using ELF files generated by the new gcc compiler.
Additionally other test suites, like the Plum-Hall language conformance test suites
or the EEMBC performance benchmark test suites might be run to test language
standards compliance or performance of the generated code.
A number of test suites are available to aid in many of the above test scenarios. The GNU
compilers, runtime libraries, binary utilities and the GNU debugger all have regression test
suites, which are based on the DejaGNU test framework. The DejaGNU test system uses
the Expect programming language, which is based on Tcl. For example, the regression test
suite for the C and C++ compilers alone contains some 100.000 test cases.
To make DejaGNU and the regression test suites to work in your test environment, board
configuration file(s) must be developed for the target board(s) being used by the test
system. Considerations is how to make the test system connect to the target board using a
JTAG probe, make them run in the embedded target, etc.
This test suite may have to be re-run many times, to test the compiler on several different
host operating systems, to test the generated machine code on various CPU core variants
or instruction sets, such as various cores in the ARM7, ARM9 or Cortex-M product families.
Moreover, the compiler regression test suites may have to be re-run for different
optimization or code generation options, or using other command line option
combinations that modify the compiler behavior.
In practice, the need for regression testing becomes multi-dimensional, and quickly
explodes in number of permutations. For example, even if the compiler shall only be used
on Microsoft Windows hosts, it might still have to be tested many times on different
versions of the operating system.
Etc.
Matters quickly get worse if different service packs or several operating system variants
(Home Premium, Professional, Ultimate, etc.) should be taken into account. The same
applies if you must support Linux or MacOS X host operating systems too.
Typically, a compiler toolchain is not built to support only one CPU core, but a number of
CPU cores with different instruction set architectures or variants. Even if you don’t plan to
14 | P a g e
White paper
support CPU architectures from other vendors, like PowerPC, MIPS or x86, there might still
be a number of different CPU core variants to support and test.
ARM7 (ARMv4t)
ARM9 (ARMv5te)
Cortex-M3 (ARMv7-M)
Cortex-M4 (ARMv7E-M)
Cortex-R4(F) (ARMv7-R)
Etc.
Regression tests on the supported CPU cores might have to be done on both big- and little
endian systems, using software emulated floating point as well as hardware accelerated
floating point implementations, etc.
And finally, compiler generated code will likely have to be tested using a number of
different combinations of compiler settings, such as different optimization levels or other
command line options that modify the code generation.
Etc.
It can easily be understood that the number of permutations that need to be re-tested
using the full regression test system explodes quickly. As one re-run of the compiler
regression test suite may take up to a day or more of machine time to execute on one
host-OS for one target architecture, testing time may become substantial if the test suite
have to be re-run often in interactive development (applying or testing more patches) or if
it has to be run many times for a large number of different test permutations.
15 | P a g e
White paper
A computing farm with a grid of test computers might well be needed for efficient
regression testing of the tool suite if a large number of permutations (such as host O/S,
CPU core variants, different command line options) shall be tested properly. This is not
easily done without also building test scripts that drive such testing automatically. Matters
are complicated further by having different test runs using different test hardware, such as
different hardware boards (ARM7, ARM9, Cortex-M4, big- and little- endian variants, with
or without hardware floating point, etc.).
All these problems are typically taken care of when buying a commercial distribution of
embedded tools that is based on the GNU toolchain, such as Atollic TrueSTUDIO.
For this reason, commercial vendors of GNU tools often provide improvements to the
runtime library. Atollic for example, provides code-size optimizations of the runtime library
with its Atollic TrueSTUDIO product.
In embedded systems, the C runtime library often needs to be remapped to the underlying
O/S or H/W platform, such that function calls like printf() is remapped to peripherals like
UART channels or LCD displays, fopen() and fclose() is remapped to API calls to an RTOS or
Flash file system, etc. Newlib supports this kind of remapping in embedded systems.
For C++, it is advisable to avoid using Runtime type information (RTTI) and exceptions, due
to code size or runtime predictability.
If you plan to use the GNU command line tools integrated into a graphical IDE like Eclipse,
there is additional work required to configure Eclipse to use the new GNU toolchain, and
perhaps create Eclipse plug-ins (written in Java) to provide for graphical configuration of
build options, like supporting certain compiler or linker command line options, etc.
Furthermore, considerations have to be made regarding bundling of 3rd party gdbservers,
and the legal implications thereof.
16 | P a g e
White paper
Atollic package both the GNU toolchain and a much-extended Eclipse IDE into a Windows
installer where all components, finely tuned to work well together, is installed with a few
simple mouse clicks.
Jump to main()
Writing a sample main() application that can be used to exercise the hardware
and test the debug connection
Commercially offered GNU toolchains, such as Atollic TrueSTUDIO, contain built-in support
for the above items, providing out-of-the-box support for thousands of microcontroller
device models and evaluation boards. Getting readymade startup logic that works out-of-
17 | P a g e
White paper
the-box for your evaluation board can alone justify the cost of buying a commercially
offered GNU toolchain compared to make one yourself and handle this from scratch.
CMSIS
In recent years, ARM Ltd. has started to standardize how the lower-level software shall be
written, using its Cortex Microcontroller Software Interface Standard (CMSIS). CMSIS
standardize things like:
It is recommended to follow the CMSIS standard, and you may thus have to write or
integrate CMSIS compliant startup-code or device drivers yourself. Commercial suppliers
of GNU tools, like Atollic, typically provide CMSIS compliant example projects that take
care of these things for you.
The build settings dialog box is not suitable for embedded use, as it does not
provide GUI configuration of build settings related to embedded development
The default Eclipse build system does sometimes not feel intuitive to some
embedded C/C++ developers with experience from other tools.
Atollic TrueSTUDIO for example has addressed these issues with a powerful project wizard
that auto-generate embedded projects for hundreds of ARM devices and boards.
Additionally, the build configuration GUI has been extended by Atollic to be perfectly
adapted for embedded needs.
18 | P a g e
White paper
And finally, some of the GUI behaviors in standard Eclipse that feels unintuitive to many
C/C++ developers have been replaced by Atollic, offering a more easy-to-use and
productive build environment.
While gdb is an open-source and freely available debugger, the required gdbserver is most
often not open-source software. For example, to debug an ARM board using a Segger J-
Link or ST-LINK JTAG probe, a proprietary gdbserver is needed from a commercial vendor
like Segger or Atollic.
If you have obtained the required gdbserver, the open-source software modules (including
standard-Eclipse) do not auto-start and auto-stop the gdbserver on each debug session,
creating an inefficient work environment for professional developers. Also, gdb does not
connect to JTAG-probe debug hardware or associated gdbservers out-of-the-box; thus it
can be difficult to setup a working solution for new users.
Most commercial packages of embedded GNU tools, such as Atollic TrueSTUDIO, handle
these problems out-of-the-box.
For example, the standard Eclipse implementation does not automatically switch from the
debug perspective to the editing perspective when the debug session is terminated,
creating frustration with many developers. Finely tuned commercial Eclipse-based
products, like Atollic TrueSTUDIO, handle this type of usability improvements.
19 | P a g e
White paper
Integrating the Eclipse debugger GUI and the gdb command-line debugger can be
troublesome for inexperienced users. And even if gdb is complemented by an Eclipse
debugger GUI, there is no configuration GUI for the gdbserver or JTAG probe in the
standard Eclipse solution. All this is taken care of when choosing a commercial solution like
Atollic TrueSTUDIO.
20 | P a g e
White paper
Another area that can cause problems is how to get gdb to be able to download and debug
code in Flash or DRAM memory. The gdb debugger knows nothing about configuring
DRAM devices (enabling chip-select pins, configuring DRAM refresh settings, etc.) on
specific evaluation boards, sometimes making it difficult to setup for use in boards with
DRAM-based memory configurations.
Similarly, the gdb debugger knows nothing about what Flash memory is used on your
board and what Flash programming algorithm must be supported to download and debug
your application in Flash memory. To debug code in Flash, gdb must be complimented by a
gdbserver that knows how to use the Flash memory in your device or on your board.
These kinds of issues are typically taken care of when choosing a commercial solution, like
Atollic TrueSTUDIO.
21 | P a g e
White paper
Some commercial development tools, like Atollic TrueSTUDIO, bypass the limitations in
gdb and provide a state-of-the-art implementation of Serial Wire Viewer event- and data
real-time tracing, also when using the GNU debugger. Features that is provided is event-,
memory access- and interrupt tracing, data monitoring and visualisation, execution time
profiling, printf() redirection back to the debugger GUI, etc.
22 | P a g e
White paper
If you need instruction tracing with gdb, commercial solutions like Atollic TrueSTUDIO is
the only way to go.
23 | P a g e
White paper
This type of very powerful debugger techniques are implemented in Atollic TrueSTUDIO,
but not available using standard Eclipse/GDB debugger solutions.
Again, these types of functionalities are not available in standard Eclipse/gdb, but are
available in commercial high-end implementations of Eclipse/GNU tools, like Atollic
TrueSTUDIO.
Atollic TrueSTUDIO supports most RTOS products on the market, offering a powerful and
convenient debug solution.
A simple installation of the complete toolchain (Eclipse, gcc, gdb, gdbservers, etc.)
using only a couple of mouse clicks with a readymade graphical installation
program. The different components are finely tuned to work well together and
are pre-configured for the selected device or board.
24 | P a g e
White paper
Minor usability features like automatically switching from the Eclipse debug
perspective to the editing perspective should be addressed, as is the case with
Atollic TrueSTUDIO.
Integrated Flash and DRAM support with pre-set configurations and example
projects for hundreds of devices and boards.
Integrated real-time tracing using the ARM Serial Wire Viewer (SWV) interface,
supporting advanced system analysis including event-, interrupt- and data tracing.
Products for professional developers, like Atollic TrueSTUDIO, even provides a
large number of real-time charts and graphs to visualize event tracing in an easy-
to-understand manner.
Execution time analysis using statistical profiling and the Serial Wire Viewer (SWV)
interface.
printf() redirection to the debugger GUI using the JTAG probe and the Serial Wire
Viewer instrumentation trace macro cell (ITM) interface.
It is clear that to provide a commercial-grade debug solution using the gdb debugger,
choosing a readymade development tool like Atollic TrueSTUDIO makes a lot of sense.
Hundreds or thousands of engineering hours can easily be spent on trying to get it to work
yourself, and this will most likely still provide an inferior solution with poor integration of
JTAG probes, offering no device specific debugging or real-time tracing. With a commercial
solution, all these issues are handled and you get an “out-of-the-box” solution that is
immediately productive.
25 | P a g e
White paper
SUMMARY
The GNU tools are high-quality build- and debug tools in widespread use throughout the
embedded industry, and are used in large systems like embedded Linux and Android
platforms. Many individuals, academia and commercial vendors, including Atollic and ARM
Ltd., extend and improve upon these tools.
As the GNU toolchain is open-source, an option is to roll-your-own tools, but this approach
have a large cost in terms of acquiring the skill set and investing in a lot of engineering
hours to build, test and maintain such a tool solution. Furthermore, the IDE integration
and debug solution becomes less than ideal, especially when it comes to JTAG probe
integration, Flash programming, device specific debugging, instruction tracing, RTOS
debug, crash analysis and Serial Wire Viewer (SVW) real-time tracing.
A better solution for commercial development teams and professional developers are
often to purchase a readymade tool solution like Atollic TrueSTUDIO, which provides a
well-tested and finely tuned tool solution with a lot of extras, like CMSIS compliant
example projects for hundreds of devices and boards, JTAG integration with Flash support,
peripheral register (SFR) viewers and advanced real-time tracing capabilities.
Either way, the strong industry trends moving towards ARM-based microcontrollers, in
combination with the quick adoption of GNU tools and Eclipse-based IDE’s is likely to get
additional momentum in the months and years to come. These solutions are well proven,
flexible and powerful, and provide a very compelling return on investment.
www.atollic.com
www.atollic.com/truestudio
26 | P a g e