Barr Group TwitterBarr Group Vimeo

With more than three decades of electrical circuitry and embedded software design experience, Nigel has helped a wide variety of clients develop products for the consumer electronics, industrial controls, and telecommunications industries.  End products he has worked on range from portable diesel burners to underwater rebreathers and exploration vehicles.  Industries of expertise include automotive, software, telecommunications, and television. He is a prolific blogger and has published more than a dozen magazine articles about the design of embedded systems.

Optimal C Constructs for 8051 Microcontrollers

 Printable PDF

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.

MISRA-C Guidelines for Safety Critical Software

 Printable PDF

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.

How to Use Lint for Static Code Analysis

 Printable PDF

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.

How to Use C's volatile Keyword

 Printable PDF

The proper use of C's volatile keyword is poorly understood by many programmers. This is not surprising, as most C texts dismiss it in a sentence or two. This article will teach you the proper way to do it.

Have you experienced any of the following in your C or C++ embedded code?

Pages