Download Bluebus
Transcript
Bluebus – Protocol Conversion for Wireless Data Exchange Priority inversion handling Priority inversion is an event where a task is preventing a higher priority task from running, thus inverting the threads’ priorities. It can be bounded or unbounded. An example of bounded priority inversion is where a low priority task is holding a shared resource that a high priority task wants. This is bounded in time as the high priority task can continue to run as soon as the low priority task releases the resource (the time required for this to happen is short, or there is something seriously wrong with the design of the program). Unbounded priority inversion can occur in a similar manner; a low priority task is holding a shared resource that a high priority task wants. In the meantime, a middle priority task is preventing the low level task from running. Here, the middle level task gets the highest effective priority and could continue to run indefinitely. The first case is rather impossible to avoid in a preemptive multitasking system where there are shared resources, while the second must be avoided (Mason, 1998). If/how this is handled in the RTOS is of great interest. Interprocess communication / Synchronization The methods available for interprocess communication and for synchronizing the activity of different tasks should preferably be many. In a large selection it is more probable to find one that fits a particular case. Interrupt handling How interrupts are handled are of great interest. Are nested interrupts allowed? Can interrupt handlers have priorities too, or are all other interrupts masked when in an interrupt handler? Reaction time How long is the worst-case time between an external event and the start of a task? Memory protection Is there memory protection preventing a thread from destroying another threads code/data? Development tools What kinds of development environments are available for the RTOS? Ideally, it should be possible to use toolsets from different vendors for development. Access to source code Many RTOS are delivered as a precompiled library that is linked with the application, preventing access to the source code. In some cases it is possible to get access to the source for a large sum of money. The ideal here would be free access to the source. 61