
Netrino encourages its engineers to share their technical expertise by writing magazine articles and books and by speaking at industry conferences. Whenever possible, we retain the right to publish these materials in our technical library.
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 respect the copyright notice at the bottom of each page.
Over on the left, you'll find a navigation path to all our articles. Browse by selecting a topic area of interest. Or use the links below.
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.
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.
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.
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.
For embedded software developers, the most significant improvements to the C programming language made in the ISO C99 standard update are in the new
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.
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.
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.
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.
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.
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.
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.
For embedded software developers, the most significant improvements to the C programming language made in the ISO C99 standard update are in the new
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.
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.
Find definitions for technical terms in our Embedded Systems Glossary.
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | Symbols | |||
Test your embedded programming skills in our online Embedded C Quiz or Embedded C++ Quiz and be entered to win a free seat at a future public Embedded Software Boot Camp.
Registration is now open for the popular hands-on Embedded Software Boot Camp. Consult our public training calendar for upcoming dates and locations.
Receive Michael Barr's Firmware Update newsletter for free how-to articles and industry news by e-mail. Sign up now.
Bookmark this page or share it with a colleague.
Netrino® and The Embedded Systems Expertssm are trademarks of Netrino, LLC.
Website contents copyright © 1999-2009 by Netrino, LLC. All rights reserved.
Netrino, LLC • 6030 Marshalee Dr, #355 • Elkridge, Maryland 21075 • 866.78.EMBED