How embedded software is designed and built has evolved over the last several years. Embedded systems are no longer simple disconnected systems but powerful microcontroller-driven devices balancing connectivity, machine learning, and real-time control. This course will explore how to design and build modern embedded systems that use microcontrollers. Registration and Playback are located here (May require … Continue reading CEC – Embedded Software Design Techniques
Category: Tips and Tricks
How to Debug a Hard Fault on an Arm Cortex-M
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
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
5 C++ Tricks for C Programmers
Over the past several years, C++ has become a more popular language to use in embedded systems than C. Don’t get me wrong, C will continue to be a dominant language for years to come, but C++ offers developers modern tools to leverage when designing more reusable, scalable, and portable code. Teams aren’t just abandoning … Continue reading 5 C++ Tricks for C Programmers
5 RTOS Design Best Practices
RTOS design has become critical to many embedded applications. RTOSes are used in more than 50% of embedded applications and with so many devices becoming connected and starting to use machine learning, those numbers will only go up. When designing an RTOS-based application, there are many caveats and it is easy to overlook best practices. … Continue reading 5 RTOS Design Best Practices
3 Tips for Successfully Simulating Embedded Software
As an embedded software engineer, it’s really easy to think that all the software for the product is reliant upon the hardware. Most embedded developers that I encounter want to get a development board right out of the gate and start writing software, including myself most of the time. It’s not necessarily wrong, it’s just … Continue reading 3 Tips for Successfully Simulating Embedded Software
5 Embedded Technologies to Master in 2022
Happy New Year! I always enjoy the start of a new year. The opportunity to reflect on what went well and didn’t last year and continue making improvements is fun. Every year, I take some time to examine different embedded technologies, mainly related to microcontroller-based systems. The purpose of reviewing these technologies is to provide … Continue reading 5 Embedded Technologies to Master in 2022
3 Tips for Unit Testing Embedded Software
How do you know that your software is working the way that it is supposed to? You test it! The real question, though, is “How do you test it?”. In the old days, developers used to just manually test their software. Unfortunately, manual testing is not a great way to test software. The sheer number … Continue reading 3 Tips for Unit Testing Embedded Software