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 :-).
Category Archives: Embedded
Configure hidden and internal Shortcuts in Eclipse
A very useful feature in Eclipse is Ctrl+Shift+L which lists all the available shortcuts:
Pressing Ctrl+Shift-L again will open up a dialog where I can configure them. But what if the shortcut or action is not listed there?
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):
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:
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.
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)
Getting Started with Microsoft Azure RTOS (aka ThreadX)
If you are a regular reader of my articles, you probably know that I’m using FreeRTOS in most of my applications, for obvious reasons. But clearly this is not the only RTOS out there. After Microsoft had acquired Express Logic back in April 2019 things kept quite for a while. To me the crown jewel of Express Logic is the ThreadX RTOS. But recently Microsoft is pushing more and more the ‘Azure Sphere’ and trying to monetize the ‘IoT’ (I apologize for mentioning that overused acronym) application space and providing it now free for devices from selected partners which includes NXP now.
Debugging Bootloader and Application with one Debug Session
If having a boot loader running on a micro-controller, it is very useful if both the boot loader and the loaded application can be debugged together:
Power Measurement with the PEmicro Multilink Universal in Eclipse
Implementing low power in embedded applications implemented can be challenging. Measuring current consumption is a first step to see if the software changes indeed have an effect on the current consumed. The PEmicro Universal Multilink FX debug probe comes with a useful feature to provide power to the target and the same time to measure the current consumption and to show the current used in the Eclipse IDE:
FreeRTOS and Eclipse Indexer for >5K Lines Source Files
Eclipse has a great built-in source code parser and browser (aka ‘Indexer’). It is basically a built-in compiler which parses the source files and assists the user with code completion and navigation help, making Eclipse this awesome productivity tool. On the downside this background parsing could potentially slow down things, and therefore Eclipse has some default settings to prevent this. Unfortunately, the FreeRTOS Kernel ‘tasks.c’ file is above-and-beyond of a ‘sane’ source file and will hit the default limits: as a result the ‘tasks.c’ file is not indexed and things like ‘Open Declaration‘ might not work for the file ‘tasks.c’.









