As a standard procedure, I add some console functionality to my embedded applications. That way I have a command line interface and can inspect and influence the target system. One interesting hardware feature of ARM Cortex-M is Single Wire Output (SWO): it allows to send out data (e.g. strings) over up to 32 different stimulus ports, over a single wire.
Category Archives: Tips & Tricks
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:
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 🙂
3D Printed Adafruit NeoPixel LED Frames
I’m experimenting with different 3D printed LED frames printed with ABS (see “Avoid Warping ABS on Ultimaker 2“). I frame multiple Adadfruit 8×8 NeoPixel WS2812B LED modules with 3D printed diffuser and frames to create color effects:
ARM Cortex-M, Interrupts and FreeRTOS: Part 2
In “ARM Cortex-M, Interrupts and FreeRTOS: Part 1” I started with the ARM Cortex-M interrupt system. Because the ARM implementation cann be very confusing, I confused myself and had to fix and extend the description in Part 1 :-). Thank for all the feedback and comments!
Originally I wanted to cover FreeRTOS in Part 2. Based on the questions and discussions in Part 1 I thought it might be a good idea to provide visual examples.
Avoid Warping ABS on Ultimaker 2
3D printing is like cooking or like BBQ: It is more about barometric pressure, humidity and temperature than you might think of. To me, printing (and cooking) is a combination of art and science. And as with cooking, sometimes the result is not usable.
I’m very happy with the Ultimaker 2 printing PLA material. For a LED matrix project I have to use ABS as this material is suitable for higher temperature: PLA simply will not stand the heat produced by the LEDs I’m going to use. And here the joy ended: printing using ABS was definitely no fun. While the first small test print came out OK, I produced afterwards a pile of unusable parts because of warping :-(.
Apple Juice Brined Pulled Pork
After brining fish (see “Cedar Planked Smoked Sesame Salmon and Tuna“) and thanks to Greg I’m now exploring brining pork shoulder for pulled pork. Pulled pork is amazingly simple, but requires preparation work. Brining adds to this, but is well worthy.
Eclipse and GDB: Process Properties, Arguments and GDB Traces
To me this was new, and thanks to Liviu I know now how to inspect the command line passed to the GDB server (see “Semihosting (again!) with NXP Kinetis SDK V2.0“) 🙂
Four States BBQ Sauce for Pulled Pork (or anything else)
It seems that my pulled pork BBQÂ (see “Tutorial: BBQ Pulled Pork“) gets more and more fans :-). We will have a BBQ party for 10 person tomorrow evening :-). In preparation for that, the two pork shoulders started brining in the refrigerator from yesterday night on. Today we prepared the BBQ sauce for tomorrow, in four different styles: North Carolina, South Carolina, Alabama and Kansas:
Semihosting (again!) with NXP Kinetis SDK V2.0
I kind of hoped that after “Why I don’t like printf()” and all my other articles about printf and semihosting, that topic would be 200% handled and I won’t have to deal with any more. Well, I was wrong and underestimated how the Kinetis SDK is interfering with semihosting. And I underestimated how many of my readers are still using semihosting (even as there are other and better alternatives), so I keep getting questions and requests for help. That’s ok, and I hope I can help :-).
So here is yet again another post about how to turn on semihosting with Eclipse, GNU ARM Embedded and the Kinetis SDK v2.0. This time with the FRDM-K64F board:









