GNU MCU Eclipse

A family of Eclipse CDT extensions and tools for GNU ARM & RISC-V development

How to install the GNU MCU Eclipse plug-ins?

If you know what this is all about, you can do the following:

  • use the GNU MCU Eclipse IDE for C/C++ Developers packages, which packs Eclipse with the plug-ins; for this go to GitHub Releases and download the binary for your platform;
  • go to the Eclipse menu → HelpEclipse Marketplace…, find GNU MCU Eclipse and install

If, for any reason, this does not work and you have to do it manually, you only need the update site details:

  • name: GNU MCU Eclipse Plug-ins
  • URL: http://gnu-mcu-eclipse.netlify.com/v4-neon-updates/

Note: the old URL http://gnuarmeclipse.sourceforge.net/updates/ is now deprecated, and its content will point to v3.x, that can be used to install the older versions of the plug-ins.

It is recommended that you install the plug-ins after installing the ARM toolchain and/or the RISC-V toolchain, the build tools (on Windows), and the debugging binaries.

Important notes:

Prerequisites

Since these are Eclipse plug-ins, they obviously require a functional Eclipse CDT, which requires Java.

Win XP - a word of caution

For the old-timers, a word of caution about Windows XP: recent Java distributions (from 7 up) are no longer certified for XP, so, even if they might seem to work, you are on thin ice. If possible, avoid using XP at all; otherwise use only the 32-bits version, with 32-bits Java and Eclipse.

Win XP 64

The warning is even more important for Win XP 64, which, in certain configurations, has difficulties to start 32-bits applications (like the JLink GDB Server or OpenOCD). Although generally Win XP 64 is not recommended at all, if you really need to use it, preferably experiment with a 32-bits Java and a 32-bits Eclipse.

However please note that no support requests referring to Win XP 64 will be processed.

Java

The recommended package is the latest version from the official Oracle Java SE page. The OpenJDK Java used in Ubuntu is also fine. The minimum is JDK 1.8, or even JRE 1.8 (the Java Runtime Environment), but, as said before, better use the latest JDK (currently 1.8.141). On macOS the last Apple Java implementation is 1.6, so it is required to use the Oracle version.

On some distributions, for example on Ubuntu 16.04 LTS, Java seems to be already installed in the standard distribution:

$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

On other distributions, for example on Ubuntu 14.04 LTS, you can install the OpenJDK run-time and test if it was properly installed with the following commands:

$ sudo apt-get -y install default-jdk
$ java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-5ubuntu0.14.04.1)
OpenJDK 64-bits Server VM (build 24.85-b03, mixed mode)

If you are behind a firewall, older Java virtual machines fail to connect to SourceForge. Update your Java JDK to 8u101 or later and retry to install the plug-ins.

Java Cryptography Extension (JCE)

If you use the Oracle JDK, starting with mid January 2017, attempts to install via HTTPS from SourceForge might fail with handshake_error. Install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files and the installer should be able to reach the update site.

Eclipse & CDT

Starting with version 4.x, the oldest Eclipse supported by the plug-ins is Eclipse 4.6 Neon.3 (CDT 9.2), and the recommended version is 4.5 Mars SR2. Do not try to install them on Mars, Luna, Kepler, Juno, Indigo, or older versions, since the install will fail.

The package way

The simple way is to download GNU MCU Eclipse IDE for C/C++ Developers from GitHub Releases and you get at once both Eclipse CDT and the MCU plug-ins.

Eclipse EPP

The plug-ins install way

If you prefer to do this in more steps, go to the Eclipse packages and get the Eclipse IDE for C/C++ Developers archive appropriate for your platform, preferably the 64-bits version.

Links to older versions are available in the More Downloads section, at the bottom.

Eclipse packages

In case you reached the main Eclipse downloads page, avoid the recommended download and follow the link to the Eclipse packages.

Eclipse downloads

Traditionally Eclipse does not need an installer, Eclipse is distributed as a plain archive. To install Eclipse, simply unpack the archive at a place of your choice and start using it.

Note 1: on GNU/Linux be sure you manually install the Eclipse; DO NOT try to install it via the Synaptics package manager, or similar, since usually you get an older version and the CDT plug-ins are not included.

Note 2: Contrary to other tools, Eclipse does not need administrative rights, does need not be installed in a system location, and does not need not be a single instance on a system. Actually you are encouraged to install multiple instances of Eclipse, possibly one for each project type, to avoid mixing plug-ins from different sources in case different project types.

CDT

The minimum CDT version is 9.2.1. Do not try to use earlier versions, since either the install will fail (with something like … requires ‘bundle org.eclipse.cdt 9.2.1’ but it could not be found), or it will not run properly.

