|
To ensure successful development of a real-time application, designers and developers must carefully analyze how to efficiently partition the application. They must also establish the correct balance between non-real-time (Win32) processes and real-time (RTSS) processes and determine the interface between them.
If, for example, there is time-critical processing in Win32 processes, too much non-time-critical processing in RTSS processes, or too much synchronization or data flow across the process interfaces, the application's performance, usability, and overall ease of development and maintenance will be jeopardized. An initial investment of time spent analyzing the various tradeoffs and designs in this critical architecture area will be worthwhile to both developers and their users.
NOTE: RTX only supports absolute pathnames.
The RTX SDK provides support for debugging RTSS applications within the Microsoft Visual Studio environment (See Supported Visual Studio Versions) along with a Microsoft WinDbg extension that provides access to RTX subsystem information that would not be available in WinDbg alone. However, in some cases, the initial development and testing of real-time application components, including device drivers is most easily done in the Windows environment. Because of how RTX was designed, switching between an RTX-enabled application and an RTSS application requires no code changes.
NOTE: Some API calls are supported only in RTX. If you use any of those API calls, you cannot debug your application as a Windows application.
The only changes necessary are in regards to the linking of the application. RTX provides Visual Studio Wizards that provide configurations for RTX-enabled applications and RTSS applications, so switching between application types is as simple as selecting a configuration. For details about debugging RTSS applications, in Visual Studio and WinDbg, see Introduction to Debugging RTSS Applications.
Several methods are available for starting RTSS processes. During development and testing, you will typically start RTSS processes from the command prompt with optional command line arguments or by double-clicking on the RTSS executable file icon in Windows Explorer. For final applications, you will generally use either the feature that starts specified RTSS processes automatically (that is, when the blue screen starts at boot time), or you will launch RTSS processes directly from a Win32 process. To create and launch the RTSS process directly, you will use the Win32 RtCreateProcess call to create and start the specified RTSS process.
An RTSS process stops when:
NOTE: The last two methods (RTSSkill and terminating with RTSS Task Manager) do not provide a clean shutdown and may cause unexpected results.
An RTSS process can register a shutdown handler to be called when Windows is shut down or stopped, to allow the final sequencing of equipment and cleanup prior to full system stop and possible reboot.