Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

At Barr Group, our mission is to help as many embedded systems engineers as possible make their products safer, more reliable and more secure. In addition to providing product design, consulting, and training services, we encourage our engineers to share their technical expertise by writing and teaching. We hope that you will learn something from these free how-to articles. Please respect the copyright notices at the bottom of each page.

Usability for Non-Graphical User Interfaces

 Printable PDF

The placement of knobs, buttons, and switches is as essential as the firmware to making a usable embedded system.

How to Design Software-Friendly FPGAs and ASICs

 Printable PDF

Designing firmware-accessible debugging resources into embedded systems provides a valuable supplement to hardware test and analysis tools. Think ahead about what could go wrong during hardware testing or firmware integration, and add the hardware resources needed to troubleshoot those issues.

How to Design a Software-Friendly DMA Module

 Printable PDF

These built-in troubleshooting resources for DMA controllers can pave the way for smoother embedded software integration.

State Machines for Event-Driven Systems

 Printable PDF

State machines are perhaps the most effective method for developing robust event-driven code for embedded systems.

Introduction to Hierarchical State Machines (HSMs)

 Printable PDF

The formalism of Hierarchical State Machines (aka statecharts) makes the state machine approach truly applicable to real-life embedded systems.

Design by Contract (DbC) for Embedded Software

 Printable PDF 

What is the Design by Contract programming philosophy, what can it do for you, and why should all embedded software developers care?

Patterns of Thinking in Software Development

 Printable PDF

Metaphors and analogies can be valuable tools for learning new software concepts and tapping subject matter expertise during embedded software development.

How to Code a State Machine in C or C++

 Printable PDF

A state machine is any object that behaves different based on its history and current inputs.  Many embedded systems consist of a collection of state machines at various levels of the electronics or software.

How to Have Polymorphism Without a Heap

 Printable PDF

Rethinking basic programming techniques can avoid many of the problems that heap-based memory management poses for embedded real-time system designs.

Pages

What’s happening and how it’s done. Get in the know.

Sign up for our newsletter today!

Receive free how-to articles, industry news, and the latest info on Barr Group webinars and training courses via email. 

To prevent automated spam submissions leave this field empty.