FreeRTOS Kernel Awareness with Ozone

In my first post about Segger Ozone (see “First Steps with Ozone and the Segger J-Link Trace Pro“) I missed the fact that it includes support for kernels like FreeRTOS. So here is how to show the FreeRTOS (or any other RTOS) threads with Ozone:

freertos-threads-in-ozone

freertos-threads-in-ozone

Continue reading

First Steps with Ozone and the Segger J-Link Trace Pro

From time to time I face some problems which are really hard to find. Mostly these kind of bugs are very timing sensitive and depend on interrupt execution order. Maybe a dangling pointer is overwriting memory, code is running wild, or some functions are not reentrant as they should be. For these kind of bugs, good tools are worth their weight in gold. The Percepio FreeRTOS+Trace and the Segger SystemView have helped me many times to narrow down such kind problems in my applications. Another ultimate tools is hardware trace: Now I have a Segger J-Trace Pro for ARM Cortex-M in my arsenal of bug extinguishing weapons on my desk:
Dear bugs, look what I have on my desk. Your hiding time is over! šŸ™‚

tracing-cortex-m4-with-j-trace

tracing-cortex-m4-with-j-trace

Continue reading

Tutorial: RFID Tags with the NXP NFC Controller PN7120 and Eclipse

Playing with RFID and NFC is definitely fun :-), and they are everywhere! For a research project I’m exploring different RFID tags and solutions. I several types around for a long time, but never found the time to actually work on it, so last nightI thought I give it a try, and I have it working with GNU ARM and Eclipse, powered by the NXP FRDM-K64F board šŸ™‚

NXP NFC PN7120S

NXP NFC PN7120S with a FRDM-K64F Board

Continue reading

Tutorial: Blinky with Kinetis SDK V1.3 and Processor Expert

This tutorial goes through the steps how to create a blinking LED application, using Kinetis SDK and Processor Expert, using the TWR-KL43Z48M board from Freescale (now NXP):

twr-kl43z48m

twr-kl43z48m

Continue reading

Enclosure for the Remote Robot Controller with LCD Display

The first enclosure for the INTRO robot remote controller board (see “INTRO Robot Remote – First Production PCB“) is ready, and it is looking good:

Enclosure for the Remote Controller Board

Enclosure for the Remote Controller Board

Continue reading

Central Switzerland in Timelapse

Video

The past weeks have been extremely busy with the new semester started. As a result, no time for new posts on this blog for nearly three weeks :-(.

Until my projects-in-progress about MQTT, Time-of-Flight sensors, LoRa (long range) wireless networking and a cool robotics project are ready, here is something to share with you all: a cool time-lapse video of my home and work area, created by Pirmin Henseler: 2 years, 30’000 pictures, 2 broken cameras, and the result is amazing:

It reminds me again how beautiful the world is.

Happy Timelapsing šŸ™‚

ARM Cortex-M Interrupts and FreeRTOS: Part 3

This is the third part about ARM Cortex-M and how the interrupts are used. In Part 1 I discussed the Cortex-M interrupt system and in Part 2 I showed nested interrupt examples. This part is about FreeRTOS and how it uses the Cortex-M interrupt system.

NXP KV58F ARM Cortex-M7

NXP KV58F ARM Cortex-M7

Continue reading