How-to articles about designing safe, reliable, and secure embedded systems.

How to Minimize Interrupt Service Routine (ISR) Overhead

With all the automation available today, it's easy for programmers to overlook costly overhead introduced into machine code by the compiler. Interrupt handlers are one key area worthy of a closer inspection.

Usability Standards for Medical Devices

Examining the structure of the ANSI and ISO usability standards is the first step to developing medical devices that protect users from accidents.

The Perils of Preemptive Multitasking

 Printable PDF

Every commercial RTOS employs a priority-based preemptive scheduler. This despite the fact that real-time systems vary in their requirements and real-time scheduling doesn't have to be so uniform. Multitasking and meeting deadlines is certainly not a one-size-fits-all problem.

How to Handle User Errors

With thoughtful design, user interfaces for embedded systems can avoid some user errors altogether and helpfully guide the user through the rest.

How to Use C's offsetof() Macro

C's offsetof() macro can be a helpful addition to your bag of tricks, including for packing data structures and describing how EEPROM data are stored.

Portable Fixed-Width Integers in C

For embedded software developers, the most significant improvements to the C programming language made in the ISO C99 standard update are in the new <stdint.h> header file. Learn the typedef names for the new fixed width integer data types, to make hardware interfacing in C easier. 

Introduction to Controller Area Network (CAN)

 Printable PDF

Controller Area Network (CAN) is the most widely-used automotive bus architecture. Here are some reasons why.

Serial Communication Protocols: CAN vs. SPI

Distributed systems require protocols for communication between microcontrollers. Controller Area Networks (CAN) and Serial Peripheral Interfaces (SPI) are two of the most common such protocols.

Introduction to Preemptive Multitasking

 Printable PDF

Most real-time operating systems employ preemptive schedulers. This primer on preemption also looks at the kind of multitasking it enables.

Introduction to On-Chip Debug

 Printable PDF

Motorola's Background Debug Mode is one of a variety of on-chip debug technologies. Collectively, they offer some of the best features of debug monitors and in-circuit emulators—with far less headache and cost.