
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.
Whether you're using only static memory, a simple stack, or dynamic allocation on a heap, you have to proceed cautiously. Embedded programmers cannot afford to ignore the risks inherent in memory utilization.
Memory leaks can be particularly risky for long-running embedded systems. Here are some tools to identify, track, and analyze memory leaks in embedded C and C++ programs.
Controller Area Network (CAN) is the most widely-used automotive bus architecture. Here are some reasons why.
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.
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.
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.
Embedded systems programmers often value the assert() macro. This article explores the underlying definition of this handy macro, to show you how to roll your own.
The information that a user gets from a life-critical system may spell the difference between a slight mishap and a serious accident. This article addresses the issue of safety in the design of a user interface.
Concerned about the number of programmers who don't use or know about assert(), Niall explains the macro and how to use it.
Netrino® and The Embedded Systems Expertssm are trademarks of Netrino, LLC.
Website contents copyright © 1999-2008 by Netrino, LLC. All rights reserved.
Netrino, LLC • 9250 Bendix Road • Columbia, Maryland 21045 • 866.78.EMBED