embOS supports ARM VFP and other CPU extensions
In general, Multitasking and Real-Time Operating Systems (RTOS) need to save all CPU registers used by a task. Which registers need to be saved depends on the register usage (calling convention) of the compiler. Things get more complicated when Coprocessors or other hardware come into play, which have their own registers and are also used by multiple tasks. In this case, the additional registers need to be added to the task context so that they are also saved. This creates a few problems for OS vendors and users:
Context switching time as well as memory usage increase for all tasks; for binary distributions, the number of libraries shipped increases.
SEGGER today unveiled a solution for this. Dynamic Context Extension allows dynamic adaption of task context, individually for each task.
This flexible implementation features the following:
- Registers can be saved selectively: The extra registers have to be saved and restored only for tasks which actually use them. This saves stack space (RAM) and reduces context switching time for tasks which do not use the extra registers.
- Custom extension functions:
The user (application programmer) can write his own extension function. This allows support for any type of additional registers without modification or even recompilation of the RTOS kernel. This is useful to save the state of hardware units used in multiple tasks such as CRC generators or global variables used in multiple tasks (e.g. errno). It proves especially useful for soft-cores used in FPGAs, where custom extensions are not uncommon.
- Task context extension functions for popular CPU extensions such as the ARM VFP floating point coprocessor or the ColdFire EMAC are shipped with the respective embOS ports.
SEGGER Microcontroller develops and distributes hardware and software development tools as well as software components. All software components are ANSI "C" compliant and can be used in embedded systems including industries such as telecom, medical technology, consumer electronics, automotive industry and industrial automation. SEGGER software products include: embOS (RTOS), emWin (GUI), emFile (File System), emUSB (USB device stack) and embOS/IP (TCP/IP stack). Besides the highly efficient software products, SEGGER also provides embedded hardware tools such as the well-known J-TAG emulator J-Link, J-Trace and the Flasher (stand alone programmer). SEGGER's intention is to cut software development time for embedded applications by offering affordable, flexible and easy-to-use tools and software components allowing developers to focus on their applications.
Mr. Ivo Geilenbruegge