Showing posts with label pictures. Show all posts
Showing posts with label pictures. Show all posts

Wednesday, May 15, 2013

OpenSource ARM Development using Eclipse and OpenOCD


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.