cdecl

If you ever have trouble remembering how to declare things in C (like those pesky function pointers), try out cdecl: brew install cdecl apt install cdecl Simply specify in English what you want to declare, and cdecl will show you the way: declare memcpy as volatile pointer to function(int) returning void void (* volatile memcpy)(int …

Shipping Mindset

I keep a compilation of book notes and try to review them to keep the books and lessons fresh in my mind. I came across a few Steven Pressfield quotes regarding "shipping". This mindset is important when building embedded systems - if you don't ship, you have built nothing. Why does Seth Godin place so …

cscope

When you're working on a large software project, it's extremely difficult to keep all the bits and pieces in your head. cscope is designed to help eliminate all your needless searching through files, enabling you to quickly search for: all references to a symbol global definitions functions called by a function functions calling a function …

Blanket Advice is Rarely Useful for Embedded Systems

When I'm searching for embedded systems information, it's amazing how much blanket advice I encounter - often just repeating truths from previous generations or providing advice without considering design constraints. It's important to remember how diverse embedded systems can be. You might be developing for an 8-bit microcontroller with only 4KB ROM and 1KB RAM. …

Save State Often

Developers: save state every chance you get! It blows my mind that it still needs to be said, but I was prompted after hearing this: "We never got around to properly using source control, we just didn't have the time." Unfortunately, this situation is far too common among developers, especially those moving at a fast …

The Glossary

The firmware, hardware, and manufacturing worlds involve an immense amount of jargon - for the uninitiated, listening to a conversation can sound like a crazy waterfall of alphabet soup and nonsense words. I have decided to keep a living glossary to make things more accessible for new comers. I'll also add links so those who …