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 Training, Consulting, and Product Development 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

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

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

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

State Machines for Event-Driven Systems

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

Introduction to Hierarchical State Machines (HSMs)

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

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

If you were to single out just one most effective programming technique for delivering high-quality code, what would you choose? Object-oriented programming? Generic programming? Design patterns? Software components? Frameworks? UML? CASE tools?

Patterns of Thinking in Software Development

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++

An overview of state-machine fundamentals and guidelines for coding state machines in C or C++.

Introduction to the SAE J1939 Protocol

SAE J1939 is the standard communications network for sharing control and diagnostic information between electronic control units (ECUs) which reside on heavy duty and commercial vehicles. Examples of such vehicles are school busses, cement mixers, military vehicles, and semi-tractors. Due to its popularity and success, it has been adopted by the agricultural (ISO 11783) and marine industries (NMEA2000).

How to Have Polymorphism Without a Heap

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.