A few days ago NXP has released a new version of their Eclipse IDE flagship: the MCUXpresso IDE v11.0.
The previous v10.3.1 was released back in Feb 2019, and the 11.0 now in June this year matches up with the Fall university semester. I appreciate that the releases are about every 6 months, so this gives me time to use it in my university lecture material and lab work. I had the weekend for trying it out, and I’m very pleased.
On a top level
There are lots improvements in this release for which the release notes are a good starting point. A few things noteworthy on the top level:
- The Eclipse framework has been moved to 4.10.0v201812 with CDT 9.6.0. As a consequence, this is now 64bit on Windows too. It runs on Windows (7,8,10), Ubuntu (16.04 & 18.04 LTS) plus on MacOS (10.11 or later).
- The ARM toolchain has been updated to GCC8 with the 2018q4-major release$
- The MCUXpresso Config tools have been integrated with version 6
- The IDE supports the latest NXP SDK 2.6 release
- Both SEGGER J-Link (v6.44i) and PEMicro debug probe (v4.13) software has been updated
- Extended support for Cortex-M33 based MCUs which includes SWO Trace
As always, the release notes and the user manual are a good source of information.
Below are some times which I have found very useful:
The default ‘Develop’ Eclipse perspective has an improved layout. There is is third column in the layout.
The ‘Outline’ and ‘Terminal’ views are now by default included in this perspective.
A new ‘Analysis’ menu gives an easy access to trace, SWO and Power views:
This is a new feature/view in the MCUXpresso IDE. It is a kind of ‘super symbol browser’ and very useful to get an overview about the application. It works both for the image of a project or I can load an external image for analysis.
One tab shows the memory areas and how much they are used:
The ‘Memory Content’ tab shows all the symbols, kind of super linker map file which can be sorted or I can search for items. Best of all: I can double-click on an item and it jumps to the source file for it (if applicable).
If the application is compiled -fstack-usage, then it shows the call graph with the needed stack size (nice!):
The view can even compare multiple binaries, very useful to find differences:
Heap and Stack Usage
The MCUXpresso IDE already has excellent (even improved, see next) support for Heap and Stack usage for FreeRTOS projects, it features now as well a view for baremetal (no RTOS) heap and stack usage.
Similar to the FreeRTOS views the allocation is shown with green/orange/red color bars. Using the green icon in the toolbar the data can be updated while the target is running. Technically this only works for the heap, as the stack pointer cannot be read by the debugger without halting the target. Which heap symbols are used for the heap monitoring can be configured in the project settings:
The FreeRTOS menu has been updated and shows up with new icons and all the supported views:
The views do support FreeRTOS V10. I’m using the latest and greatest FreeRTOS V10.2.1 and it works perfectly with all the different views.
The FreeRTOS Queue List view supports shoing the queue data in the view, including semaphore and mutex:
The FreeRTOS timer list shows the status of the timer queue with the callbacks configured:
The Heap view supports all the standard FreeRTOS heaps:
It supports FreeRTOS Heap 5 (splitted memory heaps) as well:
Overall, the views look clean and integrate very well with the IDE.
For slow targets and debug connections, there is now a ‘timeout’ value setting in the IDE preferences:
The LinkServer (e.g. LPC-Link2) launch configuration is a new icon, and the configurations (as needed) get migrated to a new format:
More important, the settings have been overhauled and make it easier to select and find things, or is using standard Eclipse CDT settings to be uniform across different debug probes. This makes things like attaching to a target, configure the reset handling or custom startup behavior easier to configure.
Editor Syntax Coloring
The new IDE includes editor color coding for the Linker map (.map) and command (*.ld) files:
Both work together with the Outline view:
The support for live variables (including drawing graphs) is now supported for P&E and SEGGER debug probes in addition to the LinkServer connection:
The IDE supports the new SDK 2.6.0 which gets rolled out the same time.
The SDK components are now grouped in tabs and on the right there is a new summary pane:
With a button, details of the SDK can now be put as hidden:
Creating or importing an SDK example now automatically opens the main file in the editor. This and other options can be configured in the IDE workspace settings:
Another imporant thing with that IDE: it solves a long-standing (and most of the time hidden) issue with CDT and include path resolution, causing ‘unresolved include’ in the Eclipse Editor. There is now a ‘Fixup Parser’ project context menu which can be applied to such projects:
I have been moved and used the new IDE for most of my projects (not all yet, because lack of time), and I have found no issues: the launch configurations get migrated, and that’s it. Installation of the IDE does not require uninstalling the previous version, and as a good practice I will keep the previous V10.3.1 for a while anyway.
The V11 of the MCUXpresso IDE is again a big step forward: new Eclipse version and 64bit, updated ARM toolchain, extended debugging support for P&E and Segger in addition to the LinkServer connection. The Global Variables view now supports live variables and graphing for P&E and SEGGER in addition to the LinkServer connection. The new views with the Build Analysis, Image Info, Stack usage and Call Analysis are very useful. And for bare metal applications it includes a heap and stack usage view too.
Happy Xpressing 🙂
- MCUXpresso IDE web page: http://www.nxp.com/mcuxpresso/ide
- MCUXpresso SDK web page: http://mcuxpresso.nxp.com/
- Community article about the new release: https://community.nxp.com/community/mcuxpresso/blog/2019/06/14/new-mcuxpresso-software-releases-now-available