Summary: | The goal of this thesis is to develop and implement parts of a middleware that provides necessary support for the execution of ProCom components on top of the real-time operating system FreeRTOS. ProCom is a component model for embedded systems developed at Mälardalen University. The primary problem is finding an appropriate balance between the level of abstraction and thoughtful utilization of system resources in embedded devices. The defined target platform has limitations in comparison to general purpose computer. These include constraints in available resources such as memory, CPU or bandwidth together with strict requirements in terms of worst-case response time and reliability. We have to also face the problem of limited debugging facilities or their complete absence. Another part of the challenge has been to create the initial design of middleware interface functions that need to be integrated with the layered ProCom model including support for transparent communication within one node or between nodes. We try to uncover potentially hidden problems related to the communication and creation of templates for the code synthesis. This especially means that we should identify and provide a list of the most important information needed to create a model of physical platforms and the subsequent allocation model, which allows assignment of ProCom components to the individual nodes of physical platform. In this project, we have examined differences between several real-time and non real-time operating systems. We focus on finding a common subset of core functions that the system must support in order to ensure adequate support for running designed components. We have also identified and tested the suitable libraries to support different types of communication especially TCP/IP. However, we are keenly aware of the limitations of used communication types for analysis of the behavior of real-time systems. This report describes the design and implementation of ProCom middleware. The data structures and methods used both in task management and inter-subsystem communication are described. An example how to generate code using the middleware is also included in this report.
|