In my opinion, one of the worst, most annoying faults to debug on an Arm Cortex-M microcontroller is a hard fault. If you are lucky, the hard fault appears after you’ve made some glaringly obvious mistake, and you can quickly undo it. I recently worked with a colleague who encountered a hard fault, but it … Continue reading How to Debug a Hard Fault on an Arm Cortex-M
Month: May 2022
3 Tips for Avoiding “Reactive” Engineering
Over the years, I’ve noticed that engineering teams fall into two camps: reactive and proactive. As one might guess, the most successful teams are proactive. They identify potential problems before they occur and put into play a series of contingency plans that allow them to navigate the issues nearly seamlessly. On the other hand, reactive … Continue reading 3 Tips for Avoiding “Reactive” Engineering
Simple Tricks to Minimize “Crossed-Wire” PCB Rework
One of the most common issues I see with schematic and PCB layout is crossed wires. For example, the designer has connected the USART peripherals transmit line to the transmit line of the receiving device instead of the receiving line. The designer thought they had it right, but maybe each device specified what Tx and … Continue reading Simple Tricks to Minimize “Crossed-Wire” PCB Rework
3 Tips for Embedded Software Configuration Management
Embedded software configuration management can be a tricky endeavor. Systems today are often designed to work in multiple products, for various customers, over long-time frames. These systems require the ability to be easily configured so that the code does not become a nightmare and minimize the chances of improperly configuring them. In this post, we … Continue reading 3 Tips for Embedded Software Configuration Management