MCUXpresso IDE 11.5.0

I’m now in the middle of the university fall semester exam season with writing exams and grading student work, and the same time the new semester courses need to be prepared. With the global silicon and board shortage, this will be again a challenge to equip all the labs with the needed infrastructure. The good thing is that there is no shortage on software and tools side of the infrastructure: NXP released last week their new flagship Eclipse based IDE: the MCUXpresso IDE 11.5.0. Time to check it out for the upcoming lectures and classes….

NXP MCUXpresso IDE Version 11.5.0

Spoiler Alert: It has a new view for FreeRTOS lovers, plus new features for energy/power measurements!

Overview

💡 As with every Eclipse based IDE: I recommend to use it with a *new* workspace folder and then re-import the project and settings as needed. Never share an Eclipse workspace!

The list on  MCUXpresso IDE v11.5.0 Now Available – NXP Community plus the release notes gives an extensive overview about the ‘what’s new’ things. Beside of the ‘expected’ things like updated Eclipse IDE 2021-06 version, latest debug probe binaries, new device support and bug fixes, there are a few noteworthy items in my view:

  • Eclipse 2012-06 release train
  • Custom SVD Files per project
  • New view for FreeRTOS Direct Task Notifications
  • Ability to import SDKs directly from GitHub
  • SWO: initialization on the application side, configuration dump
  • McuLink Energy Measurement with Trigger functionality

Let’s check them out….

Eclipse 2021-06

Eclipse from the 2021-06 release train comes with extended support for headless builds: now you can remove projects from the workspace or use a verbose progress monitor while building.

The Build Targets view supports Working Sets: that way one can easier switch between working sets or in my case: between lecture modules:

Working Sets in Build Targets

The disassembly view shows now the byte op-codes, which is much better and easier to read:

Byte Op-Codes in Disassembly

Another nice feature is the new context menu ‘Jump to Memory’ inside the disassembly view which makes debugging PIC code easier:

Jump to Memory in Disassembly View

The GDB Process Properties have been enhanced with time stamp and command line information:

GDB Process Properties

Custom SVD Files

Already the previous release had the feature of viewing the target peripherals and registers without the need for a debug connection to the target (see Offline Peripheral View in 11.4.0). For this a custom SVD file could be used as well. With the new version I have now the ability to specify the SVD file to be used for the debugging session too, inside the project properties:

FreeRTOS Direct Task Notification View

One of the really outstanding features of the is MCUXpresso IDE is its support for FreeRTOS. And the 11.5.0 comes with another cool feature for it: a view for FreeRTOS DTN (Direct Task Notification). DTN is a fast and lightweight feature in FreeRTOS to send notifications to a task. Because they are very useful and efficient, I’m usually prefer them over message queues or semaphore messages. But they are not easy to debug, but this changes with the new Task Notifications view.

For the new ‘Task Notifications’ view, there is menu entry in the RTOS menu:

FreeRTOS Direct Task Notification view menu

This gives a very useful view with all the tasks in the system and what notification they are waiting for:

Direct Task Notification view

SDK GitHub Support

The new release takes advantage of the implemented git support inside the Eclipse IDE: now one can import an NXP MCUXpresso SDK directly from the NXP GitHub.

I can import an SDK from a local or remote repository:

Import local (or remote) SDK Git Repository

For a remote repository, I can specify the git repository location plus where the repository shall get cloned:

What I really like about that approach: it makes distribution of a SDK much easier in a class/lab environment, as I can ask students to import the SDK from a repository. And this makes things easier inside a company/development group too. The other benefit is: I don’t have to download each SDK as a package, I can get all of them if I want:

Imported SDKs from Git

Note that this requires git installed on the system which is pretty standard on any development machine these days. The other requirement is to have West installed. West is Zephyr’s meta tool and much less common, so most likely you need to have this one installed too. West is basically used to pull in the dependencies. Personally, I have mixed feelings about the need for West, as this adds another tool (and complexity). If not using the SDK git import, then of course all this is not needed.

Standalone SWO

SWO or Single Wire Output (a hardware feature of ARM) has received many bug fixes and enhancements.

I have now the option to tell if SWO initialization shall be done by the debugger/IDE or if the application shall care about it. This is of importance if I want to use a standalone SWO configuration.

Option for the IDE/Debugger to initialize SWO or not

Another great and related features is now that the modifications by the IDE/debugger are written to the SWO and Trace Console: that way I could copy&paste that code and analyze what the debugger does and potentially use the same code in the application without the need for the debugger.

As a first item, make sure you update the McuLink and/or McuLink Pro debug probe firmware from https://www.nxp.com/design/microcontrollers-developer-resources/mcu-link-pro-debug-probe:MCU-LINK-PRO, as for some of the new features you need an updated probe firmware. At the time of this article, it should be 2.250:

McuLink Firmware V2.250

The previous 5 minute recording limit has now been lifted, and the recording time can now be up to 100 hours.

Sample Duration

Another cool feature is to control the measurement with a trigger signal:

Trigger Configuration Setting

That signal is the MEAS_TRIG one found on the MCU-Link Pro schematics:

MEAS_TRIG (Source: NXP MCU-Link Pro schematics)

The trigger signal is found on pin 13 of J19:

I can drive that pin from a automated test infrastructure or by the application itself. Below is how I trigger it from the application running on a FRDM-K22F board:

It allows me to perform a measurement over an application defined period. Below a 100 ms measurement during a FreeRTOS task execution:

Triggered Current Measurement

With this, it is easier to narrow down a certain power/current consumption with a code behind it.

Summary

The new IDE version comes with many notable extensions and features. I really like the new FreeRTOS Direct Task Notification view, this one will make my labs for FreeRTOS easier to debug. The power measurement features will be very useful in my low-power labs. The ability to import SDKs from git makes it easier to distribute a lab infrastructure or install multiple SDKs in one step. I have not used much SWO in my labs, mostly because SWO configuration has been complex: now with the ability to have standalone SWO configuration I might have to reconsider using SWO. And last but not least: the various Eclipse platform enhancements makes this a worthwhile update.

Happy Eclipsing 🙂

6 thoughts on “MCUXpresso IDE 11.5.0

  1. Thanx Erich!

    I was wondering about upgrading after the past issues and I can see that the FreeRTOS updates and the better Github integration would be very useful to us.

    Keep well and safe!

    Liked by 1 person

  2. Does this new version work under linux?
    Ubuntu 20.04.2 LTS

    wanting to work with new SDK I need the new version but It doesn’t download
    I am trying to download under Linux, but the download link Hangs.

    Under windows it works fine!

    Liked by 1 person

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.