Change Note 2025-11-15
NXP MCUs (MCX-A346 & MCX-N947)
General
As a general remark, NXP does have capable MCUs, no question. But while the “silicon” is good, the documentation is not. The reference manuals, of crucial importance to get an MCU up and running from the bare metal without SDK, are not consistent, are incomplete, and contain plainly wrong information.
This renders the creation of a framework a rather arduous task.
Status
There is now basic support for both the MCX-A346 and MCX-N947:
- both kernels v1 and v4 are functional
- runtime error handling with stack traces
- GPIO
- serial terminal text output
plus all the bare basics to get off the ground, such as clocks, start-up resets, dynamic memory allocation, module Main.
The implemented example and test programs serve to test the above functionality.
However…
However, I am not sure I want to invest all these efforts “re-engineering” the facts expected in the documentation from the silicon reality. In other words, the future of the NXP implementation is not clear at this moment.
Then Again…
Then again, despite all setbacks and troubles, the work with the NXP MCUs has confirmed my interest in other MCU Cortex-M33 architectures and capabilities. The RPx are nicely designed and well-structured MCUs, but with limits, not least regarding the on-chip peripherals, both their numbers and capabilities. The NXPs have several ports of 32 GPIO pins, more than two UARTs and SPI interfaces, and so on. Unlike the MCX’s, the RPx’s documentation is comprehensive, consistent, and correct in most parts. As an exercise in exploration, I plan to look into an STM Cortex-M33 MCU. In the worst case I’ll invest a few more weekends and evenings into a potentially abandoned venture. :)
Library lib/v3.0
- All current modules for the MCX MCUs are inside their respective directories in the repository.
- No changes to the RPx modules.
- There are few “insights” I plan to backport to the RPx modules.
Configuration Files
- The Astrobe config files for both NXP MCUs are inside the (Astrobe for) RP2350 directory for lib/v3.0.
Example and Test Programs for MCX-x
SignalSyncandStacktracefor kernel-v1K4baseandK4semafor kernel-v4
Debugging and Flashing
- SEGGER’s J-Link probes and Ozone debugger have been a great help: when the CPU is halted – including right after reset – all registers, including of the peripheral on-chip devices, can easily be inspected. Ozone can be set up with
SVDconfiguration files for this purpose.
This Website
- Fixed links in the example program modules for all library and example versions.
- Still no reference to the NXP MCUs as of now.
- The documentation of kernel-v4 still needs improvement (I know…).