TOC PREV NEXT INDEX DOC LIST MASTER INDEX



Introduction

MARK (Minimal Ada Runtime Kernel) for Rational Apex Embedded is a special version of the Rational Exec Microkernel runtime system. MARK is designed specifically for safety-critical software applications where verifiability, certifiability, and runtime determinism are of utmost importance. In addition, since most safety-critical applications are hard real-time, embedded applications, MARK is designed to be scalable to produce the smallest application size possible based on the Ada features needed by the application.

MARK is a separately licensed product from Rational. When one purchases MARK, they actually are purchasing the MARK runtime source code.

MARK is a true subset of the regular Rational Exec Microkernel runtime system. This provides a number of advantages:

However, there are important differences between MARK and the regular Rational Exec Microkernel runtime system that you need to be aware of.

MARK must be explicitly linked with the user application: The regular Rational Exec Microkernel runtime is automatically linked into the user application by the linker. Thus users typically do not do anything special to instruct the linker to link in the Ada runtime. The linker chooses the version of the runtime that is most appropriate for the application based on the Ada language features that the user program requires. This is often unacceptable to safety-critical programmers because they need explicit control over which units are linked into their application. They need this control for certification and verification considerations. When using MARK, users must explicitly `with' MARK into their user program. This is described in more detail later.

MARK is delivered in source code form: The regular Rational Exec Microkernel runtime is delivered as a set of archive files (containing the Rational Exec Microkernel runtime object code). Thus, source -level testing or debugging the regular Rational Exec Microkernel runtime is impossible for a user. Safety-critical programmers are responsible for testing and analyzing ALL code that is part of their application. Therefore, it is very important that the Ada runtime be delivered as source code so that safety-critical customers can analyze and test it to their certification/verification requirements.

MARK does not have a separately linked kernel component: The regular Rational Exec Microkernel runtime is divided into two primary components: runtime components that are linked with the user program, and a separately-linked, separately-downloaded kernel component. This design allows for users to optimize their target communication bandwidth by allowing them to reduce the overall size of their user program by making the Ada kernel a separate program that can be downloaded once. However, the disadvantage to this model is that it is difficult for a user to debug/test the kernel because it is not part of the user application. The MARK architecture allows for the Ada kernel to be linked with the user application. This has the benefit of allowing the kernel to be tested easily by an end-user as well as allowing a user to have more control over the kernel.

Using MARK for the First Time

Before using MARK for the first time, you should have finished the following activities:

1 . Installed Apex Embedded.

2 . Familiarized yourself with the Apex Embedded documentation (specifically the "Getting Started" chapter of the Programming for Rational Exec and the Configuring Rational Exec. The release notes for MARK can be found in the MARK Release Note for Rational Exec).

3 . Configured & debugged a BSP for your target hardware using the regular Apex Embedded runtime.

4 . Configured & downloaded TDM on your target hardware.

5 . Have your application (or a subset) of it running on your target hardware.

Having these steps finished first will ensure that your transition to the MARK runtime is smooth.

Assuming that you have already installed the MARK runtime component and the above steps are complete, proceed with MARK setup as follows. Each step is described in more detail later in this manual.

1 . Create a new MARK BSP based on one of the example BSP's provided with MARK.

2 . Modify the memory map and low-level hardware support routines of the new MARK BSP as you did for the regular Apex Embedded BSP that you have already created.

3 . Test the new MARK BSP with a simple null program.

4 . Test the new MARK BSP with a "Hello,world" program.

5 . Create new MARK views for each of your application's subsystems. In the subsystem that contains the main program, be sure to import the new MARK BSP. Also remember to include the appropriate MARK `with' statements so that your application explicitly with's in every required MARK runtime unit.

Switching your application between the regular Apex Embedded runtime and the MARK runtime is as simple if you use configuration towers - one for the MARK variant of your application and one for the regular Apex Embedded variant. See the Concepts Guide for more information on how to use Apex configuration files, subsystems, and views to support multiple variants of your application.


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 DOC LIST MASTER INDEX TECHNOTES APEX TIPS