I’ve been attempting to get the MCUXpresso SDK “hello_world” program running on the Cortex M7 on my evaluation system, using the instructions in:the “How to Run Hello World on the Cortex-M” guide (and the other guides it references). Toradex Embedded Linux Reference Multimedia image 7.3.0+build.8(2025-07-03) is installed on my system.
It’s not clear to me where the “hello_world” output should be. I’m not seeing it on the screen that I ran the Toradex easy installer on, nor am I seeing it on /dev/ttyUSB2.
When I try to run the program using cm_boot, after resetting the board, I get the suspicious message “## Auxiliary core is already up” This makes me wonder if the hello_world program is even being loaded.
Would appreciate input on where the “hello world” message should be displayed and if the “Auxiliary core is already up” message indicates a problem. I’ve tried both the .elf and the .bin files, get the same message with both.
Here’s the U-Boot output when I run cm_boot
Hit any key to stop autoboot: 0
Verdin iMX8MP # run cm_boot
4740 bytes read in 2 ms (2.3 MiB/s)
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Did you like my answer?
Hello! Thank you for your detailed question regarding running the MCUXpresso SDK “hello_world” program on the Cortex-M7 of your Verdin iMX8M Plus system.
Where should the “hello world” output appear?
The output from PRINTF in the hello_world example will not show on the display or the usual Linux serial console. Instead, it appears on a dedicated UART associated with the Cortex-M7 core, which is mapped to /dev/ttyUSB2 when using the USB debug connection. Here’s how you can access it:
Connect the USB Debug Cable: Make sure the USB debug cable is connected to the correct port on your Verdin carrier board.
Serial Devices: When attached, your host PC will map four devices: /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2, and /dev/ttyUSB3.
/dev/ttyUSB2: Output from Cortex-M7 UART (where you should see the hello world messages).
/dev/ttyUSB3: U-Boot/Linux kernel terminal.
Serial Terminal Settings: Use a serial terminal (like minicom, screen, or PuTTY) configured for 115200 8N1 on /dev/ttyUSB2.
Documentation Reference:
About the “Auxiliary core is already up” message
This message means the Cortex-M7 core already has a firmware running (it may be left from a previous boot or from a default image). U-Boot prevents reloading a new firmware unless you explicitly reset the core, so your new hello_world may not be running at all.
How to resolve this:
Prevent Linux Kernel Pin Conflicts:
The Linux kernel grabs ownership of the UART used by the Cortex-M unless you apply the correct device tree overlay. If the overlay is not applied, Cortex-M UART communication will be blocked as soon as Linux boots.
The output should appear on the Cortex-M7 debug UART output (UART_4_TXD – Module’s X1 pin 153). It will definitely not be visible in the TEZI GUI. Whether it appears on /dev/ttyUSB2 of your development machine depends on the carrier board you are using and what other USB devices are already connected to it—details I don’t have.