http://www.netrino.com/Embedded-Systems/How-To

Newest articles (5)

Bug-Killing Coding Standard Rules for Embedded C

One of the biggest potential benefits of a firmware coding standard is often overlooked: a coding standard can help keep bugs out. It's cheaper and easier to prevent a bug from creeping into code than it is to find and kill it after it has entered. Thus, a key strategy for keeping the cost of firmware development down is to write code in which the compiler, linker, or a static-analysis tool can keep bugs out automatically.

Mutexes and Semaphores Demystified

The question "What is the difference between a mutex and a semaphore?" is short and easily phrased. Answering it is more difficult. In this first installment of a series of articles on the proper use of a real-time operating system (RTOS), we examine the important differences between a mutex and a semaphore.

Minimize Interrupt Service Routine 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.

The Perils of Preemption

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.

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 header file. Learn the typedef names for the new fixed width integer data types, to make hardware interfacing in C easier.

Most popular articles (10)

#1 Bug-Killing Coding Standard Rules for Embedded C

One of the biggest potential benefits of a firmware coding standard is often overlooked: a coding standard can help keep bugs out. It's cheaper and easier to prevent a bug from creeping into code than it is to find and kill it after it has entered. Thus, a key strategy for keeping the cost of firmware development down is to write code in which the compiler, linker, or a static-analysis tool can keep bugs out automatically.

#2 CRC Implementation Code in C

CRCs are among the best checksums available to detect and/or correct errors in communications transmissions. Unfortunately, the modulo-2 arithmetic used to compute CRCs doesn't map easily into software. This article shows how to implement an efficient CRC in C.

#3 How to Use C's volatile Keyword

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.

#4 Fast Accurate Memory Test Suite

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 in C.

#5 Mutexes and Semaphores Demystified

The question "What is the difference between a mutex and a semaphore?" is short and easily phrased. Answering it is more difficult. In this first installment of a series of articles on the proper use of a real-time operating system (RTOS), we examine the important differences between a mutex and a semaphore.

#6 How to Choose a Real-Time Operating System

In the market for a commercial RTOS? This article provides an overview of RTOSes and how you can select the best one for your project. It ends with a list of vendors and their products.

#7 Optimal C Constructs for 8051 Microcontrollers

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.

#8 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 header file. Learn the typedef names for the new fixed width integer data types, to make hardware interfacing in C easier.

#9 The Perils of Preemption

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.

#10 How Programmable Logic Works

In recent years, the line between hardware and software has blurred. Hardware now engineers create the bulk of their new digital circuitry in programming languages such as VHDL and Verilog. This article will help you make sense of programmable logic.


Reply via email to