IBM
Contents Index Previous Next



SDL Restrictions


General

The Cmicro SDL to C Compiler handles SDL concepts according to the definition of SDL-92. In addition to the restrictions of all the SDL to C Compilers, the following additional restrictions are introduced for the Cmicro SDL to C Compiler:

The following restrictions are additional regarding the packages that are delivered together with the SDL Suite.

sdth2sdl

It is impossible to read in header files created with Cadvanced and use them in Cmicro and the other way around. The reason is that it is impossible to mix up C code between Cadvanced/Cbasic and Cmicro.

Combining Cadvanced / Cmicro C Code

Mixing C code from different C Code Generators is not possible as the different code generators use their own run-time model and run-time data structures. Trying to mix up the C code will lead to compilation errors.

Light and Tight Target Integrations

The light and tight target integrations delivered with the SDL Suite are only available for Cadvanced but not applicable to Cmicro. There are light and tight target integrations for Cmicro but these are not part of the product.

Restrictions in Combination with SDL Target Tester

Scope Rules / Qualifiers

If the SDL Target Tester is to be used, then the scope rules of SDL are handled in a restrictive fashion. No information is generated for the system, block, block substructure, channel and signalroute. After applying the Cmicro SDL to C Compiler, all the structuring information is lost.

This means that it is impossible to address two different processes with the same name in different blocks. In order to avoid problems, give all processes, signals and timers in the system a different (unique) name.

Predefined Sorts

The predefined sort charstring and all the predefined sort that are based on the implementation of charstring (like predefined sorts from ASN.1) cannot be handled, if the SDL Target Tester is to be used. All predefined sorts which are generated into pointers in C cannot be used. In order to get a detailed description, please see in The SDL Target Tester.

Analyzer Restrictions

The restrictions in the SDL Analyzer, which also affects the Cmicro SDL to C Compiler, are summarized in The SDL Analyzer.

Declaration of signals

There is a restriction in the Cmicro code generator which causes a compilation error. The error is related to declaration of signals under the three following conditions:

If all three conditions are met there will be a compilation error from compilation of the <system>.c file. The function cm_Free_Signal requires all signal declarations to be able to free the parameters for the signals. When signals are declared on block level the header file for such blocks are not included in the compilation of the <system>.c file.

If these three conditions apply you must include the needed header files manually on system level, this can for example be done by adding a text symbol on system level:

/*#CODE
#HEADING
#include "x.h"
#include "y.h"
*/


http://www.ibm.com/rational
Contents Index Previous Next