Find definitions for technical terms in our Embedded Systems Glossary.

Z Symbols

Test Your Skills

How good are your embedded programming skills? Test yourself in the Embedded C Quiz or the Embedded C++ Quiz.

Test Your Skills

Newsletter Signup

Want to receive free how-to articles and industry news as well as announcements of free webinars and other training courses by e-mail? Signup now.

How-To Articles about Embedded Systems Design

Barr Group's 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 design services, we accomplish this by encourage our engineers to share their technical expertise by writing and teaching. Whenever possible, we retain the right to publish these materials in our free technical library.

In addition to the below how-to articles, be sure to also check out our other free resources:

We hope that you will learn something from these public service efforts and be motivated to share your own technical knowledge in a similar manner. But all we really ask is that you design safe and secure embedded systems and respect the copyright notice at the bottom of each page.

Articles by Subject

The following is a list of free how-to articles about embedded systems design that is sorted by general subject.

Articles about Software Algorithms
CRC Series, Part 1: Additive Checksums
CRC Series, Part 2: CRC Mathematics and Theory
CRC Series, Part 3: CRC Implementation Code in C/C++
Introduction to Finite Impulse Response Filters for DSP
Fast Accurate Memory Test Code in C
Introduction to Closed-Loop Control and PID


Articles about Embedded Systems Safety and Security
Top 10 Subtle Causes of Firmware Malfunctions
Top 5 Causes of Nasty Firmware Bugs
Securing Consumable Components of Embedded Systems such as Medical Devices
A Framework for Safe Motion Control Firmware


Articles about Data Communications, Networks and Protocols
Introduction to SAE J1939
Big-Endian vs. Little Endian: Endianness Explained
Short-Range Wireless Protocols: Bluetooth vs. IrDA
Serial Communication Protocols: CAN vs. SPI
Introduction to Controller Area Network (CAN)


Articles about Electronics Design and Hardware Interfacing
Big-Endian vs. Little Endian: Endianness Explained
Firmware-Friendly DMA Module Design Tips
Minimize Interrupt Service Routine Overhead
How Programmable Logic Works
Optimal C Constructs for 8051 Microcontrollers
Portable Fixed-Width Integers in C
How to Use C's volatile Keyword


Articles about Development Processes and Tools
Bug-Killing Coding Standard Rules for Embedded C
Mutexes and Semaphores Demystified
The Perils of Preemption
How to Choose a Real-Time Operating System


Articles about Embedded Programming in C and C++
Optimal C Constructs for 8051 Microcontrollers
Portable Fixed-Width Integers in C
How to Use C's volatile Keyword
Assembly vs. C: Which is Best for Microcontrollers?


Articles about Embedded Programming in Java
Java Compilers for Embedded Systems
Using Java in Embedded Systems
Kaffe: A Compact Open Source Java Virtual Machine
KVM: A Small Java Virtual Machine for J2ME

To be automatically notified, by email, of new free articles about how to design safer, more reliable, and more secure embedded systems, simply sign up here.