RTOS

 
 
 
 
 
 
 

 

 


 


Real Time Operating System

RTKernel-RISC

RTKernel-RISC is a powerful real-time multitasking scheduler for 32-bit x86 embedded systems. RTKernel RISC is compact (about 16k code, 6k data), fast, and offers excellent real-time response times. All RTKernel-RISC threads run within a single program (single process, multi-threaded).

RTKernel-RISC Threads

An RTKernel-RISC thread is implemented as a C/C++ function. A program can dynamically create threads using the appropriate kernel API calls. These threads are subsequently executed in parallel with the main thread and any other threads.

Each thread has its own stack, a priority between I and 64, and a task state. Several threads can be started executing the same code; however, each is allocated its own stack and thus its own local variables. All threads have access to the programís global data. Thus, shared code and shared data are inherently implemented by RTKernel-RISC.

Products

EBSnet offers a high performance real time operating system (RTOS), a TCP-IP network stack, a full suite of Application Protocol, a powerful HTML-based embedded GUI SDK, a Web browser, an SDK for UPnP™ certified devices, CIFS/SMB protocol, 802.11 wireless support, a portable DOS/WIN9X compatible file system with real time extensions and FailSafe support, and a CD ROM file system. EBSnet products feature Extreme Portability to any kernel, any platform.

All EBSnet products are sold royalty free, and come with well commented code and extensive documentation.

RTKernelRISC

RTKernel-RISC is a powerful real-time multitasking scheduler for embedded systems designed specifically for RISC platforms:

  • PowerPC
  • ARM
  • xScale
  • Coldfire
  • MIPS
  • MPC2500

RTkernel32

Embedded OS for X86 Compatible CPU’s

Testimonial

I want to thank both you and Peter. It is rare that I see this level of quality support. We are a small embedded systems consulting company and hence deal with a lot of OS’s and other third-party tools. Therefore we often have to deal with various tech support groups. I’ve become very jaded over the years when dealing with these groups, not only because they have a hard time understanding my problem, but also because I seem to understand their products better than they do. You impressed me at all steps:

  • First I was impressed that I got a real person on the phone that did more than just take my phone # and tell me somebody will call within 24 hours.
  • I was impressed that I was transferred to one of the key people, who of course, knows the product very well.
  • Then I was impressed that Peter spent the time to review what could be going on, it took some time. It was also good to have a positive dialog (as opposed to adversarial) during the process. I realize some customers can be difficult (I have a few of those myself), but it’s nice that you don’t start out assuming that they will be.
  • And finally to have you follow up with useful information is great.

Thanks again

Inter-Task Communication

RTKernel-RISC offers three different mechanisms for inter-task communication:

Semaphores allow the exchange of signals for activating and suspending threads. RTKernel-RISC supports counting, binary, event, resource, and mutex semaphores. Resource and mutex semaphores implement priority inheritance.

Mailboxes (also known as queues or FIFO buffers) allow threads to exchange messages asynchronously. The maximum number and size of messages can be configured for each mailbox. High priority messages can be sent to a mailbox ahead of all others. Mailboxes can also be used to send data from hardware interrupt handlers and threads.

Message-passing is used for a synchronous exchange of messages. No data is buffered, data is sent directly from one thread to another.

The Scheduler

The RTKernel-RISC scheduler is event-driven. It was developed specifically for real-time requirements and adheres to the following rules:

Priority Scheduling:

Of all threads in state Ready, the thread with the highest priority runs.

Round-Robin:

If the kernel must choose from several Ready threads with the same priority, the thread that hasnít run for the longest time is activated.

Priority Ordered Queues:

If several threads are waiting for an event, they are activated upon the occurrence of that event in sequence of their priorities.