TOC PREV NEXT INDEX



Rational Apex Embedded MARK Release Note for Rational Exec Solaris to Intel Architecture

This release note applies to Release 4.0.0 B of Rational Apex Embedded MARK to Intel Architecture for Rational Exec.

Full instructions for using this product are provided in the Using the Minimum Ada Runtime Kernel (MARK) with Rational Exec Guide.

This document is divided into the following sections:


Special License Required for MARK Installation

Apex is shipped as a collection of tar files. The tar file containing the MARK portion of the product is encrypted. In order to decrypt and install MARK, you will need to obtain an apex.sun4.rx_power.untar.mark license feature from Rational (version 4.000). If you have previously purchased the MARK runtime add-on you can obtain this license key at no additional cost. Contact your local Rational sales representative for more information, or call 1-800-728-1212.

If the license file does not contain this feature when install is run, the MARK portion of the product will not be installed. The rest of the product will be installed as normal.

If you obtain the license at a later date, you can add it to the license file, and rerun the install and post_install commands. If you are in an apex shell, the install and post_install commands can be invoked by:

This will decrypt and install the MARK component. Note, this may take a while (on the order of 20 minutes).


Compatibility Issues

This MARK release is compatible with the Rational Apex Embedded Intel Architecture for Rational Exec version 4.0.0 B product.


Documentation

Documents specific to this product are:

Release Notes for MARK Rational Exec
Using MARK with Rational Exec Guide

These documents are available in both hard-copy and online format. Online they can be accessed through the Help > Manuals command or the Doc List button in the navigation bar of each online manual page.


New Features in Release 4.0.0B

MARK is derived from the standard Apex Ada runtime system. Rather then create a new runtime system from scratch it is far more reliable to reuse tested components that have been developed and debugged over years of development effort. However, there is value in MARK to remove lines of code in an effort to simplify the testing effort required to certify embedded applications.

This version of MARK has simplified the runtime environment with an eye towards reducing the number of source lines required to support Ada applications. Many of the runtime components that were written to support the complexities of multiple programs, multiple tasks, separate kernel and micro kernel programs have been eliminated and replaced with MARK specific implementations. The new packages to support MARK can be found in mark.ss.

Since the standard MARK program is smaller the need for the "No Kernel" version of MARK is no longer required and has been eliminated.

The File > New > New MARK dialog has been replaced by the File > New > New Source Release dialog.


New Features in Release 3.2.0B


Defects Resolved in Release 4.0.0B
Defect #
Description
PEBU00006804
v_mailboxes not supported in MARK


Defects Resolved in Release 3.2.0B
Defect #
Description
PEBU00005611
No kernel programs never end when using Agilent probe. Common mechanism for cross_io and program termination has been applied to the general program exit routine.
PEBU00005388
C++ allocator is calling wrong Ada allocator entry.

The libc heap management was changed to call aa_no_exception_global_new. This will return 0 instead of raising an exception when there is no memory.

C++ new and delete do layer on top of malloc and free. There was code in malloc.c and realloc.c to manage the list of allocated memory chunks. This was redundant because the Ada allocation code is already doing that management. So I ripped out all of this code and we now call Aa_No_Exception_Global_New and AA_Global_Free directly.

PEBU00005063
Ada Duo program using just c should not need c_support. The problem was with terminate.cc (in the C++ archive).

Terminate is referenced from the ada archive (scdlink.2.ada in exceptions.ss) and included io code (fprintf and flush) to output details about the termination. This has been replaced for cross by a simple terminate routine that doesn't do io (just does abort). The verbose terminate is still available using the link name "VERBOSE_TERMINATE" The problem was with terminate.cc (in the C++ archive). Terminate is referenced from the Ada archive (scdlink.2.ada in exceptions.ss) and included io code (fprintf and flush) to output details about the termination. This has been replaced for cross by a simple terminate routine that does not do io (it simply does abort). The verbose terminate is still available using the link name "VERBOSE_TERMINATE"


Known Defects

None.


Memory Map

The example MARK i386pc bsp uses a Link.des that sets the origin of the MARK program to 0100000. Video RAM and other memory mapped i/o are in the lower addresses of memory. By starting the program at 1M all of the problems of the program flowing into the i/o space can be ignored.


Rational Software Corporation 
http://www.rational.com
support@rational.com
techpubs@rational.com
Copyright © 1993-2001, Rational Software Corporation. All rights reserved.
TOC PREV NEXT INDEX TECHNOTES APEX TIPS