Running 2 RTOS in a single device/application

Dear all, I am currently working in on a consumer electronics device.We are in the process of debugging few bugs in the software which does the work of displaying menus and controlling the hardware of the device.I happened to go through the architecture of the software.What makes me wonder is there are 2 RTOS used in this device.One rtos is ucos and another is OS20 a proprietoty RTOS to run on the processor. I am not able to get how can 2 RTOS run in a device or processor? When I queried my clients reply that One RTOS runs as a task of another RTOS. I would like to understand how does the scheduling happen between these

2 RTOS?Also running one RTOS as another task means there are 2 kernels and 2 schedulers.This is some what puzzling me.

Have any one seen something like this?How exactly this usage of 2 RTOS works?Whats the way of linking one RTOS to another?How does the kernel switching between 2 RTOS take place?

Also I have heard of something called VMWARE which does this job generally.

It would be helpful if someone could give me some suggestions or point me to useful links on this.If this is not the right place can you please direct me to a proper group to discuss this?

Looking farward for all your replys, Regards, s.subbarayan

Reply to
ssubbarayan
Loading thread data ...

Hello ssubbarayan, ssubbarayan schrieb:

Ususally the answer to this question is also called: IP or Intellectual Property. You are right, VMWare does it for non embedded computing, also Microsoft does it with Virtual PC.

For the embedded world I know of two products PikeOS:

formatting link
VxWin/CeWin:
formatting link

Those products have their own strategy to implement 2 or more RTOS on the same device/processor or one non-RTOS on top of one RTOS .

Hope it helps.

--
BaSystem Martin Raabe
E: Martin.RaabeB-a-S-y-s-t-e-mde
Reply to
Martin Raabe

Real Time Linux: there's a RTOS for time critical tasks, and the idle task of the RTOS runs Linux - kernel and user processes just like a normal Linux box. There are special FIFOs for passing data between Linux and the RTOS. Works fine when I used it way back in '99.

Kelly

Reply to
Kelly Hall

These days you might want RTAI:

formatting link

It uses ADEOS to provide separate execution domains, allows you to code fairly-hard-real-time stuff in *user space*, interfaces with all sorts of other software, and has a really active developer/user community.

(Yes, I use it. No, I wouldn't use the other one).

cheers, Rich.

--
rich walker         |  Shadow Robot Company | rw@shadow.org.uk
technical director     251 Liverpool Road   |
 Click to see the full signature
Reply to
Rich Walker

An RTOS creates a virtual machine to run programs on. It controls access to things like interrupt vectors, devices, and such, presenting an API to the user code.

Also, RTOS code generally have some kind of hardware abstraction layer internally, so it can be ported to many different systems, and keep things that are going to be common, like schedulers, timers, and memory allocation machine independent.

If one writes a hardware abstraction layer for RTOS1 that uses the facilities in RTOS2, neither need know about the other. From the POV of RTOS1, it is running on a funny, slow architecture. From the POV of RTOS2, it has a user program, and handles the hardware itself.

The problem comes in when both RTOS want to mess with the same hardware.

--
Regards,
  Bob Monsen
 Click to see the full signature
Reply to
Bob Monsen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.