Eclipse ARM Code Platform

Created by: Lester Caine, Last modification: 23 Mar 2014 (22:07 GMT)

For a complete ARM C/C++ development system we need the following components:

1.   GNU ARM toolchain
2.   Eclipse ARM Toolchain
3.   Olimex GDB Server

Where this gets messy these days is that many of the tool chains are now targeting embedded linux rather than simple application development on the ARM platform. The current target is to provided a tool chain suitable for the smaller ARM devices from Atmel but this should not prevent any of the ARM architectures from being used.

The original OpenDRO design is targeted against the SAM7S family from Atmel, using the at91sam7s256 and the at91sam7se256 devices. These are using and ARM4 core but is identified as an 'arm7tdmi' core. With the ARM4 based processors being phased out in favour of the newer families, Atmel has switched to the SAM3S family providing a pin replacement for the SAM7S family with the sam3s4b being the replacement for the at91sam7s256. This uses the later ARM7 core which is identified as a 'cortex-m3'. Initially there was a little confusion between the 7-4-3 elements of these part numbers, and in particular the arm7tdmi designation for the arm4 core. However now that the two families of software have been identified, all that is required is either a 'arm7tdmi' library set, or a 'cortex-m3' set.

Additional confusion is also added by the different sub-sets of cross compiler tools. The OpenDRO code base is expecting an arm-elf- suit, while the more modern builds are creating an arm-none-eabi- build, with suse adding a curveball with arm-suse-linux-gnueabi- with an arm-elf-gcc compiler.

SUSE 13.1 defaults

binutils: 2.23.1 (arm-suse-linux-gnueabi-)
cross-arm-binutils: 2.23.1
gcc: 4.6.4 (arm-elf-toolchain)

YAGARTO (windows suite)

binutils: 2.23.1
gcc:      4.7.2
newlib:   1.20.0
gdb:      7.5.1

GCC ARM Embedded

binutils: 4.8.3 (arm-none-eabi)
gcc: 4.8.3 (arm-none-eabi)

GNU ARM Eclipse Plug-in

binutils:
gcc:

Useful sites

  • emb4fun - Development from the original Yagarto site with useful development articles
  • FreeRTOS - Alternate embedded OS for various processor families ( Notes for using with Eclipse )
  • Linaro - Linaro is a not-for-profit engineering organization consolidating and optimizing open source Linux software and tools for the ARM architecture.
  • OpenOCD - The "Open On-Chip Debugger" provides JTAG/SWD access from GDB (or directly with TCL scripts) to processors with ARM and MIPS based cores.
  • Embedded - UBM Tech design guides and articles
  • embdev - Embedded processor development forum
  • Atmel - Original SAM7 family data
  • TI - Alternate ARM processors
  • ST - STM32 32-bit ARM Cortex MCUs
  • ARM - Details on the core processor silicon. Foundaries licence ARM design and produce their own silicon using it.