embOS-Ultra — The performance enhancing RTOS
embOS-Ultra is a revolutionary RTOS using Cycle-resolution Timing to improve timing and performance and to reduce energy consumption.
embOS-Ultra uses Cycle-resolution Timing to offer greater precision and time resolution than any other RTOS on the market. Scheduling of all time-based events, such as timeouts, delays, and periodic timers, can now be specified in microseconds or CPU cycles. Cycle-resolution Timing technology replaces target-specific techniques for precise timing with clean and consistent API calls.
Switching to embOS-Ultra immediately enhances performance and saves power. It gives the application the option to use both cycle-based and microsecond-based timing.
Migration from embOS is very simple, with no application changes required. Migrating from a traditional, tick-based RTOS encapsulated by an abstraction layer such as CMSIS-RTOS is also easy. Other cases require small application changes, which can be performed by the customer or by the SEGGER team.Traditional RTOS behavior is maintained. embOS-Ultra simply provides millisecond-aligned timing where regular embOS API calls are used and provides microsecond or Cycle-resolution Timing where the new API calls are used. There is no need to choose between the traditional and the revolutionary.
By eliminating the periodic tick interrupt, embOS-Ultra reduces the CPU load and saves energy. Considering that billions of devices currently use a traditional RTOS, this represents huge potential energy savings.
embOS-Ultra is available in source code and object code for many CPU and compiler combinations. Its source code is written in C, with a small CPU and compiler-speciﬁc component written in assembler code.
- Greater precision and time resolution
- Finer time granularity - μs, ns or even cycles
- Easy migration from traditional RTOS
- Full compatibility - no need to choose between traditional and revolutionary
- Energy savings for all applications
- Expanded range of applications for RTOS use
- Available in source code and object code for many CPU and compiler combinations
embOS-Ultra replaces the typical one-millisecond system tick with a single-shot hardware timer that generates interrupts exactly when — and only when — necessary. With this technique, traditional system tick interrupts are eliminated, CPU activity is reduced, and energy is saved.
Using embOS-Ultra, operations such as task delays and software timers can now be speciﬁed in system-independent, high-resolution units like microseconds. This greatly expands the range of potential applications for RTOS use.
Migration from a traditional RTOS to the cycle-based embOS-Ultra is very simple. No application changes are required as the existing API and RTOS behavior is maintained. embOS-Ultra provides millisecond-aligned timing where classic embOS API calls are used and it provides microsecond or cycle resolution where the new API calls are used.
The traditional embOS API can be mixed with the extended high-precision embOS-Ultra API in the same application. There is no need to choose one or the other. Applications can instantly benefit from the upgrade to embOS-Ultra.
Reliability since the beginning
embOS-Ultra was developed by SEGGER’s Embedded Experts, the developers of the embOS RTOS. embOS was first developed in 1992, has been continuously enhanced ever since, and has become the RTOS of choice for engineers in the embedded industry. embOS is an extremely reliable codebase proven and optimized over many decades.
embOS-Ultra was built with the same fundamental principles in mind: ease-of-use and guaranteed 100 % deterministic real-time operation.
Supported cores and compiler
embOS-Ultra is currently available for the following core and compiler combinations:
- embOS-Ultra for Cortex-A / Cortex-R and Embedded Studio
- embOS-Ultra for Cortex-M and Embedded Studio
- embOS-Ultra for RISC-V and Embedded Studio
Please find all core and compiler combinations in our complete overview of embOS ports. This list is constantly being expanded. If your core or compiler is not in the list, we will port embOS-Ultra to your target, ensuring high quality and extensive testing. Please feel free to contact us.
All ports can be downloaded for evaluation under SEGGER's Friendly License (SFL) and include several BSPs for popular evaluation boards from leading semiconductor vendors.
Cycle-resolution Timing — Press article
Cycle-resolution Timing — Interview
embOS-Ultra — Intro | 4:13 min
An easy live comparison simulated in Embedded Studio can be made by downloading the example application below. No hardware needed.
embOS-Ultra is available under various Embedded Software License models and delivered in source code packages. With a wide range of licensing options, embOS-Ultra can fulfill commercial requirements as well as technical requirements. All licenses are one-time payments. embOS-Ultra is royalty-free and not subscription-based. This makes the software a part of the equipment expenses, keeping the costs static.
The embOS-Ultra licenses include:
- 6 months of updates and support by SEGGER's Embedded Experts
* Applies to second seat/product and all additional seats/products of the Single Product License and Single Developer License.
Q: What is the difference between embOS and embOS-Ultra?
A: embOS uses a hardware timer to generate periodic system tick interrupts which are utilized as a time base. In most applications the system tick occurs each millisecond, with some room for adjusting the unit of time, but the tick must occur and keeps occurring even when the system is idle. embOS-Ultra uses a flexible system tick, the Cycle-resolution Timing, that is specifically configured by the operating system to occur only when a time-based action is required.
For detailed information, please see our online documentation.
Q: What are the benefits of the Cycle-resolution Timing compared to the (periodic) system tick?
A: The periodic system tick interrupt “wastes” computation time, when for several consecutive system ticks there is no time-based action required. The Cycle-resolution timing is flexible, meaning that flexible system ticks only occur when a time-based action is required. This avoids unnecessary system tick interrupts and also allows delays and timeouts to expire at arbitrary points in time.
For detailed information, please see our online documentation.