Hey Google: Find ‘Error from StubMonSemihost: “monitor” command not supported by this target.’

Something what I say quite often is: “Google is your friend”. It means that the answer to many questions can be found with an internet search engine. And I have to admit that I have to ‘google’ my own articles to find solutions for problems I feel I have seen in the past too :-).

But for the one problem below I did not find anything: not on my own blog, and not anywhere else in the internet:

Exception

Exception

Continue reading

MCUXpresso IDE V11.3.0 for 2021

I’m in the middle of the university exam season: means writing exams and do grading. The same time the new semester is approaching too and I need to prepare the new course material. For the classes using NXP parts I’m using the Eclipse based MCUXpresso IDE, and I just received the announcement that a new version V11.3.0 is available: time to check out what is new.

MCUXpresso IDE v11.3.0 (Build 5222)

MCUXpresso IDE v11.3.0 (Build 5222)

Continue reading

MetaClockClock V4 for the Year 2021

I had a few of PCBs left over from the V3 MetaClockClock, and originally I planned to finish a build with them by the end of 2020. But as always: things took a bit longer than expected, so I finally finished it today on the first day of the year 2021.

The build uses the same hardware as in the previous V3, but instead of an ‘artistic’ canvas background I decided for a more natural and wood design:

V4 with Walnut Veneer

V4 with Walnut Veneer

Continue reading

New MetaClockClock V3 finished with 60 Clocks

The holiday break at the end of the year is always a good time to finish projects started during the year. This one is about my ‘MetaClockClock’ Version 3.

Red Hands on Blue

2020 with Red Hands on Blue

Continue reading

OpenOCD with MCU-Link

The NXP MCU-Link is a powerful $10 debug probe for ARM Cortex-M devices and works with the NXP LinkServer for debugging. The LinkServer does not an implement a gdb server, so it limits its usage e.g. for scripting or command line debugging. But as MCU-Link is also a CMSIS-DAP compatible debug probe, I can use it with OpenOCD which is open source and implements a GDB server. This article shows how I can use it with the MCU-Link.

Debugging FRDM-KL25Z with MCU-Link

Debugging FRDM-KL25Z with MCU-Link

Continue reading

Standalone and Command Line Programmer with MCUXpresso

The MCU-Link is a $10 CMSIS-DAP capable debug probe which works out-of-the box with the MCUXpresso Eclipse based IDE. This is great for development, but how can I programming with the push of a button or a script? The answer is no: there is an easy way to use the debug probe outside Eclipse from a shell script, and you can use that MCU-Link probe to do the job. This is especially useful as with the example below where I have to program 60 boards this week-end :-).

Programming Boards with MCU-Link using command line

Batch Programming Boards with MCU-Link

Continue reading

Getting a 96bit Unique ID for each Kinetis Device using MCUXpresso SDK

The NXP Kinetis devices implement a UID (Unique ID) for each device, using the ‘Unique Identification Register) which is part of the SIM (System Integration Module):

SIM Unique ID

SIM Unique ID (NXP K22P144M120SF5RM.pdf Reference Manual)

While this number should be unique, I was wondering last week why students in the labs reported the same UID for multiple robots in the lab. So maybe this number is not so unique as it should be?
Continue reading

New MCU-Link Debug Probe from NXP

The NXP MCUXpressso IDE Release V11.2.1 gave a hint about a coming new debug probe, the MCU-Link which is available now:

MCU-Link debugging the LPC845-BRK Board

MCU-Link in 3D printed enclosure debugging the LPC845-BRK Board

Continue reading

RTOS Trace: TraceX with Microsoft Azure RTOS (aka ThreadX)

Having visibility and insights into a running system is highly valuable or critical: not only for optimizations but as well to verify the system design and behavior. In Getting Started with Microsoft Azure RTOS (aka ThreadX) I showed how to quickly run Azure RTOS. This article is about getting trace out of an ThreadX application and show it in TraceX.

Azure RTOS TraceX

Azure RTOS TraceX

Continue reading

Steps to use FreeRTOS with newlib reentrant Memory Allocation

Reentrancy is an attribute of a piece of code and basically means it can re-entered by another execution flow, for example by an interrupt or by another task or thread. This is an important concept and still a lot of code ‘in the wild’ does violate reentrancy. As a result the application crashes immediately in the best case. Worse it crashes randomly or even worse it behaves incorrectly 😦 .

Reentrancy is always a concern if using standard library functions, including printf() or malloc(). FreeRTOS offers a reentrant wrapper to the standard malloc() and free() (Memory Scheme 3)

Running FreeRTOS with reentrant newlib

Running FreeRTOS with reentrant newlib

Continue reading