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!
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
Developing firmware that can be reused is an important and critical skill. The majority of engineers and teams that I interact with are stuck constantly reinventing the wheel on every project that they work on. In order to help developers understand how they can create not just reusable application code but reusable firmware, down to … Continue reading Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers
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
Hardware In-Loop (HIL) testing runs the test case code on the target microcontroller rather than using a mocked software layer to act as the hardware. HIL testing can be extremely useful for verifying that hardware accesses from a HAL are working as expected and even test that all outputs from the system work as expected. … Continue reading Hardware In-Loop Testing
Course Overview: The greatest challenge facing embedded system developers is debugging software. Embedded systems have become very complex systems running real-time operating systems, connectivity stacks, USB, security among a wide variety of other application code. Many engineers are still debugging using only break-points which is inefficient and won’t find most problems. In this course, Jacob … Continue reading CEC – Debugging Real-time Embedded Software – Hands-on