Microware OS-9® - RTOS

 

Embedded systems span a myriad of applications, ranging from simple micro-controllers to sophisticated medical imaging systems to complex industrial applications. At the heart of these diverse applications is an operating system — a software foundation that delivers a common set of services helping software developers deliver their product to market more quickly.
Enter Microware OS-9®, the high-performance, high-availability real-time operating system platform. The Microware OS-9® real-time operating system (RTOS) has been deployed and proven in thousands of products worldwide and represented hundreds of embedded applications including industrial automation, control, automotive, and medical instrumentation.

    The core features:

    • Hard Real-Time Performance
    • Small Footprint
    • Scalable Modular Architecture
    • Power Management / Efficiency
    • Reliable, Safe and Secure
    • Multi-Core and Virtualization (AMP)
    • Extensive Services and Middleware
    • Native Development Framework

    OS-9® Highlights

    • Speed
    • Reliability and Security
    • Development Environment
    • Processor Support
    • Standards Compliance
    • Fully Scalable
    • Technical Support

    Who is standing behind OS-9®?

     

    Since February 2013 Microware OS‐9® is owned by a partnership of three companies, MicroSys, Freestation (Japan) and RTSI (USA).

    MicroSys in Sauerlach near Munich takes care of customers in Europe and provides technical support, consulting and development services.

    MicroSys actively continues development on OS‐9®. Recent developments already provide support for Arm® Cortex®-A9, A53 and A72 cores with NXP’s latest i.MX6 and LS10xx CPUs, as well as support for T10xx and T20xx PowerPC Architecture.

    Why Microware OS-9®?

     

    Microware OS-9′s compact, high-performance multi-user, multi-tasking real-time kernel is a proven foundation for time-to-revenue success. OS-9® is a full-featured operating system framework, including the OS kernel, kernel services, and industry-standard APIs, middleware, and a complete IDE-based development framework.

    • High reliability

    The OS‐9® secure process model, real ‐ time operating system (RTOS) provides inherent memory management, resource authorization, and module CRCs, dramatically improving system reliability.

    • High performance

    OS‐9® makes effective use of the CPU by providing integrated I/O and compiler technology tuned for the specific processor instruction sets.

    • High availability

    OS‐9® has the ability to add, remove, and replace individual components in the system while on ‐ line and in ‐ use. This results in a high degree of system availability, even during maintenance. Proven over 30 years in mission critical devices around the world.

    • Hard Real-Time Performance

    Unlike Windows and Linux-based systems, Microware OS-9® was conceived from the ground up to meet the high performance and reliability requirements of time-critical embedded applications.

    Offers an 'instant on' experience from reset to a running user interface.

    • OS-9® delivers excellent performance in even the most constrained environments.
    • OS-9® and user applications can run completely out of ROM/Flash, leaving RAM dedicated for operating systems or other program use. OS-9® modules are re-entrant. Ten copies of the same 500K program can share the same 500K of program space and only require ten copies of data space (stack, process descriptors, and other system structures associated with the process).

    The OS-9® modular architecture enables dynamic configuration changes and enhancements in order to meet changing system requirements without rebooting.

    OS-9® applications are written as self-contained modules and are not linked in as a single monolithic code base with the kernel. Virtually any OS-9® component may be added, removed, or updated either at system startup or while the system is running.

    This means features and new functionality can be added easily, in real-time, and even after deployment to the field.

    OS-9® was designed with reliability, safety and security in mind. Unlike monolithic architectures, the OS-9′s advanced modular architecture offers an enhanced level of security, making it a preferred foundation for today’s networked environment.

    OS-9® supports asymetric multi processing (AMP) on multi core architectures running one OS-instance per core. By that deterministic real time behavior is provided. Dedicted processes per core allow multifuntional and parallel application execution in a system protected envrionment. The application designer keeps complete control over asynchronous and/or synchronous events on the cores, e.g. a communication and a real time application can work reliably and efficiently on dedicated cores without interfering each other.

    The OS-9′s extensive I/O architecture supports a wide range of devices and networking options. The broad range of services, file managers and device drivers available from a single supplier speeds integration and application development, leaving customers with more time to innovate and differentiate their products.

    Designing embedded systems requires more than just an OS. The Microware Hawk development suite comprises of a comprehensive set of software development tools that span the embedded software workflow. The Hawk framework includes a highly optimizing C/C++ compiler, a fully customizable development environment, the award-winning CodeWright programmer’s editor, graphical debugging tools, and middleware libraries and solutions.

    In addition the CLANG C and C++ compiler with it’s latest C and C++ standards adds the capability of highly optimized code generation in combination with static code analysis. CLANG can be used standalone and in combination with Eclipse.

    Under the Hood: The Microware OS-9® Architecture

     

    OS-9® utilizes an advanced modular software structure that creates an optimum balance of speed and protection for the embedded systems and applications. OS-9® runs faster compared to microkernel operating systems, and offers an increased level of security compared to monolithic architectures. All modules and components that make up an OS-9® system–including the kernel, file managers, drivers and applications–are stored as logical OS-9® memory modules. Each memory module is a self-contained program consisting of module header, module body, and a Cyclic Redundancy Check (CRC) value. These logical software components are easy to create and manage, while ensuring high availability of the OS-9® platform.

    Header

    Modular header information controls access and allows upgrades to deployed systems

    Data or Code

    Position independent and re-entrant code allows for dynamic loading and uploading of modules

    CRC

    CRC (Cyclic Redundancy Check) verify data integrity in module

    Microware OS-9® supports three types of protective boundaries:

    • The user/system state boundary: User state code uses the processor’s non-privileged instruction set, and the operating system’s user-state system calls. These restrictions let the operating system contain the application within processor boundaries.
    • Process boundaries: Each process is granted access to resources by the operating system. OS-9® prevents processes from erroneously or maliciously disturbing other processes’ resources without proper authorization. If the system is using a memory management unit, OS-9 uses it to enforce memory access protection rules. If there is no MMU, OS-9® still makes an effort to enforce protection rules.
    • User/group protection: Each process, each module, and (for most file systems) each file has an associated owner. OS-9® uses ownership and permissions to administer access to resources.

    The OS-9′s real-time kernel allows multiple independent applications to execute simultaneously through task switching and inter-process communication facilities. All OS-9® programs run as processes containing at least one lightweight process (thread), but may also contain an effectively unlimited number of threads. Within a process, these lightweight processes share memory, I/O paths, and other resources in accordance with the POSIX threads specification and API.

    OS-9® schedules threads using a fixed-priority preemptive scheduling algorithm with round-robin scheduling within each priority. The priority levels can be divided into a range that supports aging and a higher-priority range that uses strict priority scheduling. Each process can access any system resource by issuing the appropriate OS-9® service request. At every scheduling point, OS-9® compares the priority of the thread at the head of the active queue to the priority of the current thread. It contextually switches to the thread on the active queue if its priority is higher than the current processes’ priority. Aging artificially increases the effective priority of the threads in the active queue as time passes. At defined intervals, time slicing returns the current thread to the active queue behind other threads at the same priority.

    Microware OS-9® Specifications

    At the heart of Microware OS-9® lies a collection of kernel services, extensions, and industry standard APIs, which support virtually any class of peripheral for embedded systems:

    • Serial/Parallel I/O
    • USB 1.1/2.0/3.0
    • SD and µSD Card
    • Disk Storage I/O (USB, SATA, SCSI, IDE)
    • PCI I/O, PCI Express, PCIX, CompactPCI®, PCMCIA I/O
    • TCP/IP v4/v6
    • NFS Server and Client
    • Sample drivers and framework
    • Finished ported boot images for reference platform(s)
    • Isolates, contains, and cleans up after offending software
    • Customizable exception handling to extensively log, report and/or perform automated recovery exception conditions

    Menu system that automates operating system boot build for supported reference platforms:

    • GUI based configuration and build of system images
    • Point-and-click control for networking, TCP/IP configuration, graphics and debugging
    • Automatic creation of software images for target system
    • Unique tool for online customer support in real-time
    • Capture/send target and host system information report to customer support

    OS-9® add-on modules extend functionality for embedded development and run-time environments.

    • HawkEye - A GUI based software analyzer to visualize the operation of an OS-9® system and application modules.
    • XiBaseGUI - Graphics tool to enable the creation of displays, user interfaces and touch screens.
    • IPsec - Soft-crypto authentication and encryption protocol package for securing IP communications.
    • EtherCAT - Real-time, high peformance Ethernet-based fieldbus system.
    • CANbus - Control-area network for industrial and automotive systems.
    • Reliance File System - Data file protection for mission-critical embedded systems.
    • YAFFS - Wear-leveling Flash file system for embedded systems.
    • Microware Hypervisor - Real-time hypervisor enabling simultaneous instances of real-time and general purpose operating systems on X86 multi-core platforms.

    Microware OS-9® offers out-of-the-box support for a broad array of processors and architectures:

    • 68K / Coldfire
    • x86 / Pentium/Multi-Core
    • PowerPC : 4xx, 5xx, 6xx, e500, e5500, e6500
    • Arm®: Arm9, StrongArm, XScale, ARMv4, v5, v6, v7, v8
    • SuperH : SH-3, SH-4, SH-4A

    Features - Configuration Options

    EMBEDDED SOLUTIONS OS-9® CONFIG DEVELOPMENT ENVIRONMENT RUN-TIME BINARIES DRIVER SOURCES
    CUSTOM HARDWARE OS-9® for Embedded Systems (OEM) X X X
    COTS BOARD & OS-9® OS-9® Board Level Solution (BLS) X X
    PLATFORM SOLUTION FOR DEVELOPERS OS-9® Software Development Kit (SDK) X    

    Overview of CLANG, its code quaility tools and the GPL-free license model

    C/C++ compilers have long been available for various processors and operating systems. Some compilers are very old, but maintained and up to date. Others are simply old compilers. So it was time to launch a new modern compiler, one that has been created with the latest programming methods and can do everything from the beginning that was cumbersomely added to the old compilers. Is it just a new compiler? Then it is uninteresting and boring. If it also includes code analysis tools and other tools for improving code quality, it is unrivalled in its value. For OS-9® a new compiler with the latest C/C++ standards is needed.

    Microware OS-9® for Arm®

     

    Microware OS-9® for Arm® is a complete solution for real-time applications using Arm® architecture based development hardware. MicroSys provides the embedded, real time operating system (RTOS), drivers, development board level solutions, development tools, and middleware, making application development easier and reducing time to market.

    Currently supported hardware platforms

    • OLIMEX A10-OLinuXino, A13-OLinuXino, A13-OLinuXino-MICRO, A20-OLinuXino
    • Atmark Techno Armadillo840, R8A7740
    • ASUS_Tinker, Allwinner A20
    • AT91SAMA5D3X-EK
    • BananaPro, Allwinner A20
    • BeagleBoneBlack, AM3358
    • CubieBoard Board (A10), Board 2 (A20) and Truck (A20)
    • Mpression Helio, Cyclone V
    • FriendlyARM MINI210, S5PV210
    • FriendlyARM MINI6410, S3C6410
    • i.MX53: MCIMX53, MicroSys SBC53
    • i.MX6: WinSystems SBC35-c398Q, MicroSys SBC6Q, Nitrogen6SX, Wandboard-Solo
    • OrangePi – One, -PC, -Plus2E and -Zero
    • ZYNQ7000: AVNET PicoZED, Trenz TEB0724, ZYBO
    • RaspberryPi 2,3,3B, 4B
    • Atmel SAMA5D3-XPLD, SAMA5D4-XULT
    • ZCU102 (APU and RPU Board) Zynq Ultrascape+
    • Layerscape®: MicroSys SBCLS1046 and SBCLS1028 with Cortex®-A72

    Microware OS-9® for Power PC

     

    Microware OS-9® for Power PC is a complete solution for real-time applications using NXP® Power PC architecture based development hardware. MicroSys provides the embedded, real time operating system (RTOS), drivers, development board level solutions, development tools, and middleware, making application development easier and reducing time to market.

    Currently supported hardware platforms

    • MicroSys miriac® SBC2041, SBC2020, SBC1022, SBC1013, SBC1011, SBC8260, MPX8544, MPX8548
    • MicroSys miriac® VME2020, VME1022, VME1013, CPU87, CPC8548, CPC8349, MPX8349, MPX5200G, PM520
    • Motorola/Artesyn MVME21xx, 23xx, 25xx, 26xx, 27xx, 31xx, 36xx, 41xx, 51xx, 55xx, 61xx
    • AMCC440EPX, AMCC440GX
    • NXP® MPC8306 SOM, MPC8349 MDS, ADS5121
    • Kontron VMP1, VMP2, VMP3
    • MEN A21, A12, B11
    • NAT NAMC8540
    • TEWS TVME8240
    • TQ TQM5200
    • Xilinx Virtex5
    • Newest e5500 and e6500 Cores:
    • MicroSys miriac® MPX-T1024, MPX-T1042, SBC-T1024, SBC-T1042
    • ESD ESDT10-XMC
    • RME T2080 (E6500)

    Fast Boot and Start Up Sequenzes with OS-9®

     

    • Reflection on general optimization aspects on design and system level
    • Comparison of General Purpose Operating Systems to Real Time OSes with special focus on OS-9®, on a NXP® i.MX53 Arm® Cortex®-A8 platform
    • Effects of different boot media on timing results

    Instant on experiences and requirements are often fundamental design criteria for embedded system applications. The timing from hard reset to full operation is mainly affected by the selected operating system, its characteristics and deployed boot media. The paper provides an introduction in general design aspects to achieve fast start up timings, especially caused by different operating systems like a general purpose OS or RTOS. Additionally an overview is given on boot media and its effects on the startup behavior. Comparisons of Linux, WinCE to the RTOS Microware OS-9® and achieved timing results on an i.MX53 system are presented additionally.

    b&S/ECE Magazine - ICC Media GmbH

    This article discusses how to achieve fast startup times, esecially in view of different operating systems like a general purpose OS or RTOS. Additionally an overview is given on boot media and their effects on startup behavior, together with practical measurements.

    Microware OS-9® EtherCAT Master Stack

     

    The EtherCAT Master Stack for OS-9® is based on the Beckhoff Master Sample Code and optimized to meet the requirements of hard real-time operation under the RTOS OS-9®. The cycle time can go down to 50µs depending on CPU-performance, number of slaves and data size. EtherCAT Master is ENI based, thus accepts any configuration created in accordance with EtherCAT specifications. EtherCAT Master has a modular architecture and consists of the following layers to adapt the programmers need to create user applications on different convenience and complexity levels.

    OPC UA connection to EtherCAT Master in Microware OS-9®

     

    The OpenSource project OPC UA www.open62541.org funded by Kalycito and an OSADL project group www.osadl.org, has been ported to Microware OS-9® using the LLVM/CLANG compiler www.clang.llvm.org. The CLANG compiler is now available as alpha test version for OS-9® customer and supports the latest C and C++ standards.

    An example to show how the OPC UA is working, MicroSys has built a sample program to connect the OS-9® EtherCAT Master to OPC UA requests. The EtherCAT Master is running on OS-9® as a separate process, sharing the Process Image of the connected EtherCAT Slaves via a Data Module (Shared Memory) to the control process.