MCUXpresso IDE 11.6.0

With a steady release train, NXP has released last week a new and updated version of their flagship IDE: the version 11.6.0 of the MCUXpresso IDE.

NXP MCUXpresso IDE V11.6.0

And there are several new and cool features with that release, including a power & energy profiler and CMake support.

The release includes updated build tools and debug probe libraries (CMSIS-DAP/Linkserver, SEGGER J-Link and P&E Multilink), plus a new Eclipse release.

The new release comes with bug fixes (see community post for details) but as well with new features.

Eclipse 2021-12

The release is based on Eclipse 2021-12 (Eclipse Platform 4.22.0 / CDT 10.5.0). So this is not the latest (2022-06 just came out), so the ‘stable’ one. If you want to add more plugins, be sure to use the following Eclipse update site:

http://download.eclipse.org/releases/2021-12/
Eclipse Update Site

Something which seems small but makes a good visual impact: many of the ‘system’-like icons like for closing are now more aligned with the host OS (Windows, Linux/Mac):

Closing Icon matching host OS

Launch Configuration View

The new Launch Configuration view makes it easy to inspect and edit launch configurations, or running a debug session from it:

New Launch Configuration View

I can start a debug session, or terminate and relaunch a running session that way too.

Multiple Text Selection

A useful feature is the new ‘multiple text selection’: I can select with different ways multiple text or set the cursor at multiple locations (e.g. Click with ALT key pressed). For example below I click with ALT key pressed at the start of different lines and then type a single ‘//’ to add a line comment for each location:

Multiple Text Selection

Marking Lines

I can now use optional divider lines with the #pragma mark: adding a ‘-‘ is used to add a line before and/or after the mark. The #pragma region is supported as well:

Divider Lines with #pragma mark

Dark Theme

For the ‘Black Theme Lovers’: The ‘dark side‘ is now even darker: now the window title bar is following the color theme too:

CMake Projects

Finally I can directly import and use Cmake projects. I can install it from the CDT Update site:

CDT CMake Build Support

After that, I can import projects or folders and it recognizes CMake projects:

Importing CMake Projects

After that, I can use them like ‘normal’ projects.

GDB Timeout

Previously the timeout for GDB (suspended timeout) was hard-coded to 5 seconds. For remote targets on slow connections this has been an issue. Now the default is 10 seconds and can be configured:

GDB Suspended Timeout

Energy & Power Profiler

A very cool new feature added by NXP is the ‘Power Profiler’. There is a new menu inside the ‘Analysis’ one:

Power Profile Menu

In combination with a power/energy measurement probe as the NXP MCU-Link Pro it gives me a power/energy profile of my application which is very useful. The feature requires a MCU-Link firmware v2.263 or later.

Energy Profiling

The view uses a combination of SWO profiling (PC sampling) and power measurement, both transmitted using the ARM SWO hardware/pin. It is currently only supported with the NXP debug probes (MCU-Link Pro) and requires SWO operational on the target. Keep an eye on the SWO data/error statistics: I have found that setting a higher SWO clock/speed might be necessary to keep up with the additional data on the SWO channel:

Zephyr RTOS Awareness

The IDE now supports Zephyr with gdb thread awareness plus a view for the Zephyr OS threads, similar to the FreeRTOS threads view:

Zephyr Threads view menu

Currently it is supported for the LinkServer debug connection only.

Editor Awareness Parsers

The IDE includes parsers (syntax coloring) for linker .map files, linker .ld files and linker .map files. Because this could slow down opening large linker files, it is possible now to disable these parsers:

Summary

All in all, a solid release with many useful features. I like the best the power and energy profiler, even if it is limited to targets with SWO and the MCU-Link Pro: it gives another angle and view how to optimize embedded applications for lower power and energy consumption. The direct CMake support is a great addition as well, as many new projects are switching from the classic make to the new CMake world.

Happy Xpressing 🙂

Links

10 thoughts on “MCUXpresso IDE 11.6.0

  1. I’m glad to see #pragma is supported, now. It wasn’t necessary, but it’s a nice touch for organizing your code. Re: Zephyr vs FreeRTOS, which one do you prefer? I’ve used FreeRTOS in a few cases – primarily for simple threading – but I haven’t heavily invested in it. Haven’t touched Zephyr at all.

    Liked by 1 person

    • FreeRTOS and Zephyr are targeting different aspects. As for having a scheduler, FreeRTOS is imho much easier and simpler to use, and software and tools support are best in class. Zephyr is more like a ‘linux-like environment in a nutshell’: I mean it comes with drivers, build scripts and the like. This is its strength and as well its biggest weakness: FreeRTOS has very few dependencies on the drivers, basically all what you need is a timer plus a software interrupt, and is easily combined with any SDK or drivers you get from the vendors or what you develop. While with Zephyr you are bound to the drivers which have been part of the Zephyr project, and you pretty much depend on it, unless you want to develop your own ones. For example we wanted to use Zephyr in a project, but then found out that the USB support is not implemented for that device, making it a show stopper. I would compare Zephyr to some extend to other projects like eCos: if you get it with everything you need, then it is great. But if you are missing a driver (e.g. UART with interrupts or USB Host support), then it is probably not solution. But what I see is that Zephyr could get more momentum over time.

      Liked by 1 person

      • That is very helpful. From your description, Zephyr sounds like mbed OS, which has pretty good support, and its own development environment. Thanks for the insight!

        Liked by 1 person

  2. Yeah the #pragmas are helpful. It’s a shame region/endregion isn’t foldable, whereas #if 1/#endif regions are, but they don’t show up in the outline view. It’s a start I guess.

    Liked by 1 person

  3. Hello Erich. I am using the mcuxpresso version 11.3.xxx. I wonder if each new version has to be downloaded and installed, which generates several simultaneous versions on the PC, or why it is not updated (or what the process would be like) if possible. Thank you.

    Liked by 1 person

    • Hi Marcelo,
      Having it that way makes perfect sense, because it keeps the environment stable. This is needed for embedded development, where you need to keep dedicated environment/tools/toolchain for each project, especially for safety critical systems. You still can update/add parts in-place, but it is not done automatically in the background as for other IDE’s, so you have full control over it. Of course you can enforce this with other IDEs too, but it is a manual or extra step. But this is not really an Eclipse thing, but a thing chosen by the vendor (NXP, STM, TI, …): they want to give you a working and tested environment out of the box. You get an environment, and you can uninstall and re-install it later as you like, and you have isolated environments for isolated projects.
      Now if you want to have it different (one IDE installation, and then upgrade/update as you want): of course you can do this, just see my blog series about a DIY Eclipse IDE. So you can have it the way you want.

      Like

        • Yes, it makes a huge difference if one is doing a hobby development compared to a product development. In the later case you need a controlled and isolated environment.

          Liked by 1 person

        • To emphasize what Erich said, stable environments are especially important if you do any work that is regulated by the FDA – eg. healthcare – which involves periodic audits and traceability. Those are always fun. (/sarcasm)

          Liked by 1 person

What do you think?

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