Table of Contents
MC-3020 3.3 provides an improved installer, more documentation, a command line build utility (rox_build), enhanced support for BridgePoint Model Debugger and minor bug fixes.
This document has been divided into the following sections for easier reference.
Support resources available for BridgePoint™ products and MC-3020 specifically. (BridgePoint™ is a registered trademark of Project Technology, Inc.)
World class support is provided for the BridgePoint products. Support is available via the web, email, telephone, and fax. Each of the support options is described at our support web address: Project Technology Support.
The Project Technology, Inc. web site is available 24 hours a day, 7 days a week. You can access the following features at the Project Technology Customer Service web site by clicking on the "Customers Only" icon.
Use a predefined form to submit a problem report and be assured you are providing enough information for our support technicians to help you. The information that you provide on this form is e-mailed to our support organization at <[email protected]>.
Submit your enhancement ideas directly from your workstation as you think of them. This information will be immediately entered in our enhancements database for consideration in future releases. Your ideas drive our product development ONLY when we hear them.
Read technical tips that will help you get more out of your Project Technology software products. New tips will be posted on a regular basis and old tips will be archived for your easy reference.
Read technical papers that treat topics of interest in depth. Many are written by Project Technology developers, instructors, and consultants, but we encourage you to submit your own contributions.
We have extended our popular users' mailing list service by adding a list for BridgePoint users. This mailing list allows you to communicate with a community of BridgePoint users, who are solving many of the same problems you encounter each day. You'll have to sign-up for this service.
The "Customers Only" section utilizes authentication technology to limit this service to Project Technology, Inc. customers who have support contracts.
To access this area, you will need your Project Technology Customer ID and your web site password. You'll find your Customer ID on packing lists and/or invoices you have received from us. Your initial password is the first eight characters (or all, if eight or fewer) of the name of the city your product was shipped to, capitalized appropriately, with spaces compressed out.
Project Technology, Inc. is your first stop for customer support. If what you need is not available there, the web site of ROX Software, Inc. has additional support material. Visit ROX Software, Inc. This site contains sample models, generated code and an online version of the MC-3020 Users Guide. All of the most recent and up-to-date material is found at this web site.
The customer support email address is <[email protected]>. This is the preferred method for non-critical questions.
Customers within the US can call our toll-free number, 800-482-3853. The direct line, which can be used by US and International customers is +1-520-544-0808.
MC-3020 translation runs on all platforms supported by BridgePoint. See your BridgePoint release notes for details on versions of the operating systems. The list includes Solaris and Windows XP/2000/NT/98SE/ME. (Windows 98 is no longer recommended.)
Targets for running the translated models include almost any platform with an ANSI compliant C compiler. Compilers known to work include:
gcc (which supports Linux, Windows, Mac, H8 and many, many microprocessors)
Microsoft Visual C/C++ (Visual Studio .NET)
Texas Instruments TI470 C
Sparcworks Workshop
Tasking 8051, C167 and others
Borland C/C++
Yellowsoft for H8
Cosmic
Gcc on LynxOS
Mitsubishi M16C
others
Documentation is found in the docs directory of the installed model compiler. Directions presented by the installation program that differ from this manual supersede the instructions listed here. The installation program will always provide the most recent and timely installation information. The text in the on-line user guide at www.roxsoftware.com will be even more up to date.
Uninstall any previous version of MC-3020 before beginning the installation process.
Note MC-3020 will need to be uninstalled and reinstalled after upgrading BridgePoint. MC-3020 relies on components within BridgePoint. This uninstall/reinstall must occur any time that BridgePoint is altered substantially (e.g upgrade, change in location of model repository). ROX_* environment variables need to be set to point to the correct (new) locations. Specifically, the variables ROX_PT_HOME and ROX_PT_REPOSITORY_HOME need to link to the correct directories. These variables use the old 8.3 format names. DIR /X is the DOS command to see the underlying file and path names.
Note that MC-3020 may not install onto a system that does not have the appropriate licensing.
Follow these steps and the directions on the screen. Cygwin and MC-3020 will be installed as needed.
On XP/2000/NT, log in as administrator.
Uninstall the old version of MC-3020 (if you have not done so already).
Insert MC-3020 compact disk into the CD ROM drive of the development platform.
If necessary, select Program->Run under the Start button.
Run the Setup program (setup.exe) on the CD.
Follow the instructions.
Reboot.
Excellent shell, compiler and build environment toolkit technology exists in the freely available Cygwin. MC-3020 3.1+ has Cygwin (and ksh) support right on the CD. Installation is automatic.
If you already have Cygwin installed, the MC-3020 installation CD will detect it and not install Cygwin. However, you may need to upgrade your Cygwin installation to include packages such as make, perl and xsltproc if you do not have them.
Permissions issues with Cygwin can pose a problem. Once Cygwin is installed, executables may be configured to allow only the owner of the file to read them and execute them. By default, BridgePoint is set such that only an administrator can run the repository_bin executables. Keep this in mind if you seem to be having difficulty getting some build steps to execute correctly. Access can be granted to the executables using the chmod command (in the bin directory in question type chmod ugo+rx *.exe).
The 3.1+ release CD of MC-3020 has automatic installation of Cygwin (with ksh). These instructions will serve to document where these files are expected to be.
Follow these steps and the directions on the screen.
Insert MC-3020 compact disk into the CD ROM drive of the development platform.
Ensure that CD is mounted as an ISO-9660 type file system.
Run the setup.ksh program on the CD.
Follow the instructions.
Establish environment variables as directed by the installation program.
MC-3020 3.3 now runs a more sophisticated installer that more smoothly integrates the installation of the core model compiler and the Cygwin installer. Code generation from this model compiler is cleaner in terms of QA-C scoring and MISRA-C coding rules. When coupled with BridgePoint Model Debugger, MC-3020 now supports an enhanced communications protocol with the debugger host. Passing arguments to debugger invoked domain functions is now supported. Where debugging with BridgePoint Model Debugger was only supported in a GCC compiler environment in previous versions, debugging in the Microsoft C/C++ environment is now allowed. A build execution utility called rox_build is available to enable translation from model backup and SQL files. Other small enhancements and bug fixes are described below.
MC-3020 3.3 supports recent enhancements to the BridgePoint Model Debugger. An extended communication protocol has been established by BridgePoint Model Debugger to keep the host and target in closer synchronization. MC-3020 supports this new protocol. In addition, it is now possible in MC-3020 to pass arguments to domain functions called from the debug host. See debugger documentation for details on how to make these invocations.
In previous versions of MC-3020 only compilers using strict BSD (Berkeley Software Distribution) socket libraries. This prevented the use of Microsoft Visual C/C++ when compiler for interaction with BridgePoint Model Debugger. MC-3020 3.3 removes this restriction by operating with Windows sockets (Winsock2) as well as BSD sockets.
The previous MC-3020 installer had a minor bug when checking for Cygwin. Although this bug was mostly an annoyance, the overall install process was not very smooth. The installation of Cygwin and the other build environment packages was not very smoothly integrated with the installation of the core model compiler. In 3.3, the installer technology has been replaced with a smoother and more flexible package (Inno) that integrates the Cygwin installation better. The new installer also fixes the "NTVDM bug".
Although not fully QAC/MISRA compliant, MC-3020 has been modified to generate code that is cleaner from the perspective of static code analysis. Most of the 127 MISRA rules are fully supported by the MC-3020 generated code. The result is cleaner, "safer" code.
Note that the MISRA rules were designed for human programmers, and that some of the rules are not appropriate in generated code. Some of the rules require a trade-off of speed. Many of the rules do make good sense even in translator generated code. These rules have been implemented in MC-3020 3.3.
A command line build utility has been added to allow for custom automation of the build process and for building from exported model files. rox_build operates on BridgePoint models exported to *.sql files. rox_build will create a build directory, copy in the supplied coloring files and translate a model supplied in a file. This frees the build process from the BridgePoint model repository.
One expected use for rox_build would be automation of batch oriented build operations. Once coloring and configuration of a particular build have been established interactively, rox_build can be used to repeat the build in a single step.
rox_build can also be used in conjunction with third-party version control systems (such as CVS, CleareCASE). rox_build could also be used when building models extracted from multiple repositories. A build server could use this utility to perform automatic translation of newly checked in materials. rox_build also serves in test suite automation.
Two new data type colors have been added. They are called TagUninitializedEnumerationValue and TagEnumeratorDiscreteValue. These new colors enable customizing the uninitialized value of an enumeration and setting specific values for the enumeration members. MC-3020 3.3 now alphabetically sorts the enumeration members so as to provide some predictability in the assignment of values to the various enumerators.
The version 3.1 installer encountered an error while checking for Cygwin and pdksh.
------------------------------------------------------------- 16 bit Windows Subsystem -------------------------------------------------------------- NTVDM has encountered a System Error The parameter is incorrect Choose 'Close' to terminate the application ----------------------------------------------------------------
The message was harmless but annoying and incorrect.
This problem is fixed with a new install package.
Examples of using preexisting instances (PEI) in multi-domain environments has been requested. Some confusion exists over the use and purpose of static instance populations (SIP).
MC-3020 3.3 supplies additional documentation in the Users Guide.
Previous version of MC-3020 did not support the passing of arguments when calling domain functions from the BridgePoint Model Debugger.
MC-3020 3.3 does support passing arguments.
When a user builds an executable to use with the Model Debugger, they must run "make gen_all_xml" before the executable can be used in the MD environment. This extra step is just something else a user has to remember and is something that could be automated.
In MC-3020 3.3, no explicit step is necessary to generate the model debugging XML data. The build process detects when the file is needed and generates/refreshes accordingly.
Attempts to invoke domain functions in the Model Debugger using an executable generated by MC-3020 are problematic. So far the following situations have been identified:
Press the Model Debugger start execution button. Invoke a function (with no parameters. The function executes _very_ slowly. So slowly as to be painful and possibly unusable. |
Invoke a function (with no parameters) without pressing the start execution button. The applications hangs or terminates unexpectedly. |
Speed problems have been addressed and support of different types of domain functions is provided.
When running MC-3020 in a task and using the interleaved bridge mechanism (tagging bridge safe for interrupt execution) for interprocess communication, under stress it was possible to overrun the interleaved bridge queue. This occurred when "interrupts" occur before the bridge operation has a chance to complete thus causing re-queueing before de-queueing.
MC-3020 3.3 implements the interleaved bridge queue as a circular queue. This circumvents the problem efficiently without requiring greater queue depths.
Customers have asked for an explanation of how to use new-style enumerations with MC-3020. The UG does not explain it very well, as a matter if fact it since it mostly describes support for old-style enums, someone could reasonably think that it does not support new-style enums at all.
The Users Guide has been updated to better describe the use of enumerators.
Two data type colors, TagUninitializedEnumerationValue and TagEnumeratorDiscreteValue have been added to MC-3020 3.3. Use these colors to customize the uninitialized value of an enumeration and to set specific values for the enumeration members.
Note that MC-3020 3.3 now alphabetically sorts the enumeration members so as to provide some predictability in the assignment of values to the various enumerators.
MC-3020 3.3 adds the attribute "Initial_Value" to the Enumeration Data Type class (S_EDT) and adds the attributes Value and Order to the Enumerator class (S_ENUM).
-- Object: 14. Enumeration Data Type CREATE TABLE S_EDT ( DT_ID UNIQUE_ID, Initial_Value STRING ); -- Object: 15. Enumerator CREATE TABLE S_ENUM ( Enum_ID UNIQUE_ID, Name STRING, Descrip STRING, EDT_ID UNIQUE_ID, Value STRING, Order INTEGER );