As mentioned before, the recommended way is to use a fresh Eclipse IDE for C/C++ Developers for the cross ARM development projects. Even if you did so, but especially if you did not do so, it is a good idea to check if you really have the latest version available. For this, enter the Eclipse menu and go to Help → Install New Software

Install new software

  • select Work with: Neon (or more recent)
  • if the Group items by category is enabled, expand the Programming Languages group
  • select the C/C++ Development Tools feature
  • click the Next button and follow the usual installation procedure

CDT install

Compatibility issues

Please note that starting with 4.x, compatibility with Eclipses previous than 4.6 Neon was no longer possible. If, for any reason, you need a solution for Eclipse Luna or Mars, you can try the GNU MCU Eclipse Plug-in version 3.*, but please keep in mind that this version is no longer maintained.

Similarly:

  • starting with 3.1.x, compatibility with Eclipses previous than 4.4 Luna was no longer possible. If, for any reason, you need a solution for Eclipse Kepler, you can try the GNU MCU Eclipse Plug-in version 2.12, but please keep in mind that this version is no longer maintained.
  • starting with 1.1.x, compatibility with Eclipses previous than 4.3 Kepler was no longer possible. If, for any reasons, you need a solution for older Eclipse versions, you can try the GNU MCU Eclipse Plug-in version 0.5.5, but please keep in mind that this old version is no longer maintained.

Plug-ins install/update

The following samples are from a slightly older Eclipse 4.3 Kepler on macOS. Other platforms may behave slightly different, but the idea is the same.

Warning: Be sure your Eclipse is 4.6 Neon.3 or later, otherwise the plug-ins will refuse to install, claiming Missing requirements and Cannot satisfy dependency.

The Eclipse Marketplace way

The easiest way to install/update the plug-ins is to use the Eclipse Marketplace:

  • go to the Eclipse menu → HelpEclipse Marketplace…
  • in the Find field, enter GNU MCU Eclipse
  • click the Go button

This should identify GNU MCU Eclipse and offer to Install/Update/Uninstall assets Eclipse Marketplace Search

The Eclipse update site way

The classical way to install the GNU MCU Eclipse plug-ins is to use the Eclipse standard install/update mechanism: In the Eclipse menu → HelpInstall New Software…

  • in the Install window, click the Add… button (on future updates, select the URL in the Work with: combo)
  • fill in Name: with GNU MCU Eclipse Plug-ins
  • fill in Location: with http://gnu-mcu-eclipse.netlify.com/v4-neon-updates
  • click the OK button

AddRepository

  • normally the main window should list a group named GNU ARM & RISC-V Cross Development Tools; expand it
  • (in case the main window will list There are no categorized items, you are probably using a very old version; disable the Group items by category option)
  • select all the plug-ins (the one marked End of life is needed only for compatibility with previous version, normally can be safely skipped)
  • click the Next button and follow the usual installation procedure

Plug-ins install

Once you define the update site URL, further updates are greatly simplified (Help → Check For Updates).

The local archive way

If, for any reason, you need to install a specific version of the plug-in, the solution is to download the archive from GitHub Releases, or, for older releases, from SourceForge Files and to point the Eclipse update mechanism to the local archive: In the* Eclipse* menu → Help → Install New Software…

  • in the Install window, click the Add… button
  • in the Add Repository window, click the Archive… button * in the Repository archive window, select the downloaded .zip archive * click the OK button
  • click the OK button
  • follow the usual installation procedure

Add repository from archive

Off-line install

If, for any reasons, you need to install the GNU MCU Eclipse plug-ins on a system without permanent Internet connection, and decide for the alternate way presented above, please be aware that the debug plug-ins require the presence of the C/C++ GDB Hardware Debugging plug-in. Usually this plug-in is not included in the standard package, but is present in the CDT Optional Features category, packed with the CDT archives available from the CDT download site. Download the desired archive, add it to your update sites, select the C/C++ GDB Hardware Debugging plug-in, restart as usual, and then install the GNU MCU Eclipse plug-ins from the local archive, as above.

Install the GDB Hardware

Note: Attempts to install the GNU MCU Eclipse plug-ins off-line without having the C/C++ GDB Hardware Debugging installed fails with an error related to installing the ilg.gnumcueclipse.debug.gdbjtag.jlink.feature.group and other debugging features.

On-line install do not have this problem since the Eclipse automatically downloads the C/C++ GDB Hardware Debugging plug-in from the CDT update site.

Check/set the global tools paths

If you already installed the toolchain (and, on Windows, the build tools) in the default locations, as suggested in the above steps, the plug-ins might have automatically discovered them.

Global Tools Path

The above definition will make the toolchain and build tools accessible to all projects in all workspaces.

If needed, you can define different paths per workspace (Workspace Tools Paths) or even per project (Tools Paths in the project properties).

