Dariusz Caban, Institute of Informatics, Gliwice, Poland
EDN (June 18, 2014)
The use of a real-time multitasking kernel simplifies the design process of embedded software, but the kernel requires some portion of system's resources. This paper describes results of research work performed to determine overheads incurred by Xilkernel, a real-time multitasking kernel developed by Xilinx.
An embedded system should react to events in its environment in a predetermined period of time. At modest timing requirements the system software cyclically, in an infinite loop, checks the state of the environment. After the detection of an event it undertakes proper action. The processor can be informed about events by interrupt request signals, which reduces the probability of missing them. It is recommended that the interrupt service routine (ISR) should be executed as soon as possible. Often, in ISR, the event flag is only set, and the event is serviced in the loop. If an occurrence of an event is tested once in the loop, in the worst case the service will start only after serving all the remaining events. When interrupts are used, ISR’s execution times must be added. Tests can be made several times in the loop which reduces the waiting time for serving the event.
Meeting higher timing requirements can be difficult or impossible by software with such a structure. A solution is then to make use of a real-time multitasking kernel, also called the Real-Time Operating System (RTOS). The system software is divided into tasks of various degrees of importance. Each task is in any of several states. Only tasks ready to run can be executed. The task can become ready to run as a result of an event. The kernel will start this task immediately provided that its priority is higher than the priority of the task running so far [1, 2].
However, the kernel requires some portion of the program and data memory of the system, and CPU time. This paper presents results of the research whose purpose was to determine efficiency and memory footprint of Xilkernel, a real-time multitasking kernel developed by Xilinx .
Click here to read more ...