Release Notes for MaxRT eRTOS 0.2
- eRTOS is an embedded RTOS that does not require Windows to be installed on the system to run. It can start processors and allocate resources without the help of the Windows operating system.
- eRTOS is based on RTX64. It supports multiple processes and threads running on multiple cores on an SMP system.
- eRTOS is source code compatible with RTX64, unless otherwise stated.
eRTOS Runtime Features
General
- Supports Intel® 6th generation to 11th generation processors, supporting up to 64 cores.
- Allows you to start multiple processors, determine ACPI information, and generate timer interrupts across all cores.
- Contains logic to limit SMI activity from the BIOS.
- Supports x2APIC
- Supports CAT and MBA processor features.
- Uses GRUB bootloader to load the eRTOS HAL (RTHAL) and Kernel (RTKernel).
- Provides some default boot configuration options.
- Provides the ability to configure the HAL and Kernel through a configuration file.
- Supports the ability to allocate memory.
- Supports the ability to scan the system bus for device information.
- Performs TSC frequency calibration and synchronization on SMP systems.
- Contains an AHCI SATA block driver to support a basic FAT32 file system.
- Supports basic registry functions.
- Supports Applications and Dynamic linked libraries, along with standard IPC objects like Semaphores, Mutexes, and Events.
- Provides sample applications to demonstrate basic eRTOS functionality.
- Supports hardware interrupt thread level - IST handling (1, 139, 140, 141, 142, 143):
- Line-based interrupts (IRQ)
- Message-based interrupts (MSI/MSI-X)
- Multi-vector interrupts (MSI/MSI-X)
Real-Time Network Features
- Adds processing and networking capability through a Network Abstraction Layer (NAL) and an optional TCP/IP protocol stack within the eRTOS environment.
- Network Abstraction Layer (NAL) – a network layer that abstracts the network hardware and driver functions from the upper-level protocol stacks and provides management interfaces for those upper layers to easily query for and use available network assets. It is a separate protocol layer from the TCP/IP Stack. Using the NAL, you can more easily take advantage of network functionality such as EtherCAT, TSN (Time Sensitive Networks), and PTP (Precision Time Protocol).
- TCP/IP Stack – a separate protocol stack that sits above the NAL and provides deterministic processing and networking capability.
- Adds settings to the eRTOS RtConfig.rtreg file for configuring network behavior and performance.
- Adds support for these drivers that use the Network Abstraction Layer (NAL):
- RtNalRtl
- RtNallGC
- RtNallPCH
- RtNalI10GB
- RtNalIGB
- RtNalE1000
See the eRTOS Supported NICs document for the test status of supported devices.
- Adds sample applications included with the TCP/IP Stack, along with usage information for each sample.
- RtTcpipClient sends either UDP or TCP packets to a running instance of the RtTcpipServer sample, receives the packets echoed from the server and accumulates statistics regarding the round trip packet times.
- RtTcpipServer creates a socket at the specified port. How this port gets used depends upon whether the server is operating in UDP or TCP mode.
Tools and Utilities
- Adds eRTOS Console which, when used with a USB Keyboard, enables control of the system.
- Adds eRTOS USB which provides USB capabilities through a USB Host Stack that can be optionally loaded when the eRTOS system boots.
- Adds TCP/IP Stack utilities for diagnosing and/or configuring network connections to other computers.
- RtArp displays and modifies the IP-to-Physical address translation tables used by the address resolution protocol (ARP).
- RtIpConfig displays the local computer’s current network configuration.
- RtPing sends ICMP Echo or ICMPv6 Echo request messages to assist you in performing network diagnostics and to test the ability to reach a specific destination.
- RtRoute displays and manipulates network routing tables.
eRTOS SDK Features
General
- Source code compatible with RTX64, unless otherwise stated.
- Provides sample source for sample binaries included with the Runtime.
Developing Applications
- Supports Visual Studio 2022 and 2019 and contains a VSIX package with templates for building Process applications and RTDLLs.
Real-Time Network Features
- Provides Real-time Network (RTN) functions used by the eRTOS Network Abstraction Layer (NAL) and/or TCP/IP Stack.
- Provides NIC Driver Real-time Network Device (RTND) functions, structures, and enumerations. A NAL NIC driver (RTDLL) must export in order to function with the eRTOS Network Abstraction Layer (NAL).
- Provides Filter Driver Real-time Network Device (RTND) functions. An TCP/IP Filter driver (RTDLL) must export these functions in order to function with the TCP/IP Protocol Stack.
- Provides Real-time Network Abstraction Layer (RtNal) functions, application callbacks, and data types supported by the eRTOS Network Abstraction Layer (NAL).
- Provides Winsock API functions.
- Provides Internet Protocol Helper (IP Helper) functions, structures, and enumerations for retrieving and modifying network configuration settings for the local computer.
Windows-Supported APIs
- Adds support for these affinity mask functions (181):
- GetProcessAffinityMask retrieves the process affinity mask for the specified process and the system affinity mask for Real-Time kernel (Process).
- SetProcessAffinityMask sets a processor affinity mask for the threads of the specified process.
- SetThreadAffinityMask sets a processor affinity mask for the specified thread.
eRTOS Runtime
- You must use the AutoStart.bat file to run applications on eRTOS startup.
- If you make changes to the eRTOS configuration, you must reboot for the changes to take effect.
- eRTOS currently does not support Intel® 12th and 13th generation processors.
- Exceptions are not supported in this version.
- Shutdown handling is not supported in this version.
- System and file time are not supported in this version.
- This version only supports SATA drives and FAT32 files systems.
- You must use debug configuration binaries to use debug commands.
eRTOS SDK
- Visual Studio debugging is currently not supported.
- Only basic C Runtime APIs are supported in this version.
eRTOS Runtime
- On some machines, USB3 devices will not work in USB3 ports when the device is connected after the machine is booted. (255)
- eRTOS USB crashes when keyboards are hot-plugged to a USB hub on machines running Intel® Xeon® Scalable processors (Cascade Lake). (237)
- When multiple keyboards are connected to the eRTOS USB controller, the Shift key only affects the native keyboard, not any additional keyboards. (233)
- On some motherboards, some SATA ports may not function in eRTOS. So far, this issue has only been seen with the EVGA X299 Micro ATX 131-SX-E295 motherboard, where SATA ports 4 and 5 did not function. (180)
- Controlfp_s fails to set the floating-point control word despite reporting success. (137)
- RtGetClockTime sets an incorrect error code when passed a NULL clock. (104)
- eRTOS binaries built with Windows 11 22H2 SDK 22621 can throw an access violation on process exit.
- Enabling Secure Boot in the BIOS can cause GRUB to load improperly on some machines.
- Filesystem calls do not support file names with no extension.