Debugging Bootloader and Application with one Debug Session

If having a boot loader running on a micro-controller, it is very useful if both the boot loader and the loaded application can be debugged together:

Bootloader with Application Code

Bootloader with Application Code

Continue reading →

Power Measurement with the PEmicro Multilink Universal in Eclipse

Implementing low power in embedded applications implemented can be challenging. Measuring current consumption is a first step to see if the software changes indeed have an effect on the current consumed. The PEmicro Universal Multilink FX debug probe comes with a useful feature to provide power to the target and the same time to measure the current consumption and to show the current used in the Eclipse IDE:

PEmicro power measurement

PEmicro power measurement

Continue reading →

Tweaking MCUXpresso IDE Black Theme

‘Dark’ or ‘Black’ themes are on vogue: some love it, some do not care. The good thing is that we all have a choice. Things are getting improved on the host OS (Windows/Linux) side, but the challenge is still on the application side, but things are getting better. This is true for the Eclipse based IDEs too, with the NXP MCUXpresso IDE V11.2.1 just recently released: it comes with improved Dark Theme support:

Tweaked MCUXpresso IDE Dark Theme

Tweaked MCUXpresso IDE Dark Theme

Continue reading →

MCUXpresso IDE V11.2.1

I have started the semester and labs using the MCUXpresso IDE V11.2.0 which has been available from July this year. The past week I received the notification that the update V11.2.1 is available: time to check it out….

MCUXpresso IDE V11.2.1

MCUXpresso IDE V11.2.1

Continue reading →

MCUXpresso IDE V11.2.0

At the university the end of a semester means that you have to get ready for the next semester. I always tend to use the latest and greatest tools for the labs. This week I received the notification that a new version of the Eclipse based MCUXpresso IDE is available, time to check it out for the next semester.

MCUXpresso IDE 11.2.0

MCUXpresso IDE 11.2.0

Continue reading →

Eclipse Gems, Tips & Tricks: Faster Debugger Start

This article is part of a ‘mini series’ about hidden gems, tips and tricks around Eclipse.
The topic of this one is how to accelerate the start of the debugger.

Nothing to be done

Nothing to be done

Continue reading →

From C to C++: Converting Eclipse C Projects

Creating a new project with Eclipse for a microcontroller these days is fairly easy, and I have the choice if I want to start the project with C or C++:

Choice of C and C++ for a new project

Still the embedded microcontroller world is dominated by C and not C++. So while it is easy to start with a C++ project, most vendor provided example or tutorial project are C projects. So how can I transform such project to C++?

Continue reading →

Disabling NMI (Non Maskable Interrupt) Pin

The NMI is a special interrupt on ARM Cortex-M architecture: as the name indicates, it cannot be ‘masked’ by the usual ‘disable interrupts’ flags (PRIMASK, BASEPRI), similar to the Reset signal.

cortex-m-vector-table

cortex-m-vector-table (Source: adapted from arm.com)

Dealing with the reset signal is kind of obvious, and most designs and boards have it routed to a reset button or similar. The NMI is less obvious if you don’t pay attention to it: most ARM-Cortex implementations and boards have the NMI signal routed to a pin and are ‘hiding’ it in the schematics behind a normal GPIO pin or port: if you don’t pay attention to the NMI functionality, the board might not work as intended.

Continue reading →

McuLog: Logging Framework for small Embedded Microcontroller Systems

An essential tool especially developing larger applications or distributed firmware is to use logging. This article presents an open source logging framework I’m using. It is small and easy to use and can log to a console, to a file on the host or even to a file on an embedded file system as FatFS.

Log Output

Log Output

Continue reading →

Tutorial: Adding FreeRTOS to where there is no FreeRTOS

FreeRTOS is pretty much everywhere because it is so simple and universal, and it runs from the smallest to the biggest systems. But it still might be that for the microcontroller device you have selected there is no example or SDK support for it from your vendor of choice. In that case: no problem: I show how you could easily add FreeRTOS plus many more goodies to it.

Binky on NXP LPC845-BRK Board

Binky on NXP LPC845-BRK Board

Continue reading →