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.

How to Design Safety into the Electro-Mechanical System Around Software

When it comes to safety-critical applications, sometimes you have to protect users from the software. And sometimes you have to protect users from themselves.

How Network Processors Work

Major semiconductor manufacturers are starting to sell a new type of integrated circuit, the network processor. Network processors are programmable chips like general purpose microprocessors, but are optimized for the packet processing required in network devices. But what are they good for and how do they work?

How to Use Watchdog Timers Properly when Multitasking

To keep a watchdog timer from resetting your system, you've got to kick it regularly. But that's not all there is to watchdog science. We will examine the use and testing of a watchdog, as well as the integration of a watchdog into a multitasking environment.

A Glossary of Open Source Legal Terms

by Michael Barr

If you are considering using software developed by others, such as Linux, within your embedded system, you'll likely need an intellectual property lawyer to read the license agreements such as GPL. Here's a brief glossary of the licensing terminology that's enough to get you started.

How to Implement Internet Protocol (IP) in C

The Internet Protocol (IP) is the glue that holds an internet together. Here's a compact implementation of the IP layer for embedded C programmers.

Address Resolution Protocol (ARP)

by Michael Barr

The address resolution protocol provides a necessary bridge between physical and logical addresses on a TCP/IP network.

Every system on a TCP/IP network has two addresses, one physical and one logical. The address resolution protocol (ARP) provides a necessary bridge between these two addresses.

Fast Accurate Memory Test Code in C

If ever there was a piece of embedded software ripe for reuse it's the memory test. This article shows how to test for the most common memory problems with a set of three efficient, portable, public-domain memory test functions.

How Ethernet's MAC Addresses Work

by Michael Barr

Merely adding a protocol stack and networking API to your software doesn't make you TCP/IP ready. You'll also need to assign your product a MAC address.

Any book on TCP/IP will tell you that each network-connected device has a globally unique hardware address. But where, exactly, do these addresses come from? And why is it that the authors of books on TCP/IP never bother to answer this or any other practical implementation question?

How to Calibrate Mechanical Inputs in Software

by Michael Barr

Embedded software developers operate in a perfect digital environment but must interact with the imperfect analog real world. To do this it's essential to know how to perform calibration of inputs and sensors.

How to Implement TCP/IP and UDP/IP for Embedded Systems

by Michael Barr

If your embedded system is on a network, the key question is: what subset of TCP/IP will you include in your product?

TCP/IP is the name given to a large collection of related networking protocols. It would be unusual in an embedded application to use all of these protocols at once. So the real question is: what subset of TCP/IP will you include in your product, if any?

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.