How-to articles about designing safe, reliable, and secure embedded systems.
Reduce Energy Use via Power Debugging
According a recent study by the European Union, approximately 10% of electricity used in homes and offices is 'vampire power'. That is to say that even when many products, especially embedded systems, are turned "off" they are still consuming power! The same report puts the total amount of energy wasted in this way, within Europe alone, at dozens of Terawatt hours per year.
Top 10 Causes of Nasty Firmware Bugs
Finding and killing latent bugs in embedded software is a difficult business. Heroic efforts and expensive tools are often required to trace backward from an observed crash, hang, or other unplanned run-time behavior to the root cause. In the worst case scenario, the root cause damages the code or data in a subtle way such that the system still appears to work fine or mostly fine--at least for a while.
The Aging of Embedded Systems Designers
The results of Barr Group's 2017 Embedded Systems Safety & Security Survey are in (free PDF available at: https://barrgroup.com/Embedded-Systems/Surveys/2017-embedded-systems-sa…). More than 1,700 active, professional embedded systems designers from around the world participated.
3 Things Every Programmer Should Know About RMA
Real-time systems design and RMA go together like peanut butter and jelly. So why is it that wherever I go in the embedded community, engineers are developing real-time systems without applying RMA? This is a dangerous situation, but one that is easily remedied by ensuring every programmer knows three things about RMA. In case you are entirely unfamiliar with RMA, there's a handy primer on the technique at Introduction to Rate Monotonic Scheduling.
How to Minimize Interrupt Service Routine (ISR) Overhead
With all the automation available today, it's easy for programmers to overlook costly overhead introduced into machine code by the compiler. Interrupt handlers are one key area worthy of a closer inspection.
Usability Standards for Medical Devices
Examining the structure of the ANSI and ISO usability standards is the first step to developing medical devices that protect users from accidents.
The Perils of Preemptive Multitasking
Every commercial RTOS employs a priority-based preemptive scheduler. This despite the fact that real-time systems vary in their requirements and real-time scheduling doesn't have to be so uniform. Multitasking and meeting deadlines is certainly not a one-size-fits-all problem.
How to Handle User Errors
With thoughtful design, user interfaces for embedded systems can avoid some user errors altogether and helpfully guide the user through the rest.
How to Use C's offsetof() Macro
C's offsetof() macro can be a helpful addition to your bag of tricks, including for packing data structures and describing how EEPROM data are stored.
Pagination
Barr Group's engineers wrote these resources for working developers. When firmware and electronics end up in litigation, we also serve as software expert witnesses.