Designing Software Components for Real-Time Applications
Component-based software is desirable to get a system working quickly, to keep costs down, and to reuse the most robust software from prior applications. We present methods for creating your own framework for component-based real-time software without the huge cost, effort, or software overhead associated with using commercial tools that are dedicated to this task. Any C programming environment can be used to create components with minimal increase in CPUor memory usage. Discussion will focus on techniques for modular decomposition, detailed design, communication, synchronization, scheduling, I/O drivers, and real-time analysis. The solutions can be implemented as a layer above your favorite RTOS, or stand-alone for performance and memoryconstrained applications that do not use an RTOS. The techniques have been demonstrated on a variety of microcontrollers and general purpose processors, and used in applications including robotics, locomotive control, amusement devices, consumer electronics, and satellite modems.