It is the exam and grading time at the university, and the same time I’m preparing the lectures and labs for the new semester starting mid of February. I’m always heading for using the latest and greatest tools in my labs. A few days ago, NXP released the new version of the MCUXpresso IDE, version 11.7.0. Time to check it out…
The major change for sure is the updated Eclipse version (2022.6, platform 4.24.0 and CDT 10.7.0), and the IDE is now integrated with Eclipse Temurin JRE. Temurin will be of interest for all the Apple M1 host users, as this should allow native execution of Eclipse on that Apple host platform. I don’t own a Mac, so cannot comment much, and my students are using less Mac machines than in the past, but it should give such users a boost. To my understanding this would be only for the IDE, because the ARM build tools are still not compiled for native Apple M1 and run on Rosetta 2 instead.
It comes with updated (V13) configuration tools and support for the SDK v2.13.x. It includes updated debug probe support (SEGGER, P&E, NXP LinkServer). The LinkServer supports now WinUSB. More about this and other notable changes in the sections below….
LinkServer, MCU-Link and WinUSB
The NXP MCU-Link and Pro debug probes support now CMSIS-DAP 2.1 and WinUSB.
There is NXP article describing the change. In a nutshell, WinUSB provides higher performance compared to the previous USB HID implementation. For using WinUSB, the probe firmware has to be updated (Version 3.x), and WinUSB based debug probes are only recognized with the IDE 11.7.0 (or later). Previous probes with older firmware continue to work with 11.7.0, but newer probe firmware won’t work if used with a previous IDE version, unless I would downgrade the probe firmware. I have upgraded my MCU-Link Pro(s) with the firmware 3.108, and indeed debugging feels faster now. I keep a few probes on the previous firmware version: that way I don’t have to switch the probe firmware if I want to use it with the previous IDE. Overall, I’m very pleased with the increased performance.
Explicit Encoding Set
The new Eclipse version wants to have an explicit coding set for each project. Importing projects from earlier Eclipse versions gives a warning:
Project <...> has no explicit encoding set
I could ignore it, or better fix it. The easiest way is to use the context menu and use ‘Quick Fix’:
With this, I can fix it for all projects in the workspace:
The other way would be to change it directly in the project Resource properties:
The IDE comes with support for Open-CMSIS-Pack. ARM started years ago the CMSIS-Pack initiative to simplify software and driver distribution, which was not successful. ARM then had transferred the CMSIS-Pack technolgy to Linaro, with the hope to make it more open and acceptable outside of the ARM world. In my view, this will depend on adoption and the availability of software packs. But at least the IDE is providing support to consume Open-CMSIS-Packs once they are available.
In the workspace settings I can configure the folder and repositories:
Eclipse has added a dedicated CMSIS-Pack Manager Perspective:
The perspective gives me views for the devices, boards and packs:
The project view includes a container for the packs added to the project:
💡 To have that menu item available, remove and SDK support with the context menu and use ‘Remove SDK support’.
Binary Project ELF File Importer
A really cool new feature is the ability to import an executable (ELF/Dwarf) file into the workspace and being able to debug it, without the need for the sources or other files.
With the menu File > Import I can select the importer;
Then select the ELF/Dwarf file and specify the MCU:
This then creates a container ‘project’ which I can use to debug the binary without the sources:
A nice addition is the ablity to set a watchpoint directly on a peripheral register, making debugging easier:
RTOS Thread Awareness Logs
The IDE comes with RTOS thread aware debugging (TAD) and views for FreeRTOS, ThreadX/Azure and Zephyr.
The plugins create folders and files which are stored and ‘clutter’ the workspace folder: this can be of an issue if running automated tests or if I want to keep the workspace folder as clean as possible. The new IDE comes with a setting to disable creation of the log files which is appreciated:
Several fixes have been applied in the area of energy measurement and power profiling.
The MCU-Link Pro has differerent measurement ranges which can be set with a jumper. That range is now shown in the list of data sources:
Note that the above information is only shown with the LinkServer probe firmware v3.x (WinUSB, see above).
The release notes lists many fixes and improvements for SWO trace. For example the SWO configuration shows both the trace and target core clock speed are shown: this makes sense for devices like the M7 where they are not the same. I’m not having such a device on my desk, but it should show below the core clock speed in the dialog below (this one is for the LPC55S16, and there the clocks are the same, so no extra clock is shown). I will try it with an M7 once I get one in my hands.
Otherwise: the detected speed is shown as well below.
I’m currently working on SWO stdio redirection, so I plan to write more about SWO in a future article.
This is a very solid new release and update for me. The new and updated features will be very useful in the labs next semester, notably the enhancements around power and energy measurement/profiling which are part of a low-power and low-energy lab.
Happy Xpressing 🙂
- NXP download site: https://www.nxp.com/mcuxpresso/ide/download
- Community Announcement: https://community.nxp.com/t5/MCUXpresso-IDE-Knowledge-Base/MCUXpresso-IDE-v11-7-0-Now-Available/ta-p/1585337
- previous version: MCUXpresso IDE 11.6.1