Butcher, Baker, Candlestick Maker

Doctors and Engineers are two of the most respected occupations in our society.  While both are highly educated and highly intelligent, in my opinion there are far more differences between the two careers than similarities.  For example, an engineer may be expected to start with a blank sheet of paper and design a complicated system, […]

Read More

RTOS without blocking?

In my previous post, “I hate RTOSes”, I have identified blocking as the main cause of the particular brittleness and inflexibility of the programs based on RTOSes. Here I’d like to discuss techniques of minimizing blocking and eradicating it completely from the application-level code. In other words, I’d like to show you how to use […]

Read More

3 Things Every Programmer Should Know About RMA

This post was originally posted in the wrong blog.  I’m reposting it here. Real-time systems design and RMA go together like peanut butter and jelly.  So why is it that wherever I go in the embedded community, engineers are developing real-time systems without applying RMA?  This is a dangerous situation, but one that is easily […]

Read More

I hate RTOSes

I have to confess that I’ve been experiencing a severe writer’s block lately. It’s not that I’m short of subjects to talk about, but I’m getting tired of circling around the most important issues that matter to me most and should matter the most to any embedded software developer. I mean the basic software structure. […]

Read More

Efficient C Tip #12 – Be wary of switch statements

This is the twelfth in a series of tips on writing efficient C for embedded systems. Like the previous topic, I suspect that this will be a bit controversial. As the title suggests, if you are interested in writing efficient C, you need to be wary of switch statements. Before I explain why, a little background will be […]

Read More