Main requirements to our Multi-Tasking Realtime Operating System (RTOS) for DSP – DeSPerado – are stated as follows.
During detail analysis of functional and technical requirements to RTOS for DSP, the following components were considered to be implemented.
Taking into account the specific of software for embedded systems with DSP, we don’t separate OS kernel and user processes, but consider those as just different integral parts of entire DSP software linked together.
Such approach allows us to get rid of task loader as a part of RTOS, as after system is initialized all user processes are already loaded in DSP RAM.
Besides, such structure allows revealing many mistakes and critical factors in the software at compilation and configuration stages, that considerably facilitates debugging of developed software and raises its reliability.
With such approach, the operating system can be configured for definite application by its user, who is a software developer indeed, what’s certainly raising flexibility of the whole system.
Designing RTOS for DSP, we developed our own Virtual Transputer Technology (VTT), representing a program model of concurrent processing system in the same way as it was designed in Inmos Transputer hardware. This technology provides conceptual integrity of the system, representing it as simple set of processes connected by I/O channels. Thus, all processes in the system, both service and user ones, have uniform structure, and I/O channels have the same programming interface that doesn’t depend on hardware properties of the I/O resources it uses.
Some general points of this technology are listed below.
During testing of developed RTOS for DSP, it has shown a very good realtime performance. Being tested on Analog Devices ADSP-21065 SHARC processor it has committed:
All above-mentioned values almost do not depend on actual OS load, what makes our RTOS outstanding from available competitive products.
DeSPerado 1.0 demo is a simple presentation version of the multi-tasking operating system core for the ADSP-2106x SHARC processors family. This demo illustrates the concurrent processing on the EZ-KIT LITE board, and includes three sample processes presenting DeSPerado kernel features.
The first process makes system "live check". It’s periodically blinking with LED2 on the EZ-KIT LITE board. User can change the blinking frequency by pressing S2 button.
The second and the third processes are connected with a channel and perform data exchange.
The second process performs four cycles of counting up to 5.000.000.000 and transmits the number of completed cycle to the third process though the channel.
The third process receives the number of cycle from the counting process and turns on LED5 after the first cycle, LED4 after the second cycle, LED3 after the third cycle, and turns off all those LEDs after ending of the second process.