Title: Patterns to Ease the Port of Micro-kernels in Embedded Systems Author: Michel de Champlain Email: michel@cosc.canterbury.ac.nz Department of Computer Science University of Canterbury Private Bag 4800 Christchurch, New Zealand Phone: +64 3 364-2362 Ext.7727 Abstract: Micro-kernels are difficult to port to a new hardware platform. During the initial phases of a port, much time and effort is lost on debugging critical machine-dependent subsystems. These subsystems are generally very tightly coupled and cannot be tested in an incremental fashion. Tight coupling occurs because the subsystems share many global variables forcing them to be debugged with the complete micro-kernel's code. The problem of porting and testing new micro-kernel ports has so far received little attention, and the work described in this paper is an attempt to fill this gap. A design pattern captures and communicates the development and reuse of frameworks in a specific context.A framework consists of several software components and their interaction. In the embedded domain, we have found design patterns very useful to encapsulate requests, to decouple subsystems, and to make policies interchangeable. We describe the design and implementation of various object-based design patterns which address the problem of the initial porting of micro-kernels for embedded systems in a systematic and incremental fashion using bottom-up integration testing. The rationale behind major design decisions is presented along with an outline of the general framework of patterns. We also present the forces and applicability of our design patterns for each phase of the port. In the course of several iterations, these patterns have been tested and refined through their use in porting of an existing embedded micro-kernel to different hardware platforms.