GNU MCU Eclipse (formerly known as GNU ARM Eclipse) is super popular Eclipse plugin for embedded software. It allows for coding, compilation and on device debugging of your C/C++ code. It also enabled debugging on top of a QEMU based simulation of your MCU. That is, unfortunately, limited to a small amount of devices.

Artboard 1 copy 2@2x.png

We’re now pleased to announce that we integrated the Jumper Virtual Lab with GNU MCU Eclipse. This means that all the MCUs supported in Jumper’s embedded software simulation are now available for debugging in GNU MCU Eclipse with a few mouse clicks.

This post is a short tutorial on how to make the most out of debugging embedded software in a simulation using GNU MCU Eclipse.

Looking for a shortcut, check out this video that sums up the post.

Why use simulators in embedded software development?

Using a simulator or emulator for debugging helps create consistency between debug sessions. Checkout this blog post on how we found a bug in the nRF52 SDK using the Jumper Virtual Lab. The main advantage over the actual hardware is the way that interrupts are handled. In the simulator, doing step-over or step-into will not disregard interrupts as opposed to the actual hardware. Checkout this post for more details on interrupt debugging.

How to install GNU MCU Eclipse and Jumper

If you don’t already have an updated version of GNU MCU Eclipse, you can get it in this link. Jumper is available in GNU MCU Eclipse from version 4.4.1 and above.

To install Jumper, head to this link. Once the installation is done, head to your terminal or command line and type:

jumper login

You’ll then be asked to login or create an account. Go ahead and do that. After logging in or creating an account, you’ll get a message saying it’s OK to close the browser window.

That’s it! You’re ready to run your firmware in Jumper’s simulator using GNU MCU Eclipse.

Running the firmware using GNU MCU Eclipse

Running your firmware on the Jumper Virtual Lab using GNU MCU Eclipse works the same as any other target. Click the little triangle on the run/debug configuration buttons:

gnu mcu eclipse debug configuration

In the debug configurations dialog, choose GDB Jumper Debugging and double click that.

gnu mcu eclipse debug configuration continued

In the newly created debug configuration, you should set the project name and pick the executable firmware. It’ll need to be the .elf or .out for debugging as you need the debug symbols too.

gnu mcu eclipse project setting

Move over to the Debugger tab. Set the board name to one of the boards/MCUs supported by Jumper. To get the list of supported MCU, head to your terminal or command line and type:

jumper run –help

Under the “–platform” option you’ll see a list of all supported MCU, for example:

gnu mcu eclipse debugger setting

And that’s it! Click Debug (or Run if you’re in the Run configuration screen). You’ll be switched the debug perspective and can start debugging as soon as the Jumper Virtual Device is on.

What else is supported?

Using the board.json option, you can define a board with your MCU and external peripherals. This option will allow you to test and debug your device drivers for example. Contact us at contact@jumper.io or head to our documentation site to learn more. Jumper also works with any GDB enabled debugger out there. Checkout this link for a comparison of debuggers we recently conducted.

Future plans for debugging using Jumper Virtual Lab

Currently, Jumper Virtual Lab plugin doesn’t support user inputs to GPIOs and sensors while running. For that, you’ll need to connect directly to Jumper Virtual Lab GDB server and use our Python SDK, head to our documentation site to learn more.

If you’d like us to add features that are not listed here or provide us your feedback, don’t hesitate to contact us at contact@jumper.io

Stay tuned.