Tips and Tricks – 7 Cardinal Sins of Embedded Software Development

Post Image

Every industry has their best practices and their sinful practices.  The cardinal sins are the practices that many are aware of but that are just too tempting or too easy to fall into. The embedded software industry has a number of these cardinal sins but there are seven in particular that seem to have pervaded […]

read more

7 Tips to Accelerate Firmware Development

Post Image

Embedded software development teams have a unique challenge before them; how to develop more and more firmware in shorter and shorter timeframes. How can developers get everything on their plate completed within the time allotted? Here are seven tips as food for thought. Tip #1 – Continuously Innovate Focus cannot simply be on creating code […]

read more

Ternary Operator versus the if/else statement …

Post Image

When I’m teaching “C Programming for Embedded Systems”, I’m often asked whether the ternary operator should be used or an if/else statement. Hidden behind the question is really the need to know whether the ternary operator is more efficient than if/else. One might think that compilers today would generate identical code. Let’s take a quick […]

read more

Open Source versus Commercial Compilers

Post Image

Using open source and free software seems to be engrained in the DNA of software developers. Given a choice to pay or build a developer will usually choose build. When it comes to compilers, building their own compiler would take far too long and be very error prone so developers choose open source tools such […]

read more

It’s the end of C as we know it!

Post Image

The C programming language has been with embedded software developers since its creation in 1972. Ever since then C has been a blazing constant, surviving even the big push in the late 90’s and early 21st century to move to C++ or other object oriented languages. Undoubtedly, C will continue to be a foundational language […]

read more

Tips and Tricks – Debugging Embedded Software

Post Image

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 […]

read more

7 Characteristics to Consider when Selecting an RTOS

Post Image

Selecting the right RTOS is a critical step in any embedded software development project. Selecting the wrong RTOS could affect project costs, time to market and have real-time implications on the behavior of the system. When selecting an RTOS, teams usually focus just on cost but there are seven characteristics that should be considered. Let’s […]

read more

Understanding Embedded System Failure Rates

Post Image

Embedded systems consist of two very different types of failure rates; hardware and software. The probability of a hardware failure is a well known and understand probability curve which can be observed in Figure 1. When an electronic device is first manufactured there is a short period of time where the probability of a failure […]

read more

Tips and Tricks – Writing Portable Code using Compiler Intrinsics

Post Image

All preprocessor directives are not created equal. A developer will have different preprocessor directives available depending on whether GNU C, IAR Embedded Workbench, Keil uVision or any other compiler is used. ANSI-C has a limited number of preprocessor directives that are included in the standard and can be considered portable. Compiler vendors have the ability […]

read more

CEC – Bootloader Design for Microcontrollers

Post Image

Course Overview: The ability to remotely update embedded software to add features and fix bugs is a critical piece of many embedded systems. Bootloaders are normally small programs, but they often bring out the worst and nastiest bugs for a developer. There is a need to fully understand not just the system but also the […]

read more