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.

How to Choose a Real-Time Operating System

In the market for a commercial RTOS? This article provides an overview of RTOSes and how you can select the best one for your project. It ends with a list of vendors and their products.

Introduction to Finite Impulse Response Filters for DSP

Finite impulse response (FIR) filters are the most popular type of filters implemented in software. This introduction will help you understand them both on a theoretical and a practical level.

Optimal C Constructs for 8051 Microcontrollers

The limitations of an 8-bit microcontroller (MCU) can sometimes make conventional C constructs produce suboptimal code. In this article we look at common problems on the 8051 family and discuss workarounds in C.

Introduction to Counter/Timer Hardware

Counter units (aka, timer units) are crucial components of most embedded systems and included in many microcontrollers. Here's a primer on the hardware.

Introduction to Closed-Loop Control and PID

Most control systems utilize feedback in some manner. Here's a look at several fundamental feedback mechanisms, culminating in a description of a basic PID controller.

Embedded Linux and Copyright Law

The rising popularity of Linux has spurred many embedded developers to consider it as an RTOS alternative. Here's the straight scoop on the legal implications for the proprietary parts of your firmware.

MISRA-C Guidelines for Safety Critical Software

In 1998, the UK's Motor Industry Software Reliability Association established a set of 127 guidelines for the use of C in safety-critical systems. Here's a look at the rules, what they mean, and how they can work for you.

KVM: A Small Java Virtual Machine for J2ME

Sun's K Virtual Machine gives embedded developers a virtual kick in the pants. KVM makes it possible to, for the first time, run Java programs on any 16-bit processor with 128KB of available memory.

How to Use Lint for Static Code Analysis

Language specifications, including those for C and C++, are often loosely written. A static analysis tool called lint can help you find dangerous and non-portable constructs in your code before your compiler turns them into run-time bugs.

Introduction to Priority Inversion

When tasks share resources, as they often do/must, strange things can and will happen. Priority inversions can be particularly difficult to anticipate. A basic understanding of the problem is key.


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.