In this part of the tutorial we will be setting up eclipse to launch a full debug session where the processor can be flashed with the application, and ran. Once this part is successfully completed you will be able to set breakpoints and view memory, just like any expensive toolchain. This part of the tutorial was the most difficult for me to get right. Hopefully you will have fewer problems than I did.
For this part of the tutorial, we will be adding the Eclipse IDE to our toolchain. For this project, I will be using GNU Make to build my source code. When using Makefiles, there isn’t much set up to do in the IDE since most of that effort is spent on the Makefile. The Eclipse IDE is a very powerful IDE. You won’t have to use it long to find that it isn’t perfect, but even with its imperfections, I feel that it is far better than any paid IDE that I’ve used. This is a credit to the developers who are always making great improvements to this very useful IDE.
This post will describe how to download and test the ARM GCC, and GNU Make. GCC is a very powerful embedded software development suite. I feel that there is a fairly steep learning curve for becoming proficient with this collection of tools, but from my experience with paid development suites, once you get past the simple cookie cutter project, it can be very difficult, and sometimes impossible to configure your project exactly how you want it due to the level of abstraction introduced by the toolchain vendor. I feel that with the GCC once you’ve got past the learning curve, there is no limit to what you can do with your software projects. Once we get to the Eclipse IDE portion, we will introduce a level of abstraction that can, at times, be quirky and frustrating, but you can, at any moment, go back to the command line to troubleshoot your toolchain.
This tutorial series will describe how to build a free Eclipse based ARM GCC toolchain which uses a GDB client Eclipse plugin to communicate with the OpenOCD GDB server for debugging. In this tutorial you will build a blinking light program that will run on an STM32F4 development board made by Olimex.