chibios - 390ns context switch with STM32F4 Discokit..
RAM memory is accessed (read/write) at CPU clock speed with 0 wait states.
available on a particular type of target processorconfigurablescalablesupport for specific development languagesavailability of application development toolstype of tasking modeltype of inter-process communicationtype of scheduling mechanismcustomer support by the vendor
• An RTOS is a preemptive multitasking operating system intended for real-time applications.• It must support a scheduling method that guarantees response time- Especially to critical tasks• Tasks must be able to be given a priority- Static or dynamic• An RTOS has to support predictable task synchronization mechanisms- Shared memory mutexes / semaphores, etc.• A system of priority inheritance has to exist• Manages hardware and software resources.• Deterministic: guarantees task completion at a set deadline.- A system is deterministic if, for each possible state and each set of inputs, a unique set of outputs and next state of the system can be determined.• Behavior time constraints should be known and minimized- Interrupt latency (i.e., time from interrupt to task run)- Minimal task-switching time (context switching)
Are there non-real-time alternatives as well?
Did anyone do a serious application that is difficult without a RTOS.
We did have a discussion thread on RTOSs a month back, and the conclusion was they were a total waste of time especially in the arduino context.They just suck the power out of a processor and move the debugging process into the fighting the RTOS region.
If you can run 40 things with calls to an update function from loop, you have soft real-time and this is a good approach....Also you can always find a way to avoid a RTOS by writing enough special purpose code. Often using a RTOS saves time if it will solve a problem without a lot of code. When I started doing embedded systems, the battle was over assembler or a higher level language. The answer is that both have there place and we still do some assembler. The same is true for RTOSs. Old timers seem to be flat out against using a RTOS. The fact is that often a RTOS is an easy way to solve a problem even on small chips. A RTOS like ChibiOS or FreeRTOS is useful if you can't call an update function with a short enough period or if you need to do something at precise intervals.