Release Notes for MaxRT wRTOS™ 1.0.1
- Key Features
- Issues Resolved
- Notes
- Known Issues
- SDK Code Changes from RTX64 4.x to wRTOS 1.x
- SDK Code Changes from KINGSTAR 4.x to wRTOS 1.x
wRTOS Runtime
General
- Integrated GigE Vision, which provides functionality for controlling GigE Vision Cameras within the wRTOS environment. Vision can be installed with wRTOS Runtime. However, to enable this feature, you must purchase and activate the wRTOS GigE Vision and wRTOS Basic Networking packages. Contact IntervalZero Sales to purchase product licenses.
- Added support for Microsoft .NET 8. (4549)
- Added support for Windows 11 25H2 and IoT Enterprise 2025.
- Added support for Windows 10 24H2 and IoT Enterprise LTSC 2024.
- Added support for Intel® Amston Lake processors. (2611)
Activation and Configuration
- Added support for time-limited retail licenses, which expire after a given duration. (13475)
Subsystem
- Updated the default stack size from 8 pages to 12 pages on Windows 11 machines with AMX enabled. (4486)
- Added detail to Subsystem error messages. (8029)
Network and Drivers
- Added the Network Link Layer (NL2) a software component, which 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.
- 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 wRTOS Supported NICs for a list of supported devices and their test status.
- Increased the MaxSockets limit in the TCP/IP Stack from 1024 to 32765. (4707)
- Improved the RtndlGC driver, which now supports a larger maximum packet size (9724). (11653)
- Added support for these Time-Sensitive Networking (TSN) features:
- Hardware timestamping of incoming/outgoing frames.
- Cross-timestamping of NIC hardware clock vs CPU clock (both in software and in hardware with PTM)
- NIC hardware clock adjustments.
- Assigning Transmit/Receive Queue interrupts to different cores.
- VLAN support.
- Ingress filtering based on PCP (Priority Code Point).
- Launch Time functionality.
- Credit-Based Shaper (Qav).
Tools and Utilities
- wRTOS Control Panel provides control for the wRTOS Subsystem and product components, including NL2, TCP/IP, and E-CAT. It also provides shortcuts to launch several commonly used wRTOS tools. (9666)
- wRTOS Settings allows you to activate product components, set the RTSS boot configuration, and configure default behavior for the Real-Time Subsystem (RTSS), real-time applications, networking, and other features.
- wRTOS Message Viewer allows you to view debug and log messages generated during the execution of real-time applications. (398)
- wRTOS E-CAT Configuration Tool allows you to configure the EtherCAT devices (SubDevices) connected to the E-CAT MainDevice within an E-CAT component instance and check their status. (9177)
- wRTOS E-CAT Diagnostic Tool allows you to monitor the connectivity between the EtherCAT MainDevice and SubDevices on the EtherCAT network. It displays device topology, EtherCAT states, and communication errors, helping you quickly identify connection issues and device faults. (14812)
- wRTOS E-CAT ESI Import Tool allows you to import EtherCAT SubDevice Information (ESI) files for your EtherCAT hardware devices and save the ESI data into the E-CAT component database. This enables the E-CAT component to connect to and interact with your EtherCAT hardware devices. (4261)
- The wRTOSProcHybridInfo utility displays core type, performance capability for each active system core, and thread class ID for different sets of assembly instructions when running on each RTSS core. (9160)
- The Network Response Time Measurement (NRTM) tool measures an Ethernet frame's round-trip time (RTT) through a reflector. (6222)
- The StampTool supports flags to handle multiple SDK licenses present on your system. (9975)
wRTOS SDK
Note: See SDK Code Changes
Application Development
- Added support for Windows 11 SDK version 10.0.26100.0 for Visual Studio 2022. (5448)
Samples
- Added an NL2ClockTestApp Sample, which is an example of a Network Link Layer (NL2) application that uses the NL2 Clock APIs to measure the time difference between the CPU clock and a NIC clock, and optionally synchronize the CPU clock to the NIC clock. (3255)
- Added an NL2NICDriverSample, which provides a basic example of a NIC Driver for the Network Link Layer (NL2). (4432)
- Added an AMX IPCLatency Sample, which measures the switching latency between two threads using Intel® AMX instructions. (9881)
- Added a Multicast Sample that can be run as a sender or receiver. The sender periodically sends a multicast frame, while the receiver subscribes to the corresponding multicast group and waits to receive the multicast frames sent by the sender.
wRTOS Runtime
- Added logic to close all open MaxRT wRTOS tools when wRTOS is uninstalled. (14320)
- Resolved these issues with wRTOS Settings:
- Resolved an issue where wRTOS Settings inconsistently displayed Restart Needed warnings for NL2 or TCP/IP setting changes. (14293)
- Resolved an issue where wRTOS Settings allowed the Process Output log file location to be an invalid path. (14089)
- Resolved issues where navigation loops and/or redundant dialogs occurred when a user navigated to the wRTOS Settings E-CAT page without a MaxRT wRTOS Fieldbus license (WFBS64). (14773)
- Resolved a wRTOS Settings crash that occurred when an interface queue or message dialog was opened for an interface associated with a custom driver. (15066)
- Resolved an issue where wRTOS Settings erroneously showed hardware timestamping as unsupported when the RtndI10gb driver (x550 device) was used. (14250)
- Resolved an instability with the MainDevice Name field on the wRTOS Settings E-CAT page when a network interface card was assigned to a MainDevice instance. (14786)
- Resolved an issue with the wRTOS Settings E-CAT page which allowed an invalid state where a Secondary MainDevice instance role could be set without a Primary role. (14757)
- Resolved an issue where the Add an Interface dialog on the wRTOS Settings / Interfaces page didn’t always auto-populate, or populated with incorrect information. (14231, 14261)
- Resolved an issue where RtObjects failed to allocate memory for multiple vector output string pointers for some NICs converted to wRTOS. (13800)
wRTOS SDK
- Resolved a timeout that occurred when RttcpipStartComponent and RttcpipStopComponent were called in quick succession. (14536)
- Added logic to close all open MaxRT wRTOS tools when wRTOS is uninstalled. (14320)
- Resolved an issue where RtfwSetConsoleConfiguration failed to accept directories with other attributes. (14050)
- Real-time function RtIsAppRunnable now sets the correct error, ERROR_NO_LICENSE, when the majorVersion parameter is not set. (13918)
- Windows-supported function VirtualAlloc now correctly sets the last error to ERROR_INVALID_PARAMETER when the dwSize parameter is 0. (13914)
- Real-time function RtSetThreadPriority now correctly returns ERROR_INVALID_PARAMETER when the RtssPriority parameter is invalid. (13910)
- Managed method IntervalZero.MaxRT.wRTOS.RtApi.Threading.RtWaitHandle.WaitAny now correctly throws an exception when passed a handle of 65 or greater. (13865)
wRTOS Runtime
General
- wRTOS-created Event Viewer logs are not removed when wRTOS Runtime is uninstalled. (11802)
- The sample Advanced Installer merge modules project, included with the wRTOS Runtime Merge Modules, does not include logic to allow wRTOS Runtime to support virtual machines. If you want your installation to support virtual machines — which is not a supported deployment scenario — you must include the registry value ExitWhenHypervisorPresent (type REG_DWORD) under the registry key HKEY_LOCAL_MACHINE\SOFTWARE\IntervalZero\MaxRT\wRTOS. To support virtual machines, set this value to 1. (11733)
Note: wRTOS does not support Hypervisor-enabled systems. Enabling this feature may cause your system to generate a Windows STOP error when the wRTOS Subsystem is started. A virtual machine should not be used to deploy hard real-time applications.
- wRTOS Runtime is not compatible with the Windows Memory integrity security feature. You must turn it off before you install wRTOS Runtime. You can do this in the Windows Security app under Device security / Core isolation / Core isolation details.
- Upgrading to a new Windows 11 feature update on a machine where the wRTOS Runtime is already installed results in deletion of the RTSS boot configuration. To work around this issue, set the RTSS boot configuration through the wRTOS Activation and Configuration utility. See the topic Setting the RTSS Boot Configuration for more information.
- When Intel® TurboBoost is enabled in the BIOS, Windows core frequency is boosted when the wRTOS Subsystem starts. This is because RTSS cores are in an idle loop for pooling those SRIs from Windows to RTSS cores. On Coffee Lake systems, specifically, whenever there is a core in the idle loop, the remaining cores' frequency is boosted. To avoid this, we recommend you disable Intel® TurboBoost in the BIOS.
Compatibility
- Network functionality was re-architected for wRTOS 1.0. Network functions in RTX64 4.x and previous versions are not compatible with wRTOS 1.0.
- wRTOS supports several .NET implementations under .NET Standard 2.0. These should work without requiring code changes.
Licensing
- RTX64 licenses will not work with wRTOS 1.0.1.
- MaxRT wRTOS product licenses must only be activated using wRTOS Settings or the MaxRT Activation Utility. wRTOS licenses will not work if they are activated using the RTX64 Activation and Configuration tool or RTX64 command line utility. (13034)
- wRTOS only supports small form factor dongles. The standard dongles supported by older RTX64 versions are no longer supported.
Network and Drivers
- wRTOS 1.x drivers are not compatible with the RTX64 4.x version of the Network Abstraction Layer (NAL). RTX64 4.x drivers are not compatible with the wRTOS 1.x Network Link Layer (NL2) (16394, 11653, 11652, 11651, 11649, 11648)
- When creating a custom NIC driver, it is recommended that the driver’s binary name not match the default NIC driver names provided by wRTOS. The default driver names are used by wRTOS Settings to set up interfaces with the optimal defaults based on the provided driver’s logic. (8318)
- Custom NIC drivers should not use the C Runtime library, and must not call printf. (6438)
- A Windows 10 feature update may cause devices previously converted to wRTOS control to convert back to Windows control. Following a Windows feature update, verify that all converted devices remain under wRTOS control, and re-convert any that were reset to Windows control using the steps documented in the topic Converting a Windows Device to wRTOS.
- The maximum value for the TCP/IP Stack's maximum concurrency setting is now 10340. (9151)
- The advanced NL2 interface properties Number of receive buffers and Number of transmit buffers must be a multiple of 8. (8159)
- The IPv4 Address of the Windows adapter is now configured to 192.168.100.10 with 255.255.255.0 Subnet mask by default. (2695)
- For improved performance, it is recommended to use MSI-X Single Vector instead of MSI for interrupts when possible.
Tools and Utilities
- wRTOS Control Panel and wRTOS Settings do not show component status information when the wRTOS Message Bus service is not running.
- RtPing will now always respond with a precision of 1ms or lower. (8915)
- Links to external tools and components in wRTOS Settings and wRTOS Control Panel are disabled when those tools and components are not installed. (10347)
wRTOS SDK
Application Development
- Visual Studio 2017 and 2015 are not supported.
- Network functionality was re-architected in wRTOS 1.0. Network functions in RTX64 4.x and previous versions are not compatible with wRTOS 1.0.
- DLL projects built with the wRTOS RTDLL Visual Studio template will not build if the file name begins with a numeral. (8683)
- These supported Windows SDK versions have been tested with wRTOS 1.0.1:
| Visual Studio version | Tested Windows SDK versions |
|---|---|
| 2022 |
10.0.22621.x 10.0.19041.x |
| 2019 |
10.0.19041.x 10.0.18362.x |
Note: Using a newer Windows SDK version other than the tested Windows SDK versions listed above might introduce unstable behavior. Such versions should not be used until IntervalZero tests them and claims support.
APIs
- See SDK Code Changes from RTX64 4.x to wRTOS 1.x for a list of the APIs that were enhanced, underwent breaking changes, or were deprecated in or removed from wRTOS 1.0.1.
- Real-time RTFW function RtfwSetSubsystemConfiguration must be run with Administrator privileges. The function will fail otherwise. (8456)
wRTOS Runtime
Installation
- If you remove the Virtual Network feature from the wRTOS Runtime installation (it is selected by default), install wRTOS Runtime, and then modify the installation to install the Virtual Network, the Virtual Network will not install properly. To work around this issue, uninstall and reinstall wRTOS Runtime with the Virtual Network feature selected. (11677)
- To run wRTOS Runtime on a virtual machine, you must select Enable virtual machine support during installation. wRTOS does not support all virtualization functionality. Enabling this feature may cause your system to generate a Windows STOP error when the wRTOS Subsystem is started. A virtual machine should not be used to deploy hard real-time applications.
- Running the command to create a custom response file (
wRTOS_<version number>_Runtime_Setup.exe /r /f1 <file location>) using either the wRTOS Runtime or SDK Installer results in a blank error dialog if the specified<file location>is not valid. (10662) - wRTOS user groups are not removed when the wRTOS Runtime is uninstalled. (9911)
Licensing
- The Activation command line utility fails silently (does not display an error) when an attempt is made to activate a wRTOS Runtime component on a Virtual Machine when a dongle is not present. (9225)
- Licenses cannot be activated to a small form factor dongle, either through wRTOS Settings or the command line, on a remote system accessed via Windows Remote Desktop. This is due to a security limitation with the third-party dongle software. Attempts to activate to the dongle in this scenario will result in an error such as Error 19 (Unable to read dongle memory). Note that this issue does not happen when other remote connections, such as VNC or Team Viewer, are used.
Real-Time Subsystem
- Setting the Monitor for runaway threads Watchdog Timer value of 1000 microseconds in wRTOS Settings causes these behaviors (6556):
- An RTSS Exception Notification appears in the System Tray.
- The TCP/IP Stack fails to start with this error: Error starting the real-time TCP/IP stack! The TCP/IP stack is already started.
- If you enable the Virtual NIC interface VirtualNIC, start the TCP/IP Stack, and then force-stop the Subsystem through the wRTOS Control Panel, subsequent attempts to start the Subsystem fail with this error: The Subsystem cannot be started. The wRTOS Managed library encountered an error from a native API: The system cannot find the file specified. When this occurs, reboot the machine and start the Subsystem again. (12892)
- The wRTOS Subsystem cannot be stopped after a process that used _beginthread or _beginthreadex to spawn child threads is forcefully terminated while those child threads are still running. To work around this issue, you must restart the system. To avoid this issue, use CreateThread to spawn child threads, or avoid forcefully terminating a process (using RtssKill or some other means) that used _beginthread or _beginthreadex to spawn child threads that have not exited. (10894, 10700)
- Windows shutdown handling does not function properly on some Intel® 12th Gen systems running Windows 11. When this occurs, wRTOS cannot perform its own shutdown handling. (10673)
Network and Drivers
- Multiple Virtual NICs are not supported. Support for multiple Virtual NICs will be added in a future release. (14047)
- Jumbo packets cause the wRTOS Realtek driver (RtndRtl) to become unstable. (11742)
- The Force Speed/Duplex feature for the RtndIGC Driver does not work when the i225 device is plugged into a device that supports 2.5 Gbps. (10867)
- Real-time API RtnGetArpTable() and the RtArp.rtss utility display device names truncated to 15 characters. The full case-sensitive device name must be used when adding or deleting an ARP entry. (9222)
Tools and Utilities
- wRTOS Settings allows you to search for content on pages for components that aren’t installed. When this occurs, wRTOS Settings displays an error and then opens the page for that component, which may be incomplete. This issue will be fixed in a future release. (14027)
- If you attempt to shut down the Subsystem after a system restart while multiple processes are running, and you choose not to terminate those processes (see Stopping the Subsystem While Processes are Running), the wRTOS Control Panel might silently close. When this occurs, you should then be able to reopen the wRTOS Control Panel and stop the Subsystem. (12974)
- When the amount of generated monitoring data exceeds the amount of memory dedicated to monitoring, automatic stop conditions such as Maximum number of events to collect or Maximum session log size may cause the active monitoring session to enter a false-stopped state. To resolve this, start a new monitoring session using RTX64 Monitor and make sure the tool shows the new session as running. (10797)
- If the system is shut down while the Subsystem is running and monitoring is enabled but not started, a hidden, locked monitoring session file might remain when the system is rebooted. Note that this file consumes memory associated with the configured maximum session log sizes. (10787)
- wRTOS Tools exhibit various issues on systems running Windows 10 2016 LTSB (Long Term Servicing Branch). Due to these issues, we have performed limited testing and will not be claiming support for such systems. If you require Windows 10 2016 LTSB support, please contact your Sales representative. (9206)
wRTOS SDK
Application Development
- Real-time applications and RTDLLs created with the wRTOS Visual Studio templates that include Microsoft C Runtime support (default) will contain several unnamed mutex objects, which may cause performance issues. It is recommended you not include the Microsoft C Runtime if you do not need to use it. (11740)
- Using a newer Windows SDK than the tested Windows SDK versions might introduce unstable behavior and should not be used until wRTOS fully tests and claims support for it. See Application Development under Notes above for a list of tested Windows SDK versions for each supported Visual Studio version. (10901)
- Applications that include a reference to function
auto t = std::chrono::high_resolution_clock::now();result in linker errors with Visual Studio 2019 v16.9 and later versions. (9946) - When building an application using .NET 6.0, RtUtilityManaged.dll and MessageBusManaged.dll must be provided in the project. These DLLs can be found in the following directory: C:\Program Files\IntervalZero\MaxRT\wRTOS SDK\1.0\bin (11177)
- When building an application using .NET Framework, Microsoft.Win32.Registry.dll may need to be provided in the project. This DLL can be found in the following directory: C:\Program Files\IntervalZero\MaxRT\wRTOS SDK\1.0\bin (11177)
Application Debugging
- The wRTOS Visual Studio 2022 support package, wRTOSVSSupport2022.vsix, which adds support for the IntervalZero Real-Time Debugger and templates for creating RTSS applications and RTDLLs for Visual Studio 2022, is not installed when Visual Studio 2022 is selected in the wRTOS SDK installer. To work around this issue, navigate to
%wRTOSSDKDir1%\VSExtensionsand double-click the file wRTOSVSSupport2022.vsix. (13276) - Attempting to restart debugging in Visual Studio 2022 may result in the process being terminated with the following error: The IntervalZero Real-time debugger is not compatible with the target RTSS runtime. Debugging will be aborted. (10886)
Supported Windows APIs
- Parameter lpcchValueName in function RegEnumValue is a pointer to a variable that specifies the size of the buffer pointed to by parameter lpValueName. Parameter lpcchValueName is in bytes when it should be in characters. As a result, when the buffer size in bytes is not sufficient, the function fails with error code ERROR_INVALID_PARAMETER (87). This will be fixed in a future release. (9044)
Samples
- The RtkIPC sample fails to build with Visual Studio 2019 versions prior to v16.10.4, resulting in this error: unresolved external symbol __stdio_common_vsprintf referenced in function _snprintf. This issue does not occur in Visual Studio 2019 v16.10.4 and later. (10067)
- The RDTPerformance sample may hang when debugged on machines with a high number of cores. (8907)