A simplified C++ execution framework (SXF) is provided
to facilitate the development of applications that must satisfy safety-critical
standards.
The following table compares the SXF C++ framework with Rational® Rhapsody®'s
standard OXF C++ framework.
Table 1. Comparison of SXF and OXF| SXF |
OXF |
| Static architecture |
Dynamic allocation |
| MISRA C++ 2008 compliant with modeling checks |
Not validated for MISRA |
| No animation/tracing |
Animation/Tracing |
| Only Real Time mode |
Real Time/Simulated Time modes |
| No containers (can be added) |
Containers |
| Static memory manager (only BaseNumberOfInstances) |
Static memory manager |
| Flat statecharts |
Flat or reusable statecharts |
| No Multi-core |
Multi-core |
| No Interfaces |
Interface-based |
| No Ports |
Ports |
| Windriver Workbench 653 Adapter or Microsoft Visual Studio
2008 or 2010 (for host) Support |
Multiple operating systems support |
Creating a project that uses the SXF framework
To
create a project that uses the SXF framework:
- Select File > New from the main menu.
- In the New Project window, for Project Settings, select SafetyCriticalForC++Developers.
Note: All projects created with the SafetyCriticalC++ settings
automatically include the MISRAC++ settings.
Points to consider when using the SXF framework
- Before building your application, you must rebuild the SXF framework
libraries.
- Rational Rhapsody provides
two adapters for this framework: VxWorks653 SIMNT simulator (environment
is called WorkbenchManaged653) and Microsoft VS2008/2010 (environment
is called MSVC9).
- If you plan to design applications for a different target operating
system, you must develop an appropriate adapter. The simplest way
to do this is to take one of the provided adapters from the OMOSSpecific_Pkg
package to use as a template and make the necessary changes.
- If you are preparing an adapter for a different VxWorks653 CPU:
- Open the SXF model.
- Modify the value of the CPU property accordingly in the model.
- Regenerate the code for the model.
- Rebuild the model.
- Repeat this process for your model - make the necessary changes
to the value of the CPU property in the model, regenerate the code,
and rebuild the application.
- The SXF framework does not use the GEN macro.
Instead of GEN(ev), use send(new ev) in
your code.
Sample that uses the SXF framework
You can
find a sample that uses the SXF framework in the Samples directory
(under \CppSamples\SXF).