Tips and Tricks – 7 Tips for Meeting Real-time Deadlines

Embedded systems must meet their real-time deadlines in order to function efficiently and as expected. No one likes to press a button and wait thirty seconds before the system finally responds. More importantly, safety critical systems need to meet their deadlines or else very bad things could happen, such as injury or death. There are … Continue reading Tips and Tricks – 7 Tips for Meeting Real-time Deadlines

Tips and Tricks – Best Practices for Programming Defensively in C

Best practices are meant to be fundamental, essential practices that every firmware application should follow. Programming defensively has always been an important software skill. Below are a few best practices for programming defensively in C that firmware developers should keep in mind: Check inputs and outputs of functions Check the return value of functions (they … Continue reading Tips and Tricks – Best Practices for Programming Defensively in C

Embedded Basics – 10 Qualities of Portable Firmware

Portable Firmware …. is modular is loosely coupled has high cohesion is ANSI-C compliant has a clean interface has a Hardware Abstraction Layer (HAL) is readable and maintainable is simple uses encapsulation and abstract data types is well documented How well do the characteristics of your software match the qualities of portable firmware?

Tips and Tricks – 7 Tips for creating and using portable types

Writing software that is reusable, portable and will stand the test of time is critical to embedded software developers. Below are 7 tips for creating and using portable types in C. Tip #1 – Use stdint.h The use of built-in data types can result in portability issues between different compilers. The C standard does not specify … Continue reading Tips and Tricks – 7 Tips for creating and using portable types

Using Conditional Complexity to Test Embedded Software

One of the areas of embedded software development that engineers seem to struggle with is testing.  Engineers often get excited about the design and implementation phases but when it comes to proving that the system works, efforts and or interest really start to wane.  This is completely understandable considering the time and effort that can … Continue reading Using Conditional Complexity to Test Embedded Software

Tools – The ANSI-C Standard

The ANSI-C standard is probably one of the most important tools that any embedded software developer has available to them.  The ANSI C standard specifies what the C language is, its syntax, behavior and features.  Despite being the foundational standard from which most embedded software on the planet is written, very few developers have actually … Continue reading Tools – The ANSI-C Standard