Embedded System Design Patterns
- Object Design Patterns
- State Design Patterns
- Hardware Interface Design Patterns
- Protocol Design Patterns
- Architecture Design Patterns
- Implementation Design Patterns
Object Design Patterns
- Half Call Design PatternHalf Call design pattern helps in simplifying systems which support interworking of multiple protocols.
- Manager Design PatternReal-time software generally manages multiple entities of the same type. Manager Design Pattern is used to control these entities.
- Resource Manager PatternResource Manager keeps track of allocated and free resources.
- Message Factory and Message Interface Design PatternMessage interfaces and the rest of the logic can be decoupled using this design pattern
- Publish-Subscribe Design PatternsDecoupling of publisher and subscriber of information can be achieved by applying these design patterns.
State Design Patterns
- Hierarchical State MachineHierarchical State Machine design is introduced and compared with conventional state design.
- State Machine InheritanceThis article discusses several ways in which new state machines can be defined by inheriting from existing state machines.
- Collector State PatternThis state pattern is used when the recipient has to collect similar messages before it can initiate action.
- Parallel Wait State PatternState Pattern to handle parallel operations in Real-time systems.
- Serial Wait State PatternState Pattern to handle sequential operations in Real-time systems.
Hardware Interface Design Patterns
- Serial Port Design PatternThis design pattern is described in terms of a class that completely encapsulates the interface with a serial port device.
- High Speed Serial Port Design PatternWe consider the design of a DMA based high speed serial interface. The classes involved in this pattern interact with the device to setup buffers for DMA operations.
- Hardware Device Design PatternEncapsulate the hardware device register access in a class.
- Synchronizer Design PatternThe Synchronizer Design Pattern is used to look at the raw incoming bit or byte stream and detect and align to the frame structure. The frame structure is detected by searching for a sync pattern in the frame.
Protocol Design Patterns
- Transmit Protocol Handler Design PatternSliding window transmit protocol design pattern is described here.
- Receive Protocol Handler Design PatternSliding window receive protocol design pattern is described here.
- Protocol Packet Design PatternSimplify buffer management in protocol stacks by supporting a single buffer that allows addition and extraction of different protocol layers.
- Protocol Layer Design PatternProvide a common framework for implementing different layers of a protocol stack.
- Protocol Stack Design PatternManages different layers of a protocol stack. Allows dynamic addition and removal of protocol layers.
Architecture Design Patterns
- Processor Architecture PatternsTypical processor patterns found in embedded and distributed systems are covered here
- Processor Architecture Patterns IIComparison of processor architecture patterns.
- Feature Coordination PatternsThis article covers different design patterns for feature coordination.
- Task Design PatternsTypical design patterns in Embedded systems are compared here.
- Resource Allocation PatternsResource allocation is a very important part of Embedded system design. Here we discuss important Resource allocation patterns.
- Timer Management Design PatternsVarious Timer Management Design Patterns used in Real-time systems are covered in this article.
Implementation Design Patterns
- C++ Header File Include PatternsHeader file management in complex Realtime projects can get very complicated. Here are some of the rules to simplify that.
- STL Design PatternsHere we put Standard Template Library (STL) to work with examples of typical design patterns using the STL map.
- STL Design Patterns IIQueue Management and Resource Management design patterns are implemented using STL primitives.
