Author: Richard Ballard
Date Created: 15/05/13
Date Modified: 19/06/13
Version: 1.1
This tutorial is about using open
source products to create a development environment that can be used
to program various embedded systems. I'll be focusing on ARM based
chips and in particular the STM32 flavoured cortex chips.
I'm doing this, as all the current
recommended tools are expensive (unless crippled) and so are
inaccessible for students like me. More importantly, these tools
don't operate under alternative operating systems such as Linux and
Mac OSX. The open source community has built a large range of tools
for the individual components and these support a large range of
devices but these tools are all developed separately. Some of these
don't have very good documentation while others seem overly
complicated. I will be using Eclipse with a couple of plug-ins as the
IDE, with the tools behind being arm-gcc-embedded toolchain, which is
maintained by ARM itself, and has no restrictions. OpenOCD will be
the debugger to talk, via adaptors, to the chips (which for this
tutorial will be on a development board). I was going to write this
with the aid of an Olimex ARM-USB-TINY-H JTAG adaptor and an Olimex
H103 development board but these seem to have a long lead time on
delivery. So while I'm waiting, I decided I would buy a
STM32F4-Discovery Board which incorporates an STLINK adaptor onboard.
To automate the building process I'm
going to use make rather than Eclipses internal build system.
To fully use this tutorial, I'll assume
you want to be able program ARM based systems and as such willing to
stumble your way through the steps to get to the goal. What I mean by
this, is that to install some parts and configure them, I will be
using a terminal shell. There may be GUI (graphic user interface,
such as textedit) tools for these purposes but I won't be using these
as they sometime mis-format, try to predict what you want or don't
offer the option you want.
The layout for this tutorial is I'll
first go through the tools we'll be using in part 1 and how they fit
together. In part 2, we'll download and install these on our system.
Part 3, we setup Eclipse with these tools using a sample project. By
this stage we'll have the basics all laid out. Part 4 is some option
extras we can use to enhance our development.