This version of ARXF_CP_V8.00 has a few restrictions which are related to AUTOSAR:
- the AUTOSAR version supported is 4.x.
This is because the M2M tool which can be used in future Use Case examles, is based on IBM AUTOSAR profiles for AUTOSAR 4.x
- this product supports the SW-C type application software component (formerly atomic software component) and
service software component only. The type parameter software component (formerly CalPrm component) is not supported.
- the configuration of OS tasks including stack size is not done via properties, like in other RXF products for various RTOSses.
The configuration of OS tasks is done within an AUTOSAR tool.
- sending UML events between SW-Cs or instances of the same SW-C is not supported: one can send UML Events within an SW-C instance only.
All communication between SW-Cs is done via AUTOSAR Ports and handled by RTE APIs.
Sending and receiving UML events would require serialization and de-serialization of a UML event including optional parameters.
- this version of ARXF_CP_V8.00 does not support the AUTOSAR standard for inserting Memory section definitions.
This is a restriction which will be fixed later.
UML Modeling Restrictions
It is not possible to use the RXF-C and the ARXF-CP in a single Rhapsody model. This is a restriction which will be fixed later.
Almost all UML elements can be used in Rhapsody in combination with the ARXF-CP. This includes classes, objects, singleton objects, files,
statecharts, several kinds of relations etc. However, some UML elements
cannot be used together with C code generation:
- Re-use of Classes
You can not use the same class in different SW-Cs if that class directly performs RTE calls.
The reason for this is that you may not include contracts of multiple SW-Cs in a single source. This is a restriction defined by AUTOSAR.
There is a proper workaround for this ‘class re-use’ problem: you can ‘inherit’ classX and classY from this class and use classX and classY in two SW-Cs.
Please refer to the section Reuse of Classes in multiple SW-Cs where is explained how to do this.
- Active Classes must run in unique Tasks
You must configure an OS task per active class, but those tasks must be unique: you should not use the same task for different active classes.
The reason for this is that event queue is allocated per OS task structure in the ARXF-CP.
Note that multiple instances of the same active class run in the same task. Each uses its own instance if its event queue.
An active class needs an initializer, please refer to the section Initialization in Best Practices.
- Activity Diagrams associated to Operations
Code generation is only supported for activity diagrams and statecharts,
which are associated with a class, an object or a file. Activity
diagrams can also be assigned to operations or packages, but no C code can be
generated from them.
Note that although SW-Cs communicate via ports with other SW-Cs or Basic Software,
an AUTOSAR authoring tool which generates the RTE, generates in fact APIs for functions which communicate via such ports
and even the implementation of such functions.
We refer to such ports as AUTOSAR Ports.
The ARXF-CP does not support the IBM Rhapsody standard using instrumentation and TCP/IP communication due to the
heavy overhead. As a consequence there is no support for Rhapsody's internal
feature called "Animation".
Later versions will support the UML Target Debugger by SodiusWillert and use the AUTOSAR XCP module.
To allow inheritance in the C language, all operations would need to be
implemented as callbacks or in a virtual function table. This would
increase the code size, RAM needs, runtime and calling operations from
user code would be more complicated. Thus no full inheritance is available
in Rhapsody in C, but you do can re-use classes via static inheritance.
An SW-C is represented by a structured class. Rhapsody does not allow a part to be a singleton.
As a consequence, singletons must be initialized explicitly.
Furthermore: you can not use static Inheritance
on the exposed class of a Singleton to re-use it in multiple SWCs.
- this version of ARXF_CP_V8.00 does not offer UML modeling support for the Execution Budget used in AUTOSAR.
The Standard Content for an eventDispatcher runnable in an SWC
shows an example how to deal with this.