Embedded Basics – Values and Side Effects

Many embedded software developers learn to program for embedded systems on the fly.  The result is usually an informal introduction to the language that often misses key terminology and leaves gaps of understanding.  Let’s explore a few common C programming language concepts that are often misunderstood by developers. Often developers early in their career will … Continue reading Embedded Basics – Values and Side Effects

Tips and Tricks – Learning to write portable code using ANSI-C

Embedded software engineers should be interested in writing production software that is portable and reusable.  Societal demands for refreshing embedded systems every 12 – 18 months are quite demanding and starting from scratch for many systems is just not realistic.  As developers we really should be interested in working on the cutting edge and not … Continue reading Tips and Tricks – Learning to write portable code using ANSI-C

Tools – The Sandlot

The mindset that an engineer has about the work that they are doing can have a large impact on the success or failure of a project.  Many professional developers have grown accustomed to using “sandboxes”.  The problem with the sandbox concept is that it gives the illusion that the result of the work being done … Continue reading Tools – The Sandlot

CEC – Writing Portable and Robust Firmware in C

Course Overview: The software development cycle is always a mad dash to the launch date. Firmware developers have their hands full architecture, design, implementation and testing. Starting from scratch is a herculean effort that is time consuming and no longer possible in today’s market places. This course will demonstrate how to write portable and robust … Continue reading CEC – Writing Portable and Robust Firmware in C

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

Embedded Basics – The difference of ‘ ‘ and ” “

Embedded software developers commonly interface with low level sensors and have a good understanding of how to work with signed and unsigned types but when it comes to strings and character types, many developers are easily confused.  Take for example using ‘v’ and “v” in a definition or as a function parameter.  Many developers would … Continue reading Embedded Basics – The difference of ‘ ‘ and ” “

Tips and Tricks – Introduction to ARM CMSIS

Microcontrollers have become extremely sophisticated over the last decade and developing firmware from scratch starting with the reset vector is quickly becoming a thing of the past.  Software complexity is increasing at an exponential rate and causing developers to rely on and leverage 3rd party components at an ever increasing rate.  In order to ease … Continue reading Tips and Tricks – Introduction to ARM CMSIS

Tools – Open Source Circular Buffers

Circular buffers are a critical component to have in the embedded software engineers’ toolbox. Over the years there have been many different implementations and examples of circular buffers that have littered the internet.  I’ve grown particularly fond of the open source CBUF.h module that can be found at https://github.com/barraq/BRBrain/blob/master/firmware/CBUF.h The CBUF.h module implements a circular buffer using … Continue reading Tools – Open Source Circular Buffers