Have you looked at your linker output file recently?

Of all the myriad of files involved in a typical embedded firmware project, probably the two most feared (and yes I do mean feared) are the linker control file (which tells the linker how to link your application) and the linker output file. Today it’s the latter which I’ll be talking about. The linker output […]

Read More

Improvements versus Features

I’m taking a slight detour from my usual topics to blather about what I see as an unfortunate trend that is making its way from the PC world to the embedded world. My perception is that as more embedded systems get sophisticated user interfaces, the desire to add features seems inescapable. While I don’t see […]

Read More

Stalemate – Providing Helpful Help

I am sitting on a plane, and decided to have a game of chess with the on-board entertainment system. The player is required to first select the piece to move, and then the set of possible destinations for that piece are highlighted. The player then selects one of the destinations. At some point I selected […]

Read More

Efficient C Tips #3 – Avoiding post increment / decrement

It always seems counter intuitive to me, but post increment / decrement operations in C / C++ often result in inefficient code, particularly when de-referencing pointers. For example for (i = 0, ptr = buffer; i < 8; i++) { *ptr++ = i; } This code snippet contains two post increment operations. With most compilers, […]

Read More