What's New in RXF V8 C++

The RXF is currently available in major version 8. It has been based on version 7 but with a builtin base for RXF C++ Cert in mind.

Compiler support

The product requires a C++11 Compiler. Support for CMSIS and ARM Compiler 5 have been dropped.

MISRA

The quality of the RXF sources has been improved with respect to MISRA compliancy. MISRA support is out of the box: no extra profile is required anymore.

Model Checks

The RXF comes with additional model checks. For details see Model Checker section in Configuration.

Ports

The code generation for ports has been rewritten.

Deployer

The Deployer is now independent of the IDE to deploy to. This allows the product to be used with multiple IDEs. Also, the Deployer allows selective Deployment of RXF Sources, to allow delivering multiple RTOS adaptions of your model.

The Deployer allows you to use multiple IDE projects. Which IDE project a model and RXF must be deployed to, is specified via a property and is thus part of your model. As a result, the model and IDE project can both be maintained in a Software Configuration Management (SCM). Using relative paths to an IDE project allows multiple people to work on the same project or model, each in an own IDE project.


Configuration

(since Version 7)
The configuration of your model and the RXF is now conveniently arranged in a new RXF property perspective.

   

Support for Pre- and Post Build processes

(since Version 7)
You can now easily configure a pre- and post build process to run on the deployed sources.


Memory Usage

(since Version 7)
You can now easily configure the event memory pools and if you allow dynamic memory management for events.


RXF Configuration Files

(since Version 7)
There are two configuration files generated:

RXF Constants

In V8, all RXF related constants are prefixed with RXF_ instead of WST_. Furthermore, constants have been renamed. See Migrate from V7 to V8 for more details.

RXF Error Handler

In V6 the error handler used the new-term stereotype RXFErrorHandler. In V7 and V8, you can implement your own error handler using the package rxfConfigurationStandardContent which results in a RXF_ErrorHandler.h and RXF_ErrorHandler.cpp

OS Integration

OS Task Stack

(since Version 7)
The task stack used in an active class, is defined as an attribute of such a class, automatically generated in the C++ code depending on a new property.

See Migrate from V7 to V8 for more details.

no RTOS message queues

(since Version 7)
RTOS message queues are no longer used to send and retrieve events. We use a FIFO event queue internally:

In the OORTX all classes share a single event queue to send and receive events.

OXF Container Classes

The container classes use the heap now. As a consequence, the configurable memory pools for List and Map have been removed.

(since Version 7)
As the deployer needs to deploy all selected variants from RXF sources flat to one RXF directory, also the oxf container class folder is deployed flat now. If include paths like <oxf\omcollec.h>, <oxf\omlist.h> or <oxf\ommap.h> are added manually to the user model, they have to be changed to <omcollec.h>, <omlist.h> or <ommap.h>. For generated code, this is fixed automatically through the new Framework Profile.

Rhapsody Integration

(since Version 7)
No WST_RXF_V8.prp file is required and included in SiteC.prp or SiteC++.prp. Properties are now defined in the RXF stereotype as part of the product specific profile.