The very terminology that we use when developing embedded software can set our perspective and have potentially devastating effects on our ability to deliver successfully. The most commonly used term to describe an issue with software is that “there is a bug” or that the code is “buggy”. The term bug implies that there is … Continue reading Bugs and Errors and Defects, Oh My!
Semi-hosting is a debugging capability supported by ARM processors that allows the embedded target to access i/o capabilities on a host PC through the debugging interface. The i/o capabilities are most often used with printf to transmit text data to a virtual terminal within the debugging environment but it can also be used for file … Continue reading Tools – Getting a grip on Semi-hosting
The greatest annoyance that I’ve ever encountered when developing embedded software is when I have to guess at what the software is doing. Back in the day, the best insight a developer could get into their application was to blink an LED and correlate it to the code that was executing. Today’s processors and development … Continue reading Tools – OS-Aware Debugging
When using an Eclipse based IDE to debug an embedded system, undoubtedly the reader has come across the reset and restart buttons in the debug perspective. From a high-level view, these two options may seem the same but there are important differences on when a developer should use restart over reset. Let’s look at how … Continue reading Embedded Basics – The Difference between Restart and Reset
Finally! I have a J-Trace in hand and I am ready to wreak havoc on those pesky software bugs that always toy with me! A little more than a year ago I decided that I couldn’t stand using low-cost, one-off debuggers any longer and needed to invest in a real debugging tool that I could … Continue reading Tools – A First Encounter with the SEGGER J-Trace
Peering into a microcontroller and seeing how the embedded software is executing has always been important to embedded software developers. In the good old days, developers used to have to instrument their hardware with extra outputs and use all kinds of tricks in order to take a stab at understanding what was happening with their … Continue reading Embedded Basics – Setting up Tracealyzer to Debug FreeRTOS Applications
Debugging is one task every developer wants to avoid but it is unfortunately a necessary evil of software development. When the time comes to roll-up your sleeves and start a debugging session, there are 7 tips that every developer should be mindful of. Tip #1 – Take controlled baby steps When a bug creeps into … Continue reading Tips and Tricks – Debugging Embedded Software
Every embedded software program starts with a basic foundation from which the application is built. A successful application requires that the developer build the application using knowledge of the eight pillars of embedded software which include: Architecture Code Analysis Debugging Documentation Language Skills Standards Testing Tools / Ecosystem Skill deficiencies in any of these pillars … Continue reading Mastering the 8 Pillars of Embedded Software