WFI and JTAG

JTAG and wfi do not place nicely together. You've probably noticed this yourself, wondering why JTAG can't connect or a halt/breakpoint doesn't work. When the ARM core is executing the wait for interrupt operation, the core is placed into a low power mode and the core clock is gated. This wreaks havoc with JTAG, as …

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 …