Tracing with FreeRTOS+Trace from Percepio

As shown in Tracing FreeRTOS with a Hardware Probe: I have a nice hardware probe to trace out events from my application. But what about to use the target memory as trace buffer? New devices have much more on-chip memory, so this could be an attractive option. That was on my list of future extensions, but then the news came in: Percepio announced their collaboration with FreeRTOS+Trace: exactly what I needed!

It is using the same concept as the FreeRTOS Trace Probe: the trace hooks provided by the FreeRTOS API. But instead streaming it off the target as with the FreeRTOS Trace probe, it is using a RAM buffer on the device. The real cool thing is: the Percepio trace viewer is very, very nice!

Continue reading

Tracing FreeRTOS with a Hardware Probe

Using an RTOS is an excellent thing: it provides services and allows to scale my application. But it adds complexity. With many tasks, queues and semaphores it is hard to have an overview what is going on. To get visibility, Martin Bucher has developed in a bachelor diploma work the FreeRTOS Trace Probe. Continue reading

USB or not: CDC with Processor Expert

I had a PREN student showing up into my office. He wanted to choose a microcontroller for that project. One requirement put on the table was “it needs USB”. Well, I asked why USB is required. I was not surprised by the answer: “to use USB instead of RS-232”. Wow. So what he really wanted was USB CDC (Communication Device Class). Yep. Most notebooks today have no serial COM port (see “Processor Expert Configurations“). But because “USB is serial” does not mean “USB CDC is simple”. Nope. USB is not simple. But it can be with Processor Expert.

Continue reading

Men In Black are back! Flashing and FX’ing…

I have mentioned in MCU10.2 released a new feature in CodeWarrior: support for the USB Universal Multilink FX from P&E Microcomputer Systems. Two Multilink FX arrived last week at the University, and finally I had my hands around it. The first thing which came to my mind when I saw the picture of the device on the P&E website: the black boxes are back!

Can I hope for a “Special FX Edition” in that box with cool sunglasses and a flash stick to erase and reprogram FLASH memory of microcontrollers? That would definitely make the flash erasing and programming easy and fast, as in the movie. 🙂
Continue reading

Oh my! An Interrupt…

Ahhrg! Again, my microcontroller stopped in an interrupt. And I have no clue why?

Using Processor Expert in MCU10 is a great thing as it takes care about the vector table. Usually the default settings for code generation are fine, but not in my case here. If you run into a spurious and unexpected interrupt, you stop in the Cpu_Interrupt() handler:
Continue reading

A little or big Indian? A Plea for Peace…

I use a Intel processor to write this text, and this processor is is using Little Endian for the byte order. This is about Endian, not Indian :-).

Many processors I have programmed were Big Endians. With the addition of Freescale Kinetis (an ARM Cortex M4) and DSC in MCU10.2, I have a daily mixture with Big Endian (S08, ColdFire, …) and Little Endian (DSC and Kinetis).

The term “endian” is described nicely in the IEN 137 written 1980 by Danny Cohen:
“ON HOLY WARS AND A PLEA FOR PEACE“.
Continue reading

No Source Available…

I just have run across a problem: I received a project for the S08QE128, and when I started a debug session with MCU10.2, the debugger was showing “no source available”. Ahhrg. Something must be wrong…

No Source Available

No Source Available?

Well, at least I can debug on assembly level. But this is not the point. I have the sources, but somehow the debugger does not find them?
Continue reading

Make my Make with Eclipse and MCU10

I mentioned in Go Reference that MCU10 and eclipse come with a comfortable infrastructure: you add, remove, rename source files and set compiler options: managed make will take care and creates the make files for you. Make files are such a great thing because they allow you do to pretty much everything.

Classic CodeWarrior uses a different approach without make files. Exporting the project as make file did not really work, so make files were not something you could have used easily in classic. With the eclipse based MCU10 make files are the heart of the build system. In most cases using the managed make system is perfectly fine. But for a bare metal enthusiast it makes sense to use my own make file instead.
Continue reading

Go, assembly, go!

As mentioned in my post about the memory view:  I want to go down to the bits and bytes. Same applies to programming: I want to get down to the assembly instruction level, the heavy metal world :-).

Although it sounds a little bit weird in the age of object-oriented programming and C++, but sometimes I need to do ‘assembly level only’ programming on a 32bit controller too. CodeWarrior for MCU offers assembly only project creation for all the 8bit microprocessors, but for the 32bit including the ColdFire it assumes that the usual way is to use C and C++? Yes, it offers C and C++ and you can add assembly files. But how to do assembly only?
Continue reading