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 Detect Memory Leaks

Memory leaks can be particularly risky for long-running embedded systems. Here are some tools to identify, track, and analyze memory leaks in embedded C and C++ programs.

How Endianness Works: Big-Endian vs. Little Endian

by Michael Barr

Which is the most convenient end on your system? The choices are big endian and little endian.

Some human languages are read and written from left to right; others from right to left. A similar issue arises in the field of computers, involving the representation of numbers.

Introduction to Watchdog Timers

For those embedded systems that can't be constantly watched by a human, watchdog timers may be the solution.

Introduction to Pulse Width Modulation (PWM)

Pulse width modulation (PWM) is a powerful technique for controlling analog circuits with a processor's digital outputs. PWM is employed in a wide variety of applications, ranging from measurement and communications to power control and conversion.

How to Use C's volatile Keyword

by Nigel Jones

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?

How to Preserve Non-Volatile Data Across Software Versions

The format of non-volatile data may change with a new version of software. Carefully planning data layouts and using data version numbers can make these upgrades easier.

Types of Memory in Embedded Systems

by Michael Barr

SRAM or DRAM? EEPROM or flash? What types of memory will you use in your next embedded systems design?

How to Define Your Own assert() Macro for Embedded Systems

Embedded systems programmers often value the assert() macro. This article explores the underlying definition of this handy macro, to show you how to roll your own.

How and When to Use C's assert() Macro

Concerned about the number of programmers who don't use or know about assert(), Niall explains the macro and how to use it.

How to Use Strings to Internationalize C Programs

by Nigel Jones

Products destined for use in multiple countries often require user interfaces that support several human languages. Sloppy string management in your programs could result in unintelligible babble.

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.