When I added ‘support for ARM/Kinetis‘ to my bucket list in my Percepio+Trace post, I knew it will not be straight forward. But it was a lot harder than I thought. I had to burn many week-end hours. But finally I have Percepio Trace with FreeRTOS up and running for Kinetis and ARM Cortex-M4 with CodeWarrior for MCU10.2 :-).
Breakpoints with Special Effects
As promised back in Percepio, I want to have it ported and working with the Freescale Cortex-M4/Kinetis in CodeWarrior. That’s what I’m working on now, deep into the night. While doing this, I had to generate a lot of trace data, and I used the script I presented in that earlier post: Setting a breakpoint in the trace buffer wrapper event and then export the data. But there has to be an even better way, and indeed there is one: Breakpoints with Special Effects!
Touch the Screen: Apes with Apps
I have received a new touchscreen, and all what I want to do with it in the next weeks is to get it up and running with one of my Tower modules. Touchscreens are such a great thing, not only because of Apple, iPad and all the other tablet providers. It is such a great and intuitive way to communicate with machines. And here is a great article I got forwarded at the University right on that subject:
Apes with Apps: IEEE Spectrum Article
Apes with Apps is about how Apes (Bonobos, to be exact) are great communicators with tablets and touch screens. Worth reading.
Happy Touching 🙂
Eclipse Include Browser
I’m chasing down a weird include problems in my project: Somehow it looks like the compiler is including the wrong file, causing strange compiler errors. I admit: the include order with all the #defines is pretty complicated, most of it I have inherited from an open source project. How to know who is including what, which files is included by whom? what is included directly, and what is included indirectly?
CDE Hacking: Processor and Compiler
Writing Processor Expert components is not always completely independent of the compiler and underlying microcontroller. In many cases I need to know the compiler for which the source code is generated. Or I need to know on which CPU architecture the code shall run. For this I need to know the compiler and the CPU family.
Debugging Global Variables
If I’m debugging my application in Eclipse or CodeWarrior, it shows in the Variables view the local and global variables of the current Thread and stack frame only:
This makes sense as this is usually where my focus is. And this is good from a performance point of view: The debugger does not need to read a lot of other variables from the target which I’m not interested in. But the question is: how to show the variables which are in other files if I really need to look at them?
PID with Processor Expert
In my class at the university I’m using a microcontroller attached to a DC motor from Maxon. The job of the microcontroller is to implement (among other things) a PID controller for the motor speed (or position). In the lab we implement the PID and all the related parts of the control loop without Processor Expert. But it easily can be done as well with Processor Expert components, as described here.
CDE RTOS Hacking: Show it as an RTOS component
Technically, a normal user component can implement any RTOS. This is what I did with the Micrium MicroC/OS-II component. That way the component shows up in the ‘Embedded Components’ group. But how to make it showing up as RTOS component inside the ‘Operating System’ group as the FreeRTOS component? What I want is this: to show the RTOS component under the ‘Operating System’ group of my project:
CDE Hacking: Component Icon
Ah, a lot of work went into a new Processor Expert component, and finally it shows up in the component library:
Oh, wait: *that* icon does not look nice enough for that amount of work behind the component?
CDE Hacking: *.inc Files
In my previous post I mentioned the Drivers\Common folder which has ‘include’ files. These files are maintained automatically by the Component Wizard. But what is the purpose of these files?
The Common Folder has *.inc files which are included in the driver as ‘function’ header. The .inc file contains documentation about the function and parameters for that function.

