Zero Interrupt Latency
Interrupt latency is the time between interrupt request and execution of the first instruction of the interrupt service routine. Every computer system has an interrupt latency. The latency depends on various factors and differs even on the same computer system. The value that one is typically interested in is the worst case interrupt latency. The interrupt latency is a sum of a lot of different smaller delays explained here.
Zero interrupt latency in the strict sense is not possible, as explained above. What we mean when we say "Zero interrupt latency" is that the latency of high priority interrupts is not affected by the RTOS; a system using embOS will have the same worst-case interrupt latency for high priority interrupts as a system running without it.
Fast context switching
embOS is designed to perform fast context switches. This section describes two different methods to calculate the execution time of a context switch from a task with lower priority to a task with a higher priority.
The first method uses port pins and requires an oscilloscope. The second method uses the high-resolution measurement functions. Example programs for both methods are supplied in the Sample directory of your embOS shipment.
SEGGER uses these programs to benchmark the embOS performance. You can use these examples to evaluate the benchmark results. Please note that the actual performance depends on many factors (CPU, clock speed, toolchain, memory model, optimization, configuration, etc.).
The embOS tickless low power support reduces the power consumption, which is particularly important e.g. for battery powered devices. Instead of having a timer interrupt for each system tick the timer is reprogrammed to be able to spend as much time as possible in low power mode.
µsec precise system time
embOS supports the API function OS_GetTime_us() to get the current system time in micro second resolution. This feature is easy to use and can be used with any embOS start project.
The start projects have to set up this feature with a simple API call of OS_Config_SysTimer(). This is already done for the most of the embOS start projects and can be done for any other embOS start project by SEGGER on request.