To check if the paths definitions are effective, go to the project properties page and identify the PATH variable. Be sure the Origin column reads BUILD SYSTEM; if you manually edit it, the Origin will change and will read USER, but this is totally not recommended, since manually editing the path disables further automated updates of the path.

Environment PATH

Troubleshooting

Java security problems

SourceForge problems

Note: starting with version v4.1.1, the SourceForge server is no longer actively used, so this problem should no longer be actual.

There are cases when the on-line access to the SourceForge mirror servers might not be reliable. In these cases the Eclipse update system may fail. For example:

Failed install

If this happens, Eclipse remains in a confused state and rarely can recover itself.

The workaround is to remove the GNU MCU Eclipse update site from the available sites, restart Eclipse and add it again.

For this go to Eclipse menu → (Window →) Preferences → Install/Update → Available Software Sites:

Remove from available site list

If this still fails, the alternative method is to manually download the latest version archive and to perform the install from it, as presented below.

Incomplete Eclipse

If Eclipse complains that some required items could not be found, most probably you are trying to install the plug-ins on an older Eclipse, or on another Eclipse package than the recommended Eclipse IDE for C/C++ Developers.

Cannot complete the install because one or more required items could not be found.
  Software being installed: GNU ARM C/C++ J-Link Debugging 4.1.1.201606210758 (ilg.gnuarmeclipse.debug.gdbjtag.jlink.feature.group 4.1.1.201606210758)
  Missing requirement: GNU ARM C/C++ Core 3.1.1.201606210758 (ilg.gnuarmeclipse.core 3.1.1.201606210758) requires 'bundle org.eclipse.cdt 8.6.0' but it could not be found
  Cannot satisfy dependency:
    From: GNU ARM C/C++ J-Link Debugging 4.1.1.201606210758 (ilg.gnuarmeclipse.debug.gdbjtag.jlink 4.1.1.201606210758)
    To: bundle ilg.gnuarmeclipse.core 0.0.0
  Cannot satisfy dependency:
    From: GNU ARM C/C++ J-Link Debugging 4.1.1.201606210758 (ilg.gnuarmeclipse.debug.gdbjtag.jlink.feature.group 4.1.1.201606210758)
    To: ilg.gnuarmeclipse.debug.gdbjtag.jlink [4.1.1.201606210758]

Reinstall the correct Eclipse package, or add CDT to the existing Eclipse (Programming LanguagesC/C++ Development Tools).

Ubuntu GTK issue

Eclipse is incompatible with the GTK version 3 distributed with Ubuntu (confirmed even with Ubuntu 16LTS). To overcome this, disable the use of GTK 3, by adding the following line to your environment:

$ export SWT_GTK3=0
```console

### macOS com.apple.quarantine

On macOS Sierra and later, unsigned applications are marked as _quarantined_ and subject to a path randomization, which prevents Eclipse to maintain persistent preferences (for more details see [blog post](https://ilgthegeek.wordpress.com/2017/07/13/macos-com-apple-quarantine/)). To disable this, remove the `com.apple.quarantine` extended attribute from `Eclipse.app`:

```console
$ xattr Eclipse.app
com.apple.quarantine
$ xattr -d com.apple.quarantine Eclipse.app

Plug-ins versions

One of the confusing details of the GNU MCU Eclipse plug-ins versioning system is matching the version from the release announcement (for example Version 2.6.1-201502281154 released) with existing plug-ins/features.

The short answer is that the announced version refers to the update site, also packed as an archive, and available from SourceForge. The same version is also used for the ilg.gnuarmeclipse.core plug-in:

Installed plug-ins

Although the core plug-in is referred by all features, this version number cannot be found in the list of the features:

Installed features

However, the common point for all these magic numbers is the release date, 201707191338 in this case, which is identical for all plug-ins and features.

Thus, the recommended method to identify plug-ins and features is by date, not by version, which differs from object to object.

Set workspace preferences

After completing the installation of the plug-ins it is recommended to set the workspace preference.

Download CMSIS Packs

Although support for CMSIS Packs is still experimental, the content of the packs can be used populate the Peripheral registers views during debug sessions, so it is recommended to install the packs for the processors in use.

For this follow the steps in the Packs manager page.

Toolchain and debugging support

By completing the above steps, the Eclipse environment is ready, and you can start creating projects right away. However, for being able to build and debug these projects, you also need to install:

It is also highly recommended to install the Packs plug-in, to switch to the Packs perspective and using the Packs manager to install the packages related to the devices in use. Even if Packs support is not complete yet, you still can benefit from the existing CMSIS Packs, for example by using the peripherals registers view in debug, the documentation view in the C/C++ perspective, etc.

Test project

Follow the above steps and when everything is ready, proceed to create and build a test project.

Support

If you encountered any problems when installing the plug-ins, pleas refer to the Support page and do not send private email.