Installing GNU ARM Eclipse
What is GNU ARM Eclipse? Well, Eclipse is an open source, integrated-development environment that can be configured for any toolchain. This is achieved, typically, by an extensible system of plug-ins that allows the environment to be customized. Eclipse is written mostly in Java, but plug-ins are available allowing it to be configured for a variety of languages. GNU ARM Eclipse plug-ins provide Eclipse CDT (C/C++ Development Tooling) extensions for GNU ARM toolchains, such as GNU Tools for ARM Embedded Processors, and others such as Linaro (https://www.linaro.org/), YAGARTO (http://www.yagarto.org/), and so on.
To install GNU ARM Eclipse, we need the following components:
Mostly, these are installed by downloading the latest version of their Windows installer .exe
file. As the MDK-ARM Eclipse plug-in only works with the Windows 32-bit version of Eclipse, we chose 32-bit versions of the toolchain. The installation documentation provided is comprehensive, so the following recipe (GNU_ARM_Eclipse_Install_c9v0
) just gives us an overview and links to the relevant web pages.
- Follow the instructions at http://gnuarmeclipse.github.io/toolchain/install/ and install the latest version (currently
gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe
) of the prebuilt GNU toolchain for ARM Embedded Processors. Execute the installer (in the final window, be sure to disable adding the toolchain path to the environment). - Test the gcc compiler by typing
"C:Program Files (x86)GNU Tools ARM Embedded4.9 2015q3inarm-none-eabi-gcc.exe" --version
in a command window: - Refer to http://gnuarmeclipse.github.io/windows-build-tools/download/; download and run the latest version (currently
gnuarmeclipse-build-tools-win32-2.6-201507152002-setup.exe
) of Windows Build Tools from this link. - Check whether Windows Build Tools is functional by opening a command window in the folder where it was installed (that is,
"C:Program FilesGNU ARM EclipseBuild Tools2.6-201507152002"
) and run make --version
as follows: - Refer to http://gnuarmeclipse.github.io/qemu/install/, then download and run the latest version of the installer (currently
gnuarmeclipse-qemu-win32-2.3.50-201508041609-dev-setup.exe
) from this link. Refer to http://gnuarmeclipse.github.io/openocd/install/
, then download and run the latest version of the installer (currently gnuarmeclipse-openocd-win32-0.9.0-201505190955-setup.exe
) from this link. Note that the documentation advises using the SEGGER J-Link
debugger; other hardware is more difficult to set up.- Refer to http://www.keil.com/support/man/docs/ecluv/default.htm and install MDK Version 5 - Legacy Support.
- Refer to https://www.eclipse.org, then download and run the latest version of the installer (currently Eclipse Mars. 1) from this link. Choose the version for C/C++ developers:
- Refer to http://gnuarmeclipse.github.io/eclipse/workspace/preferences/ and set the Eclipse preferences.
- Refer to http://gnuarmeclipse.github.io/plugins/install/ and install the GNU ARM Eclipse plug-ins using the standard Eclipse installer in the Help → Install New Software menu. Note that, as we are working with Mars and we installed Eclipse configured for C/C++, then we may find that we already have some CDT tools (by default, plug-ins that are already installed are not displayed).
- Refer to http://gnuarmeclipse.github.io/plugins/packs-manager/. To install packs, we need to select the pack perspective and find available packs, then install the ones that we want (make local copies). We're going to test our Eclipse IDE with the emulator configured as Discovery Board. So, we'll need the STM32F4 support pack:
- Refer to http://gnuarmeclipse.github.io/tutorials/blinky-arm/ and use the wizard to create a Blinky ARM test project:
- Refer to http://gnuarmeclipse.github.io/tutorials/blinky-arm/. Build the project and run the program on the Discovery Board emulator:
Assuming that we successfully ran this code, then we have a working IDE. The Blinky wizard generates C++ code, so it may look a little strange. Don't worry; for the next recipe we'll create a C project.