[Previous]
[Next]
[Contents]
[Index]
Release Notes
This chapter contains information related to the Telelogic Tau 3.5 release, in terms of:
- Included components
- New and changed features
- Known limitations
- Recommendation of use
Table of Contents
Included Components
The Telelogic Tau 3.5 release features the following tools and documents:
Common Telelogic Tau Tools and Features
- Organizer
- Print utility
- Preference Manager
- Help Viewer
SDT Tools and Features
- SDL Editor
- CIF Converters
- Emacs integration (UNIX only)
- MS Word Integration (Windows only)
- Link Manager
- Type Viewer
- Coverage Viewer
- Index Viewer
- Analyzer
- SDL Access (not included in the standard distribution)
- ASN.1 Utilities
- H2SDL Utility
- C Code Generator (Cbasic/Cadvanced)
- SDT C Compiler Driver (SCCD)
- Simulation Library and GUI
- Validation Library and GUI
- Application Library
- Master Library
- CHILL Code Generator (UNIX only)
- Cmicro Package
- CORBA Integration (UNIX only)
- RTOS Integrations
ORCA1 Tools and Features
- OM Editor
- SC Editor
- MSC Editor
- HMSC Editor
- Text Editor
- UML2SDL Utility
- OM Access
ITEX Tools and Features
- Browser
- Finder (Windows only)
- Table Editor
- TTCN Link
- Autolink
- Data Dictionary
- Analyzer
- C Code Generator
- Simulation Library and GUI
- ITEX Access (UNIX only)
User Documentation
- Installation Guide
- Release Guide
- Getting Started (tutorials)
- Methodology Guidelines
- User's Manual
New and Changed Functionality
This section contains a list of new and changed functionality in Telelogic Tau 3.5 for the tools, languages and features that existed in Telelogic Tau 3.4. For information on the overall changes in Telelogic Tau 3.5 compared to Telelogic Tau 3.4, see News in Telelogic Tau 3.5.
Telelogic Tau Tools and Features
Patches and Error Descriptions
- Patches to the Telelogic Tau software, as well as descriptions of known errors and corrected errors, are now available on the Telelogic Help Desk web page.
This page can be directly accessed with the Organizer Help menu command Help Desk. It also possible to manually login on the page http://www.telelogic.com/usersupp/custarea.asp
The necessary UserID and Password is displayed in the dialog box Telelogic License Information, which is opened with the Organizer Help menu command License Information.
Note that this feature requires a valid maintenance agreement.
Platform Support
- The support for ORCA and SDT on the Digital UNIX 4.0 platform has been terminated.
Licensing with FLEXlm
User Interface
- For Windows, two new preferences have been added. SDT* UserInterfaceFontFamily selects the font in the user interface and SDT* TextWindowFontFamily selects the font in text windows. These are combined with corresponding height preferences.
The preferences have no effect on ITEX or Cmicro tools.
- File name completion is available in all dialogs where you are supposed to type in a file or directory. Type in the first part of an absolute file name or directory, and let the rest be filled in automatically by typing a space. This means that typing of file names and directories can be done faster and more accurate. For more information, see File Name Completion.
File name completion is not available in ITEX or Cmicro tools.
Organizer
- In SDT 3.4, it was possible to analyze or generate code either for all or one block in an SDL diagram. In SDT 3.5, the Analyze and Make dialogs includes a Select other(s) button that also makes it possible to analyze or generate code for several but not all blocks in an SDL diagram.
- The search dialog now includes an option for Wildcard search. For example, the search string in*t will find the word input.
- The Organizer keeps track of window positions and sizes for all Organizer, ORCA diagram editors and SDL Editor windows. This information is saved in a separate file when the system file is saved. When the system file is later opened, the Organizer will be able to open windows in the same position as last time. For more information, see System Window State File.
- The Organizer Save menu choice is never dimmed. For example, this makes it possible to save the system file again if the system file has been deleted from the file system, without making the system file dirty first.
- When you add an existing file, there is a new dialog with two new options: It is possible to show the document in an editor and (if you add an SDL diagram) to expand the SDL substructure as well.
- When you use Diff to compare two SDL files, it is now possible to select to Detect moved symbols. This option should only be used when you compare two versions of the original diagram (that is, not two diagrams created from scratch).
- The Organizer now has a symbol representing cross reference files (index files). This makes it easier to navigate to an Index Viewer window that is already displaying a generated index file. The index symbol also makes printing indexes from the Organizer more similar to printing normal diagrams and documents.
- In the Set Directories dialog, you can specify the target directory as relative to the source directory. This makes it easier to move files in the file system, for example when the target directory is a sub directory to the source directory.
- Earlier opened system files are listed in the File menu for quick access.
Print to Web
- When you print from the Organizer, the SDL Editor and the ORCA diagrams editors, it is possible to generate web files (using the format option Web Files (HTML+PNG)). An HTML file is used for linking related pages and PNG files are used for showing diagrams. The files can be opened in Internet Explorer 4.0 or later and Netscape 4.0 or later.
It is not possible to print TTCN documents to HTML or PNG.
Print to MIF / Import into FrameMaker
-
When you print a document to MIF format, you can now Import by Reference the MIF file into a FrameMaker document, in addition to Copy into Document.
-
Diagrams divided into several pages will now be printed to MIF (or imported directly into FrameMaker) as a sequence of anchored frames in a single, autoconnected text flow. Expanded texts (from minimized text symbols) are placed last in the same text flow. The physical page size of the MIF document is not specified.
This will make it possible to import MIF files into existing FrameMaker documents without creating separate, disconnected pages.
Postmaster Libraries (Windows only)
libpost.lib
, the statically linked library for the Borland C++ 5.02 compiler, is no longer supported. Use the DLL instead.
Postmaster
- Multiple sessions is now supported on all platforms.
SDT Batch
- SDT Batch is now supported on all platforms.
Microsoft Word Integration (Windows only)
- There is now support for MS Word 8.0 (Office 97).
On-Line Help
- Microsoft Internet Explorer 4.0 is now supported as help viewer on all platforms.
- FrameMaker is no longer supported as on-line help viewer. In addition, no FrameMaker help files are included in the installation.
- How to use the on-line help is only described on-line.
- The on-line help now contains a contents page instead of a table of contents.
- There is a special index that only lists menu choices.
Documentation
- A quick reference for how to install Telelogic Tau 3.5 is included as a separate, printed page.
- The documentation now includes a quick reference for symbols and lines in HMSC, MSC, OM, SC and SDL diagrams. This is included both in Symbols and Lines -- Quick Reference in the User's Manual and as a PostScript file in
/pscript/<paper format>/symquick.ps
on the installation CD. Use the latter one to make your own printout.
- The Documentation Guide has been removed. Information about how to use the on-line help is included in the on-line help only. How to configure the on-line help is described in Customizing the On-Line Help. The index for the wire-bound volumes is included last in the Release Guide (this volume). An overview of the Telelogic Tau documentation can be found in Telelogic Tau Documentation at the start of this volume.
- There is only one chapter describing the ORCA diagram editors (that is, the HMSC, MSC, OM and SC editors), see Using the ORCA Diagram Editors. However, how to edit MSC diagrams is still described in Editing MSC Diagrams.
- There is only one chapter in the User's Manual describing the SDL Editor and how to use it. See Using the SDL Editor.
- The chapter Integration with Operating Systems has been rewritten and moved into the User's Manual.
- The descriptions of how to print from ITEX have been moved into Printing Documents and Diagrams. This means that all print operations in Telelogic Tau are now described in one place.
- ITEX Access is now described in three chapters: ITEX Access, Creating an ITEX Access Application and The ITEX Access Class Reference Manual.
- Autolink and TTCN Link are now described in a common chapter: TTCN Test Suite Generation.
- The tutorials for Autolink and TTCN Link are now applicable to Windows too.
- The tables of contents for each chapter have been deleted in the printed version and replaced by a common table of contents for each part (binder) of the documentation.
- The menu choice entries in the printed index have been moved to an on-line-only menu choice index.
TTCN Language
- The interpretation of the length of
OCTET STRING
literal values has changed. The previous interpretation of a string such as '??'O was that it was of length one. This is now considered to be of length two, that is, each question mark represents a whole octet. The ITEX Analyzer has been updated accordingly.
ITEX Tools and Features
Table Editor (on UNIX)
- The Graphical Tree Editor has been removed.
TTCN Link
Analyzer
- The Analyzer has been updated according to the change in interpretation of the length of question marks in literal
OCTET STRING
values. This is described in TTCN Language.
- It is possible to analyze the entire test suite or the entire modular test suite independent of the current selection (Windows only). For more information, see Using the Analyzer.
- In the Analyzer dialog, you can set an error limit to make the analysis stop at a specified number of found errors. (Windows only)
ORCA Tools and Features
Public Interface
- It is now possible to generate PR for MSC and HMSC files. For more information, see MSC GRPR and HMSC GRPR.
All ORCA Diagram Editors
- When you print from the ORCA diagram editors, it is possible to generate Web Files (HTML+PNG). An HTML file is used for linking related pages and PNG files are used for showing diagrams. The files can be opened in Internet Explorer 4.0 or later and Netscape 4.0 or later.
- The ORCA diagram editors now have back and forward quick-buttons, similar to a web browser, that make it possible to quickly open the previous and next document or diagram in the history.
- It is now possible to search one page, diagram or document directly from the Tools menu of an editor.
- The ORCA diagram editors now have two modes: edit and view. To be able to edit a diagram or document, you must have write-access to the file. You can use the new Revert Diagram menu choice to update the editor mode if file permissions have changed since the diagram was opened in the editor.
- A new lock file feature is introduced to avoid having two users working on the same diagram or document at the same time. Whenever a diagram or document is loaded into an editor in editing mode, a lock file is created. If someone else wants to edit the same file, a dialog will give him/her information about the work of the other user. See Lock Files and Read-Only Mode.
HMSC Editor
- It is now possible to generate PR according to MSC'96, see Generate MSC PR. This functionality is also available externally as a public service.
MSC Editor
- The MSC Editor has been streamlined to have the same user interface as the other editors. For example, you can now edit text directly in text objects, use an external text editor, and move several objects at the same time. The editor also provides better visual feedback when objects are moved, and a syntax check when text is typed.
- The storage format for MSC diagrams has changed in this release. Version 3.5 of the MSC Editor can handle the same formats as version 3.4, but the 3.4 MSC Editor and earlier versions cannot read the new 3.5 MSC format.
Make sure you have backup copies of your MSC diagrams in case you wish to continue working with version 3.4 or earlier for MSC diagrams saved with version 3.5.
- The MSC Editor now supports the lost message and the found message symbols defined in the ITU standard. When a message appears from an unknown or not drawn instance, the found message symbol is used. The lost message symbol is used when the message is discarded or when the message is sent to some instance not shown in the diagram. See also Drawing a Message.
- Message status has been replaced by lost and found messages.
- It is easier to select messages, timers and coregion symbols. A special selection marker is used for indicating which endpoint of the line that is selected.
- The MSC Editor now has support for the decomposed concept. When you decompose a given instance, it will be marked as decomposed, a new diagram will be created and you can specify the interior of the decomposed instance.
It is also possible to structure a complicated MSC into several MSCs with decomposed instances. To do this, you select two or more instances and collapse them. This will create two new diagrams: one where the selected instances have been collapsed into a decomposed instance and another that shows the behavior of the selected instances. In addition, it is possible to navigate from a decomposed instance to the referenced diagram.
See also Decomposing a Diagram.
- The syntax for texts used in the MSC Editor is more strict. The syntax is checked as you type the text and incorrect text will be underlined in red. When you use MSCs in the Validator to verify a system, more checks are being done and only correct diagrams can be used in the Validator. See also Compatibility with ITU MSC.
- The following menu choices, that existed in the 3.4 release, have been removed from the MSC Editor: Filter, Tidy Up, Generate SDL and Extract Information.
- The Rename menu choice is no longer available. Instead you can change the name by editing the heading. The type "sub MSC" is no longer used.
- The Spacing menu choice has been incorporated into the Insert Options dialog.
- When you insert a symbol or line, the position is defaulted to After Selected Object. The defaulted position for insertion of created processes is First Closest.
- The appearance of the inline expression symbol has changed. It is now only one symbol which you can resize by dragging the top or bottom part. The limitation that inline expressions always are global still applies.
- It is not possible to set the status of an inline expression. An exception must be expressed in the text on the inline expression (exc).
- The additional heading has been removed since this symbol does not exist in the MSC standard. When you open an old diagram containing text in an additional heading, the text will be placed in a text symbol instead.
- In accordance with the MSC standard, the arrowheads in messages, timers and create lines are now filled.
- There is only one timer symbol in the symbol menu. To draw a separate timer, you place the endpoint at the same position as the starting point. Also the timer status has changed. For more information, see Drawing a Timer.
- Objects now adjust their size to the contained text.
- The grid is always 2.5 mm. This grid is applied when you move objects and text attributes.
- When you generate PR, only event oriented PR is generated. SDT graphical references can be generated as well.
- Preferences for the MSC Editor are now included in the preferences for the other ORCA diagram editors. See OM/SC/HMSC/MSC Editor Preferences.
SDT Tools and Features
SDL Editor
- It is now possible to use change bars in SDL diagrams. They indicate texts that have been changed or moved. Change bars are controlled from the Organizer, see Change Bars.
- When you print from the SDL Editor, it is possible to generate Web Files (HTML+PNG). An HTML file is used for linking related pages and PNG files are used for showing diagrams. The files can be opened in Internet Explorer 4.0 or later and Netscape 4.0 or later.
- In the SDL Editor, you can type the first part of a long word and let the editor fill in the rest, provided that the word has been typed before. This makes typing text in SDL diagrams faster and more accurate. For more information, see Complete Word.
- The SDL Editor now has back and forward quick-buttons, similar to a web browser, that make it possible to quickly open the previous and next diagram in the history.
- You can navigate between definitions and uses of an SDL entity by using the new Show submenu in the Tools menu. Combine this feature with name completion and back navigation, and you have a nice way to navigate in your SDL specification. Here is a scenario:
You are adding a signal reception in an input symbol. Type the first part of the signal name and let name completion fill in the rest of the signal name. To refresh your memory about the signal parameters, navigate to the signal definition by using the Show > Definition of X menu choice. Then go back (by using the quick-button) and edit the input symbol to receive the signal with correct parameters.
Note that this feature only works if the Index Viewer is loaded with an up-to-date cross reference file.
- It is now possible to search one page or diagram directly from the SDL Editor.
- The SDL Editor now has two modes: edit and view. To be able to edit a diagram, you must have write-access to the file. You can use the new Revert Diagram menu choice to update the editor mode if file permissions have changed since the diagram was opened in the editor.
- A new lock file feature is introduced to avoid having two users working on the same diagram or document at the same time. Whenever a diagram is loaded into the SDL editor in editing mode, a lock file is created. If someone else wants to edit the same file, a dialog will give him/her information about the work of the other user. See Lock Files and Read-Only Mode.
- When you generate GR references -- as a service in the public interface or by the Generate PR menu choice -- the references now also contain the line number and the column number where the text cursor is placed.
Analyzer and Code Generators
- The error messages should now be easier to understand. Most of the improvements have been made on resolution by context (type checking expressions). A number of messages also have new explanations in The SDT Analyzer.
Analyzer
- The semantic analysis for large systems is now faster.
- The new command Set-Echo makes it possible to print Analyzer commands when they are executed. This is also available as a new option in the Analyzer dialog in the Organizer.
H2SDL
- In Windows, H2SDL now has the same capabilities as on UNIX. Thus it is now possible to run H2SDL stand-alone from a DOS command-line and to specify which preprocessor to use in the H2SDL Options dialog. For more information, see H2SDL Input and Output.
- The automatic detection of which preprocessor to use in Windows was error-prone and has been removed. If no preprocessor has been explicitly specified in the H2SDL Options dialog, the Organizer will determine if the Microsoft or Borland preprocessor is to be used.
- Messages that are output from the preprocessor are now printed in the Organizer log.
- Package names (set with the
-n
option) will not be modified by H2SDL anymore. If no package name is specified, the default name untitled will be used.
Simulator
- A Define-Integer-Output-Mode command has been added, to set the output and input mode of integer values.
- It is now possible to select a external synonym file via the environment variable
SDTEXTSYNFILE
.
Validator / Autolink
The commands mentioned below are described in Monitor Commands.
- A Define-Integer-Output-Mode command has been added, which makes it possible to set the output and input mode of integer values.
- To ignore parameters of signals in MSCs, the new Define-MSC-Ignore-Parameters command should be used.
- The commands List-Instance-Conversion, Define-Instance-Conversion and Clear-Instance-Conversion have been added. They make it possible to redefine instances in MSCs.
- It is now possible to select a external synonym file via the environment variable
SDTEXTSYNFILE
.
- By using Autolink, you can now also generate the TTCN declarations, that is, it is not necessary to make a link executable to add the declarations in ITEX. Therefore, the semantics of the command Define-TTCN-Compatibility has changed. The option "Standard" generates a test suite with declarations and the option "ITEX" produces a test suite without declarations -- for backward compatibility reasons.
- The Autolink configuration has been extended in order to make it possible to define test suite parameters, test suite constants and to replace signal parameters by TTCN matching expressions.
SimUI / ValUI
- The dialogs for reading external synonyms have been improved, see Supplying Values of External Synonyms.
- Parameter dialogs have been improved. Name completion is allowed in some dialogs. It is also possible to sort the choices alphabetically. Some dialogs have been extended with a Default value button to make it possible to get the default value of a type. See Selecting Parameters.
- A new dialog for entering all parameters to a signal has been introduced, see Selecting Signal Parameters.
- In the SimUI, it is now also possible to save the commands in a file by using the Save menu choice in the pop-up menu.
Cmicro Code Generator
- The following SDL constructs are now supported:
- system types, inheritance, instantiation
- block types, inheritance, instantiation, virtual block types
- process types, inheritance, instantiation, virtual process types
- virtual/redefined/finalized input/save in process types
- timers with one integer parameter
Cmicro Library
- A number of predefined Cmicro kernels for host is available from the Organizer Make dialog.
Cmicro Tester
- The Cmicro Tester can now be started from the Organizer Tools > SDL menu.
- The Cmicro Tester now offers a more complete menu definition.
Cmicro Bodybuilder
- The Cmicro Bodybuilder can now be started from the Organizer Generate menu.
- By using the Bodybuilder, you can add and delete user defined C compilers. This functionality is restricted: it is only possible to specify the #define for the compiler.
- It is now mandatory to specify the reaction on a warning/error during runtime (the ErrorHandler function is called in this case), with the help of the Bodybuilder. It is not longer allowed to compile an empty ErrorHandler function, which was leading to subsequent errors in the generated application. When an error/warning occurs, you now have to select between the 3 alternatives:
- Hang up (implemented as a while (1) loop)
- Call printf
- Call user defined C function
- By default, all the ADTs are enabled within the Bodybuilder. This will ease the production of a first Cmicro executable. If you want to optimize a Cmicro executable, you may disable the non-relevant ADTs.
Known Limitations
The following sections contain a list of known limitations and restrictions for the tools and parts of Telelogic Tau 3.5.
Telelogic Tau Limitations
Operating System and Windowing Environment
- In Windows, Telelogic Tau has been built and tested using the following service packs:
- Windows 95: Service pack 1
- Windows NT 4.0: Service pack 3
You may encounter problems when running Telelogic Tau if you do not have these service packs installed on your system.
- When you run Telelogic Tau on X terminals or PCs with X server software, mouse-clicks are sometimes not transmitted quickly enough for Telelogic Tau to recognize it.
The X resource *multiClickTime
can be used to change the default threshold of 250 ms if you have a UNIX terminal with the DISPLAY
environment variable set to your local X server. You can write:
xrdb -merge
*multiClickTime: 1000
^D
The appropriate value (in milliseconds) may depend on your hardware/network.
The X server delivered with HP-UX 10.20 need to be updated with patch PHSS_12470 from HP, to prevent the X server from crashing when you run Telelogic Tau.
On-Line Help
- When links are followed from the index of the documentation, the positioning in the HTML help file may not always be exact. In some cases, the positioning is made a few lines down in the describing text. In the case of tables, the positioning may be after the table.
The workaround is to scroll the text up to find the heading, bulleted item or table row describing the corresponding topic.
Licensing
- The license timeout facility does not support ITEX or tools that are run in stand-alone mode. In general, stand-alone tools do not release their licenses immediately when they do not need them any longer, with the exception of the SDT Cadvanced/Cbasic Code Generator. The license timeout facility is not meaningful when the single-user CopyControl licensing system is used in Windows.
Documentation
- In SOMT Tutorial, it is assumed that you have basic knowledge of the Link Manager. However, this tool is not covered in the earlier tutorials. For information about the Link Manager, see The Link Manager.
- There are no tutorials on the State Chart and HMSC Editors.
- In the MSC Editor, the appearance of some MSC symbols and lines have been updated (see MSC Editor) but all MSC diagrams depicted in the documentation have not been updated accordingly.
TTCN Restrictions
- The TTCN language supported in ITEX is according to an interim version of the new TTCN standard labeled Delivery 8.3, August 2, 1996, with the exception of the Modular TTCN features that are according to the Delivery 9.6 version.
- Due to the Delivery 9.6 Modular TTCN features, the support for the TTCN Package document type has been dropped.
- The import/export mechanism of the Modular TTCN feature is currently not able to handle import that uses the "xxx[yyy]" construct needed for importing named numbers, and neither able to handle the "xxx::yyy" construct for importing objects with name collisions.
More general restrictions and modifications to the TTCN and ASN.1 support in ITEX is described in The Languages Supported in ITEX.
ITEX Tool Limitations
Batch
- No batch functionality (that is, without graphics) is available.
Color Problems on UNIX
- On computers where the display hardware limits the number of concurrent displayed colors, ITEX might run out of colors. ITEX will in this case start to use what appears to be random colors. This should have no effect on the usability of ITEX, but can be somewhat annoying.
Table Editor on UNIX
- The Table Editor can only display up to approximately 1000 rows. This limitation is only present in the Table Editor, so conversion to or from MP, printing, analysis, etc. is not affected.
Graphical Tree Editor on UNIX
- The Graphical Tree Editor has been removed.
Analyzer
- The Analyzer currently only implements a very basic analysis of the imports and externals tables used for Modular TTCN, and in addition the export tables are not analyzed at all.
- The Analyzer does not support encoding/decoding variations.
External ASN.1 Reference
The definition of the ASN.1 type that is referred is limited:
- References of the form
Module.Type
are not allowed in the definition.
- References to types/values in the same or other ASN.1 module is not allowed in the definition, unless separately defined.
- The language supported can be described as "the least common denominator" of the ASN.1 1988 standard and of the ASN.1 1994 standard.
- The limitations for the types and values referenced from TTCN also include those described in ASN.1 Utilities.
C Code Generator
- The language supported by the C Code Generator is a subset of the language covered by the Analyzer. This means that in some cases, constructions that have been analyzed correctly are not supported in the code generation phase. The following list describes the known limitations in the current code generator.
Most of the known restrictions are connected to the usage of ASN.1 in test suites. Test suites that only use pure TTCN will avoid these restrictions as long as they do not contain constructions as listed in the first three paragraphs in the following list.
- There are problems with forward references in the declarations part. In TTCN, types and values can be defined by references to other constants and values (for example values read from a PICS/PIXIT files). Such constructions, even if they are not common, will cause problems in the generated code.
- The assignment of variables that are defined to be of structured types, causes problems if the fields do not have default values assigned to them.
- The thread implementation of concurrent TTCN has been known to have problems with context switching in some cases. This is not problem if you are not using concurrent TTCN.
- The C Code Generator only has support for basic ASN.1. Complex constructions in this notation will cause problems if the usage involves the following, not supported, constructions: ASN.1 local types, the ASN.1
CHOICE
type, the ASN.1 PERMUTATION
construction.
- The
INTEGER
data type is restricted in range and precision, as it is implemented using the C int data type (usually 32 bit signed integers).
- The use of choice values in brace lists in the constraints or in assignments is not allowed. The way to work-around this is to do the assignments field-wise in the constraints.
SUBSET
, SUPERSET
and COMPLEMENT
are not supported as values for fields in any structured type.
- The
EXTERNAL
type is not supported.
IS_PRESENT
, IS_CHOSEN
and SUBSTR
are not supported.
- The
REPLACE
... BY
and OMIT
... constructs are not supported. As this is only a shorthand for writing out the constraint, the obvious work-around is to define the constraint in its entirety.
- The
MIN/MAX
and the inclusive/exclusive (that is <
) syntax in ASN.1 value range sub types are not supported.
INFINITY
, in all its uses, is not supported.
COMPONENTS OF
is not supported.
- Selection type and their values are not supported.
- Values of the
REAL
data type is not supported.
- To specify values of the data type
BIT STRING
as a list of named bits is not supported.
- Value length restrictions are not supported.
- Encoding/decoding variations are not supported.
- The maximum number of parameters to a PTC is restricted to 8.
- Due to major changes in the C Code Generator, the GCI hard interface is not properly supported in the 3.5 release. This will be corrected in the next release.
Simulator on UNIX
The entire list of C Code Generator limitations applies also to the Simulator, see C Code Generator.
- Monitoring of other test components can only be viewed together in the main screen log.
- Test suite variables and timers cannot be modified or viewed.
- The contents of channels cannot be modified.
- An entire test suite cannot be selected for execution. You have to do this manually, for example by selecting all test groups or all test cases.
- If you abort the execution of the ITEX Simulator when the SDT Simulator is running, further communication may be inhibited. Always restart the SDT Simulator when you abort the execution of the ITEX Simulator.
UML and MSC Restrictions
This section lists the major UML and MSC restrictions in ORCA, with respect to the OMG specification for UML, and the ITU-T recommendation for MSC.
References below are to sections in the OMG document "ad/97-08-05" (UML Notation Guide, version 1.1, 1 September 1997), and the Z.120 recommendation.
UML Class Diagrams
The following features of UML 1.1 Static Structure (Class) diagrams are not supported:
- Packages (section 3.1 and 5.16), but package references are allowed in class names
- Visibility on attributes and operations (section 5.7.2 and 5.8.2)
- Interfaces (section 5.10)
- Parametrized class, or template (section 5.11)
- Composite objects (section 5.18)
- Or-associations (section 5.20.5)
- Navigability in associations (section 5.21.2)
- N-ary associations (section 5.25)
- Composite notation for aggregations (section 5.26)
- Constraints in generalizations (section 5.28.4)
- Dependency, i.e. dashed arrows (section 5.29)
UML Statechart Diagrams
The following features of UML 1.1 Statechart diagrams are not supported:
- Guard condition for internal transitions (section 9.2.2)
- Concurrent substates (section 9.3.2)
- Keywords "when" and "after" for events (section 9.4)
- Branches on transitions, and transition times (section 9.5.2)
- Complex transitions with synchronization bar (section 9.6)
- History state indicator (section 9.7.2)
- Stubbed, "collapsed" transitions (section 9.7.3)
MSC and HMSC
- General ordering for events is not supported (Z.120 chapter 4.5).
- Gates are not supported (Z.120 chapter 4.4).
- Comment symbols in HMSC diagrams are not supported.
- Parallel frames in HMSC diagrams are not supported (Z.120 chapter 5.5).
ORCA Tool Limitations
All Editors
- Diagram names may not exceed 255 characters.
- In Windows, objects copied from a diagram in any ORCA diagram editor will be distorted when pasted into Microsoft Word for Windows 95. This is not the case, however, in Microsoft Word 97 or in Windows NT 4.
MSC Editor
- The inline expressions always cover all instance axis. The reason for this limitation is that gates (and specifically inline gate interfaces) are not supported.
- The column-form of instances and coregions is not supported, only the line-form.
- The storage format for MSC diagrams has changed in this release. Version 3.5 of the MSC Editor can handle the same formats as version 3.4, but the 3.4 MSC Editor and earlier versions cannot read the new 3.5 MSC format.
Make sure you have backup copies of your MSC diagrams in case you wish to continue working with version 3.4 or earlier for MSC diagrams saved with version 3.5.
OM Editor
- Use Browse&Edit Class dialog with care if the symbol contains syntax errors.
The syntax checker on attributes and operations have error recovery functionality, and can sometimes "recover" in an unwanted way. Use the Browse&Edit Class dialog for editing purposes only with special care if a syntax error is detected. In the drawing area, syntax errors are highlighted with a red underlining in the symbol's corresponding text compartments. The browsing functionality of the Browse&Edit Class dialog can however be used without considerations even if syntax errors are detected.
Text Editor
- When you edit large portions of text containing many endpoints, updates can become slow in the Text Editor.
As a work-around, turn off endpoint display if you encounter performance problems.
SDL Restrictions
This section describes the major SDL restrictions with respect to the ITU-T Z.100 recommendation of 1992. The restrictions lie in one or several specific tools. This means that even if a concept is not fully supported, it may sometimes be possible to use it in a limited part of the tool set.
This listing deals with restrictions in the following tools:
- SDL Editor
- GR to PR Converter
- Analyzer
- C Code Generator (Cbasic and Cadvanced)
For more detailed information on the SDL restrictions in the Analyzer and C Code Generator, see Analyzer and C Code Generator.
For a description of SDL restrictions regarding the Simulator, the Validator, the TTCN Link kernels and the Cmicro Code Generator, please see the following sections in the User's Manual:
Z.100 Chapter |
Concept and Restriction |
Affected Tools |
2.2.2 Visibility rules, names and identifiers |
<name>: spaces in <name>s are not supported (a space is a shorthand for <underline>) |
SDL Editor, Analyzer, C Code Generator |
2.4.1.2 Package |
<interface> definitions, and <definition selection list> in use statements, are not supported. |
Analyzer, C Code Generator |
2.5.1 Channel |
nodelay: channels with delay and channels with nodelay are treated the same. |
C Code Generator |
2.7.4 Output |
via all to a <block instance set> only sends a single signal. |
C Code Generator |
2.9 Internal input and output |
The <internal input symbol> and the <internal output symbol> are not available. |
SDL Editor |
3.2 Partitioning |
<channel substructure definition> is not supported in generated code. |
C Code Generator |
In substructures with both process definitions and block definitions, the process definitions will be ignored. |
Analyzer, C Code Generator |
3.3 Refinement |
<signal refinement> is not supported in generated code. |
C Code Generator |
4.2 Macro |
<macro definition>: macros and macro calls are transformed to PR and expanded in PR form, which restricts the usability of macros. |
Analyzer |
<any area>: graphical macros can only contain flow symbols in one single flow. |
SDL Editor, GR to PR converter |
<macro call>: graphical macro calls are not allowed in a higher scope than processes. |
SDL Editor, GR to PR converter |
4.3.3 Optional definition |
<select definition>: optional definitions are not supported. |
SDL Editor, Analyzer, C Code Generator |
4.3.4 Optional transition string |
<alternative question>: question part in transition option must not contain external synonyms. |
Analyzer, C Code Generator |
5.2.3 Axioms |
<axioms>: not supported. |
Analyzer, C Code Generator |
5.2.4 Conditional equations |
<conditional equation>: not supported. |
Analyzer, C Code Generator |
5.3.1.14 Name class literals |
<name class literal>: not supported. |
Analyzer, C Code Generator |
5.3.1.15 Literal mapping |
<literal mapping>: not supported. |
Analyzer, C Code Generator |
5.4.4.5 Timer active expression |
<timer active expression>: cannot be used for timers with parameter. |
C Code Generator |
6.2 Context parameter |
<formal context parameters> and <actual context parameters> are not supported. |
Analyzer, C Code Generator |
SDT Tool Limitations
SDL Editor
- Diagram names may not exceed 255 characters.
- If the colors red and blue are used for some symbols, you may find it hard to interpret the graphical view resulting from the Diff operation, as these colors are used for highlighting the differences between two diagrams. To avoid this problem, do not use the colors red and blue on symbols when you compare diagrams.
- In Windows, objects copied from a diagram in the SDL Editor will be distorted when pasted into Microsoft Word for Windows 95. This is not the case, however, in Microsoft Word 97 or in Windows NT 4.
- The special graphical symbols for internal input and output are not available, as the use of them is explicitly discouraged in Z.100. The same behavior can be achieved with the normal input and output symbols.
- Graphical macros (macro diagrams) can only contain flow symbols in one single flow, without branches. Graphical macro calls are not allowed in a higher scope than process (system, block, etc.).
- The option symbol (dashed polygon) is not available, since optional definitions with "select if" are not supported.
- Nested diagrams are not supported, that is, diagrams must contain reference symbols to diagrams at lower levels. For instance, a system with a block must be drawn as two diagrams, where the system diagram contains a block reference symbol to the block diagram.
Print
- It is only possible to change the font used to print text files by using the preference SDT* PrintFontFamily.
Emacs Integration (UNIX only)
- To function properly, SDT assumes GNU Emacs 19.31 or later.
- Undo is not supported for the link handling commands.
- If Emacs is started from Telelogic Tau and Telelogic Tau is shut down, but not Emacs, the Emacs session cannot be re-connected to another Telelogic Tau session.
Microsoft Word Integration (Windows only)
- MS Word 7.0 and MS Word 8.0 are supported.
- When a MS Word document becomes modified, its icon is not marked as "dirty" in the Organizer.
- A new MS Word document is always named "Document<x>", where <x> is an integer, independently of what name it was given in the Organizer.
- Undo is not supported for the link handling commands.
- Endpoints in MS Word documents sometimes need to be synchronized with the Link Manager manually: Use the Update menu choice.
- In the Organizer, multiple instances of MS Word cannot be handled.
- Due to problems with recognizing read/write security permissions on NTFS files/directories, some odd behavior in the communication with MS Word may occur. This shows up as two error boxes with almost the same contents, one in MS Word and one in the Organizer. In the Organizer, the access rights on such files are incorrectly marked as "rw".
- Since part of the implementation is done with MS Word macros, conflicts may arise when combined with other templates/macros. This must be considered on a case-to-case basis and possibly the different macros may have to be merged. The implementation does not work with for example "Macro Virus Protection Tool" from Microsoft.
- If MS Word is started from Telelogic Tau and Telelogic Tau is shut down, but not MS Word, the MS Word session cannot be re-connected to another Telelogic Tau session.
Analyzer
Implementation Restrictions
The present version of the Analyzer is an SDL-92 analyzer. The restrictions and the implementation limits are described in this section. When possible, a work-around is described.
- Macros and macro calls are transformed to PR and expanded in PR form. This restricts the usability of macros, for instance the number of inlets and outlets must be 0 or 1. A common case that fails is a macro with states that is called from a branch of a decision. It fails because the GR to PR converter does not know the contents of the macro and treats the call like a task symbol. Other things not supported because of this, are variable declarations and type definitions.
- The Analyzer assumes the layout of external properties to follow the example below. That is, each external formalism name should be on the same line as the alternative keyword and the external data descriptions should be on lines of their own.
Example 1
alternative a,b;
abc abc t5;
abc abc t5-2;
endalternative;
b;
The PR to GR Converter
- The PR system will be changed to have all its definitions referenced to match SDT's way of handling diagrams. A referenced definition needs a qualifier if name and type are not unique in the system. Such qualifiers are not supplied automatically: use the Update Heading command in the Organizer.
- Comments in PR files
/* comment text */
may sometimes be skipped during conversion into GR format.
Restrictions on Syntactic Analysis
- The Analyzer cannot handle spaces in names (a space is a shorthand for an underline). Replace spaces with explicit underlines.
Restrictions on Semantic Analysis
- The semantics of virtual types is unclear.
- Gate constraints on implicit signal routes are not checked.
- Implicit gate connections are not checked.
- Signals of global procedures are not properly checked.
- Only limited tests on output via.
- It is not checked that instantiated types have signals in the gate constraints.
- Context parameters are not implemented.
- Conditional equations are not implemented.
- Some checks may be lost in nested virtual definitions.
- Package interfaces and definition selection list in USE statements are not implemented.
- Remote procedure calls are not checked against imported procedure specifications.
- Imported procedure specifications are not checked against exported procedures.
- Import expressions are not checked against imported variable specifications.
- Imported variables are not checked against exporting processes.
- The check that substructure name in subtype and supertype must be the same is not implemented, since it would make the use of "block in block" useless for inheritance.
- Operator definitions are not checked against operator signatures.
- External synonyms are only allowed where the Analyzer manages without knowing the value of the synonym.
- Select definitions and external synonyms cannot be handled in the Semantic Analyzer. Select a suitable subset and remove the unused parts of the system definition.
- Name class literals in user defined data types cannot be handled in the Semantic Analyzer. A nameclass literal is a shorthand for writing a (possibly infinite) set of literal names defined by a regular expression. List the literals explicitly or use inheritance from the predefined data types.
- Question and answers in decisions are always considered formal, that is, informal text is considered to be a character string.
- Inheritance from data type definitions containing qualifiers referencing that type definition is not allowed, since qualifiers are copied and not changed during the expansion of inheritance.
- When analyzing part of a system, checks depending on the omitted parts will not be performed.
- When a substructure contains both processes and blocks, it should be possible to select which implementation that is preferred. This is not possible; the process definitions will not be analyzed.
Semantic Checks That are Not Performed
Analysis of the following semantic SDL rules is not performed:
- The consistent partitioning subset must be a consistent refinement subset.
- The decision answers must be mutually exclusive. This is only tested on boolean decisions.
- An exported variable must exist for each imported variable.
- The type check and the evaluation and check of the equivalence classes in axioms is not performed.
- Generator names and generator formal parameters must not be used in a qualifier, qualified, followed by an exclamation, or used in a default assignment.
C Code Generator
- Channel substructures are not allowed.
- Signal refinements are not supported.
- Context parameters are not supported.
- Timer active expressions for timers with parameters are not allowed.
- In generated code there will be no difference between a channel with delay and a channel with NODELAY.
- Integer and Real are restricted in range and precision, as they are implemented using the C int (32 bit integers) and double types. Charstrings may not contain the character NUL, as Charstring is implemented using
char *
in C, and char *
is terminated by NUL (=0).
- Axioms and literal mappings may be part of an abstract data type definition, but that information is not used in any way by the C Code Generator.
- In abstract data types, the following concepts cannot be handled:
- Name class literals
- Naming a literal using a Charstring literal
- A sort definition may not refer to itself, directly or indirectly.
- A component of a struct will, in the generated code, have the same name as in SDL. Characters that are not letters, numerals or underscore characters will, however, be removed. The remaining part of the name must be a valid C identifier to be accepted by the C compiler, that is:
- It should start with a letter.
- It should not coincide with a C reserved word.
- It should be unique within the C struct representing the struct.
- Multiple paths from a decision for a certain decision expression value are not checked. A simulation program will simply choose one of the existing paths.
- Overflow of integer and real values are checked at the C level if the actual C system performs these checks.
- A process that exports procedures cannot call (directly or indirectly) a global procedure containing states.
- Output VIA ALL C, where C leads to a block instance set, is not handled correctly. One signal should be sent to each block instance, but only a single signal will be sent.
- Some C compilers fail in preprocessing of very long macro definitions. Such long macro calls occur in the predefined generators (String, Powerset, Bag).
If the C compiler (or specifically the C preprocessor) complains about a macro definition that is too long, or produces erroneous output, it is not possible to use these kind of generators.
- The
.ifc
file contains #define
definitions for the kind of SDL units for which this is possible. All the C Code Generators follow this principle. This can, depending on the C compiler, lead to compilation errors/warnings or to runtime errors in some cases. The following example shows how the problem may occur:
newtype x
literals green, blue;
endnewtype x;
newtype y
literals blue, green;
endnewtype y;
The both literals green
and blue
will then be created like this:
/* For newtype x */
#define green 0
#define blue 1
/* For newtype y */
#define blue 0
#define green 1
The C compiler then usually complains that the macros blue
and green
are redefined with a different value. Some C compilers will continue in any case and produce an executable. Runtime errors are the consequence on this, because when green
and blue
are used together with the first newtype x
, the literal values from the second newtype y
are used by the C compiler. In order to avoid this problem, a prefix for each literal should be manually added, like this:
newtype x
literals x_green, x_blue;
endnewtype x;
newtype y
literals y_blue, y_green;
endnewtype y;
The green
and blue
example is not a good one, because it is possible to avoid the problem by using the inherit construct. The literals from the newtype x
could be inherited into the newtype y
. More problems will occur if several entity classes are mixed up from the C compiler, like if there would for example be a signal called green
, which is also created as a #define
. You are strongly recommended to avoid name conflicts in the .ifc
file by manually adding prefixes.
ASN.1 Utilities
The ASN.1 Utilities handle most constructs of ASN.1 as defined in ITU-T recommendation X.680. The ASN.1 constructs defined in ITU-T Recommendations X.681-683 are not supported. There is no support for features defined in the old ASN.1 version X.208 that have been superseded in X.680.
Restrictions to X.680
The following concepts of X.680 are neither supported by Z.105 nor by the ASN.1 Utilities:
- Unrestricted
CHARACTER STRING
is not supported, neither the tuple/quadruple value notation for character strings.
EmbeddedPDVType
is not supported.
- In some cases, values must be defined before they are used.
Restrictions to Z.105
The following concepts of Z.105 are not supported by the ASN.1 Utilities:
- ASN.1 definitions cannot be put in text symbols in SDL diagrams; they can only be placed in separate ASN.1 modules, whereas Z.105 allows free mixing of SDL and ASN.1 definitions.
- Value notations for types defined in another module are not supported. For example:
val X ::= 3
is only allowed if X
is defined in the same module. External value references should be used instead.
- Use of the ASN.1 value notation within SDL expressions is not supported for bit string, octet string, set, set of, sequence, and sequence of.
- Value notation for
SEQUENCE
/SET
where optional/default components have been assigned a value cannot be mapped to SDL (the mapping in Z.105 is incorrect, and no solution could be found that works with SDT).
- All constraints (single value, value range, size constraints, etc.) are ignored.
- The X.680 value notation for
REAL
is supported in ASN.1; not the X.208 value notation (as is done in Z.105).
UniversalString
, GraphicString
, and EXTERNAL
are translated to SDL types with the same name, but no implementation for these types is available (has to be provided by you). The reason is that Telelogic considers the mapping in Z.105 as insufficient (does not really allow extended character sets).
- The useful types
UTCTime
, GeneralizedTime
, and ObjectDescriptor
are translated to SDL types with the same name, but no implementation for these types is available: they have to be provided by you.
PLUS-INFINITY
and MINUS-INFINITY
are translated to some large numbers. If these are not large enough for a specific platform/application, you must define these SDL synonyms yourself.
H2SDL
- The H2SDL utility has the following limitations regarding the text input:
- Source lines in the C file must not exceed 1,000 characters.
- Identifier names must not exceed 256 characters.
- Integer constants cannot be used to specify the size of arrays.
- Only decimal and hexadecimal integer constants are supported.
- The
sizeof
operator currently only handles predefined C data types. The size is derived from sizeof(type)
for the OS on which H2SDL is compiled, except for long long int
which is set to 8 bytes.
- Typedef functions are not supported.
- C++ specific constructs are not supported.
- Kernighan & Ritchie old style function declarations are not supported.
- Illegal redeclarations of variables or function pointers will not be detected by H2SDL. No type checks will be made to find out whether a redeclaration is legal or not. H2SDL will simply ignore the redeclaration as if it was legal.
Validator/Autolink
- Bitfields in struct that also contains pointers are not handled.
- C unions are not allowed to contain pointers.
- Generated test cases saved with Save-Generated-Test-Case in 3.4 and earlier, cannot be opened in 3.5.
- Constraints saved with Save-Constraints in 3.4 and earlier, cannot be opened in 3.5.
- Despite syntactical changes, most Autolink configurations written in 3.4 can still be read in 3.5. However, if you used the IF statement, you have to insert additional THEN and END statements. For more information, see Syntax and Semantics of the Autolink Configuration.
CORBA Integration (UNIX only)
- The IDL types Union and Any are not supported in the CORBA integration. Exceptions are also not supported, which means that raises expressions are ignored.
- Context parameters are ignored in the IDL to SDL mapping.
- The CORBA integration cannot be used together with the Cmicro package.
Examples
- On UNIX, the
phone
example cannot be used together with the graphical SimUI if the Phone application is compiled and linked with the ApplicationDebug kernel.
Real-Time Operating System Support
Light Integration
The same restrictions as for the C Code generator apply. See C Code Generator.
Tight Integration
- The tight integrations delivered with the Telelogic Tau distribution are only applicable for Cadvanced -- not for Cmicro.
- Priority input is not handled.
- Continuous signals are not handled.
- The sort String may not be used. It will lead to memory problems. A workaround is to use an array of char instead. The Own type could also be used to avoid memory problems.
- Services are not handled.
- An RPC call of value returning procedure without parameters does not work.
- The SDL
ANY
construct is not properly implemented.
- The timer set construct
SET(5,T1)
is not supported. Instead use SET(NOW+5,T1)
- ADT Library files located in
$telelogic/sdt/include/ADT
:
- file.pr:
Should work if supported in the RTOS environment. It might be necessary to enclose the function xGetValue
with the following code to be able to compile with some compilers.
#ifdef XMONITOR
...
#endif
- list1.pr and list2.pr:
Should not be used since they are implemented with dynamic pointers which could lead to memory leaks.
- byte.pr:
Works OK.
- unsigned.pr, unsigned_long.pr, longint.pr:
Works OK.
- pidlist.pr:
Works OK but only with the version supplied in the RTOS delivery: $telelogic/sdt/sdtdir/RTOS/INCLUDE/pidlist.pr
.
- idnode.pr:
The functions FirstPId
and NoOfProcesses
may work under some conditions, the rest of the functions do not.
- pointer.pr:
Should not be used since there is a big risk of memory leaks.
In addition, the same restrictions as for the C Code generator also apply. See C Code Generator.
Cmicro Code Generator and Library
- The names of processes in different blocks must not be the same. The reason for this restriction is the missing symbol tree in Cmicro. It is impossible to address for example two processes with the same name in the same C module (in the SDL environment). As a work-around, you should always have different names for the different processes in the system. You can easily accomplished this by adding a prefix to each process name.
- Predefined sort carray:
It is impossible to return variables of the predefined sort carray from an SDL procedure because the ANSI C language cannot handle this. It is however possible to enclose the carray into a newtype struct value as a workaround.
- The specific requirements for the 8051 C compilers are not sufficiently fulfilled yet, because the test is difficult. The background is the CPU's Harvard architecture which requires to store variables in a different way than usual. The Cmicro Code Generator tries to cope with this by adding the macros
xmk_RAM/ROM_ptr
and XCONST,
but there are still problems with it.
- Timers with parameters and the preemptive Cmicro Kernel do not work together.
Cmicro Tester
- When the target system is suspended (by sending the suspend command), any signal that is sent to the target will be discarded.
- When, with the Output-PAR/NPAR command, you want to send a signal to the target system, a list with all the signals that are defined in the system is presented. You should keep in mind that you always have to address the right process instance when specifying the parameters of the Cmicro Tester's output command.
- Several compilers, e.g. the Tasking 80166, are giving incorrect information about the message length.
This error is detected by the Cmicro Tester and displayed once. The trace of SDL events will be correct as only the CRC check is not involved in the following communication.
- Cmicro Tester should be started from the Organizer Tools menu since there may be problems when the Cmicro Tester is invoked standalone.
- Page file and convert file in Cmicro Tester does not work.
- The Cmicro Postmaster leaves temporary files below
/tmp
. You should remove these files from time to time by hand (rm /tmp/.sdt.cmicro.*
)
- It is impossible to specify a breakpoint on a timer input.
- If the debug mode of Cmicro Postmaster is used, there might be too long messages, in which case the Postmaster will crash with a core dump.
- If the line numbering in the Cmicro Tester is switched on and off again, sometimes the first columns in the text area are split. As a work around and to prevent this, line numbering always should be switched on at the beginning and never switched off again.
- The context sensitive help sometimes indicates that a command may be used, though the command cannot be used in current context (setting a breakpoint is allowed although no target system is connected and running).
- If the
sdtmt.btn
file contains too many entries that are marked as ":MENU", the Cmicro Tester is not able to scale its window size when it is invoked. If you resize the window manually, the size will be correct.
Application Generation with Cmicro
- Not all possible errors are checked by the Bodybuilder. In most cases, a compilation error is the result you will get from an incorrect configuration. The on-line help will support you to configure correctly.
- In the generated C code, there is the warning:
"Large integer implicitly truncated to unsigned type"
at all those places, where an SDL output is code generated.
The Cmicro Library is able to handle a maximum of 255 bytes parameters in a signal's output. This restriction was introduced to better support small embedded systems for efficiency reasons.
The warning occurs because the output function of the Cmicro Library (xmk_Send
) expects an unsigned char
type, but is given an int
value. The reason for this is, that the sizeof()
operator in C returns an int
value.
If you try to #include "systemname.ifc"
in ml_typ.h
, or for some other reason, there may be further naming conflicts, for example during preprocessing:
ml_pred.c: In function `yAss_SDL_Object_Identifier':
ml_pred.c:2109: parse error before `0'
ml_pred.c:2109: parse error before `0'
The reason for the error above (and other behavior that is impossible to foresee) was that there was a signal named "SIn
". This will be generated as a #define SIn 0
. In the ml_pred.c
file, there is a variable called SIn
(in the macro yAss_SDL_Object_Identifier). The C preprocessor then replaces the variable name with the #define
value of SIn
, which ended up in the parse error above.
In order to avoid that, you should never include code generated header or .ifc
files in any part of the Cmicro Library itself or in the generated C code. The .ifc
file should only be included in the SDL environment files (like env.c
and/or mk_user.c
).
In the generated C code, the following warning is repeated for each variable that is unused:
"Unused Variable : <variablename>"
These warnings in generated C code are not that easy to remove because it is difficult to calculate this during code generation. These warnings should not produce real problems (except that it is sometimes impossible to read the large C compiler output). The following variables are sometimes referred:
warning: unused variable `yOutputSignal'
warning: unused variable `yVarP'
warning: unused variable `ySVarP'
The same warning as above is thrown from C compilers when signals without parameters are used.
This warning is accepted in the mk_outp.c
module:
mk_outp.c:warning: unused variable `P_Parameter'
A similar warning (accepted also) is within mk_stim.c
:
mk_stim.c:warning: `SystemTime' defined but not used
Warnings like: "Control reaches end of non-void function"
As the code generator basically creates a switch()
construct in C, and every return from the process activity description function (PAD function) occurs in all the case branches of that switch, the PAD function contains no return statement after the switch. This is the reason why some C compilers complain that the "Control reaches end of non-void function". This is an accepted warning. It is possible for you to remove that warning in the ml_typ.h
or user_cc.h
file by modifying the END_PAD
macro like this:
#define END_PAD(PrsNameWithPrefix) return (SDL_DASH_NEXTSTATE);
Warnings: missing braces around initializer for xSTATE_INDEX_zyyyy_xxxxxxx[0]
This is an accepted error so far, because each known C compiler handles this correctly. The reason why the Code generator generates like this is that is still should be conform to not just only ANSI C, but also Kernighan & Ritchie C.
Some C compilers fail in preprocessing of very long macro definitions (like all the C Compilers available on the market for the 8051 family of CPU's). Such long macro calls occur in the predefined generators (String, Powerset, Bag).
If the C compiler (or specifically the C preprocessor) complains about a macro definition that is too long, or produces erroneous output, it is not possible to use these kind of generators. The macro X_LONG_MACROS
should be set with the Bodybuilder.
It could also be impossible for some C compilers for embedded systems to compile recursive macro calls. Recursive macro calls appear for SDL statements like for example:
a:=b and c and d;
If such a problem occurs, it is strongly recommended to avoid such statements for example with the following work around:
tmp:=b and c, a := tmp and d;
When it comes to target applications, you always have to specify how memory is allocated (see C module mk_cpu.c
in the template directory) and what should happen if there is no more memory available. As the template C files does not know what you want to do, there is a C macro called NO_MORE_MEMORY
that you must define. Any reaction on such a fatal error might be appropriate, like "Hang up the program", or "Reset", or "Print out an error message". Printing out error messages may however fail as well, if the print function allocates memory.
Indextable / Transitiontable overflow
There are runtime errors if too many signals/transitions are defined. This is solved in the library because there are additional configuration possibilities with the Bodybuilder.
The problem occurs when the following happens:
- Too many transition paths in at least one SDL process
- Too many states in at least one SDL process
- A combination of the above
In the Bodybuilder, there is a flag called XMK_USE_HUGE_TRANSITIONTABLES
that, if it is set, will solve the problem.
If there are too many signals specified in the system, there will be a compilation error in the ml_typ.h
file, because an error check in the ml_typ.h
file will become negative. As the Cmicro Library uses a char value in C to represent signal IDs, and as some values are reserved internally, the maximum amount of signals that Cmicro can handle is predefined to 250. If more than 250 signals are declared in SDL (you can see this by investigating the XMK_HIGHEST_SIGNAL_NR
value in the sdl_cfg.h
file), it is possible to define the macro XMK_USE_MORE_THAN_250_SIGNALS
with the help of the Bodybuilder.
If there are too many states defined in a process, this will lead to problems. Cmicro is restricted to 250 states in a process.
The default values for variables are not set in a procedure when XMK_USE_KERNEL_INIT
is defined. This is a problem which cannot be solved easily.
There are two work-arounds:
- Do not define
XMK_USE_KERNEL_INIT
- Do not use default values for variables in a procedure, e.g. this is forbidden in a procedure (in a process it does work very well):
DCL a integer;
DCL b integer;
task b:=a+b; /* non deterministic results */
DCL a integer = 0;
DCL b integer = 0;
task b:=a+b; /* deterministic result ! */
There are some restrictions in sizes of C objects. You should be aware that there is a risk to failure in configuration of the target system. Especially the maximum amount of signal parameters bytes can be mis-configured and will lead to fatal errors.
The C define XCONST is not correct for all C compilers that are in the list of available compilers. The problem is that the semantics of the keyword "const" in C is not the same for all of the C compilers.
Use of ADTs from SDT in Cmicro
The packages and ADTs delivered with SDT are mainly to be used in Cbasic/Cadvanced applications. Some of these ADTs may however also be useful for Cmicro applications. Others cannot be used together with Cmicro as they contain references to C code from Cbasic/Cadvanced. A list of restrictions and recommendations can be found in Abstract Data Types.
Combining Cadvanced / Cmicro Code
Mixing C code from different C code generators is not possible as they use their own runtime model and runtime data structures. Trying to mix up the C code will sooner or later lead to compilation errors. This restriction is true for any kind of combination of C code, including sdth2sdl.
1. ORCA is part of the Telelogic product suite and stands for Object oriented Requirement Capture and Analysis.
[Previous]
[Next]
[Contents]
[Index]