Release Notes for MaxRT eRTOS 1.0
- 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 one of the new products in the MaxRT family. eRTOS kernel is based on the RTX64 Subsystem. 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 to 14th 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)
- Supports Exception Handling:
- General Exception Handling - Stop at first exception / MPX delay context save/restore
- Create Trap frame / exception frame
- Get / Set context
- Try / Except
- C/C++ exception
- Debugger exception dispatch
Network Features
- Adds processing and networking capability through an optional Network Link Layer (NL2) and TCP/IP Stack within the eRTOS environment.
- Network Link Layer (NL2) – a software component that provides real-time applications with abstract APIs to access network services at the Layer 2 of the OSI model, independent of the underlying hardware. The NL2 replaces the Network Abstraction Layer (NAL) in RTX64.
- TCP/IP Stack – a separate protocol stack that sits above the NL2 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 Link Layer (NL2):
- The RtndRtl driver supports the Realtek 1Gbps controller family.
- The Rtndlgc driver supports the Intel® I225/I226 controller family.
- The Rtndlpch driver supports several Intel® Ethernet controller families.
- The RtndI10gb driver supports the Intel® X550 controller family.
- The RtndIgb driver supports the Intel® I210/I211, I350, and 82580 controller family.
See eRTOS Supported NICs for a list of supported devices and their test status.
- 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 USB which provides USB capabilities through a USB Host Stack that can be optionally loaded when the eRTOS system boots.
- Adds eRTOS Console which, when used with a USB Keyboard, enables control of the system.
- 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
- Supports Windows SDK versions 22621 and 26100.
- 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 eRTOS applications and RTDLLs.
- Supports Structured Exception Handling (SEH).
- Supports C Runtime for Visual Studio 2022.
Debugging Applications
- Provides a Visual Studio integrated base debugger and launch provider that is used by Visual Studio when debugging real-time applications and applications that use RTDLLs.
- Supports attaching the Visual Studio debugger to an eRTOS process running on an eRTOS remote system outside of the Visual Studio IDE.
- Supports a text-based terminal for debugging applications with eRTOS shell commands, accessible via the target system’s serial port.
Real-Time Network APIs
- Provides Real-Time NL2 API functions and data types supported by the Network Link Layer (NL2).
- Provides Real-Time TCP/IP API functions and structures used by the TCP/IP Stack.
- Provides NIC Driver Real-Time NIC Driver (RTND) functions and data types that a Real-Time NIC Driver must support to be used by the eRTOS Network Link Layer (NL2).
- Provides Ethernet Filter Driver API Reference functions. A TCP/IP Filter driver (eRTOS RTDLL) must export these functions in order to function with the TCP/IP Stack.
- 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 Windows-supported API functions.
eRTOS Runtime
- You must use the AutoStart.bat file to run applications on eRTOS startup.
- eRTOS allocates drive letters differently than Windows.
- If you make changes to the eRTOS configuration, you must reboot for the changes to take effect.
- eRTOS currently does not support Intel® 12th, 13th, and 14th generation processors.
- Shutdown handling is not supported in this version.
- eRTOS Runtime only supports SATA drives and FAT32 files systems. RAID file systems are not supported.
- You must use debug configuration binaries to use eRTOS shell commands.
eRTOS SDK
- Only basic C Runtime APIs are supported in this version.
- The Visual Studio Registers window displays registers during debugging. Visual Studio 2022 and Visual Studio 2019 currently do not display CET - Shadow Stack Pointer registers.
- DLL projects built with the eRTOS RTDLL Visual Studio template will not build if the file name begins with a numeral. Such projects must be renamed before they can be built. (1602)
eRTOS Runtime
- eRTOS USB may crash 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)
- 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.
- cout prints unexpected characters during execution in Runtime and SDK.
- When using registry-related APIs, all paths passed to these APIs must include a leading double backslash (\\). For example: passing the path"SOFTWARE\IntervalZero\eRTOS" to a registry API will not work properly, but "\\SOFTWARE\IntervalZero\eRTOS" will work.
This issue affects the following APIs:
- RegCreateKeyA/W
- RegCreateKeyExA/W
- RegOpenKeyA/W
- RegOpenKeyExA/W
- RegDeleteKeyA/W
- RegDeleteKeyExA/W