TOC PREV NEXT INDEX DOC LIST MASTER INDEX



Introduction

Rational Apex Embedded for Rational Exec uses the same Apex development environment as native systems. The Apex development environment is discussed in detail in the Getting Started Guide and Programming with Apex Guide. Please refer to those documents for a general discussion on using Apex. However, embedded systems are, by nature, more complex than native systems. This complexity requires that additional steps be taken to use Rational Apex Embedded. These are discussed in this chapter.

With Rational Exec, the development system supports many hosts and target combinations. Each target can have multiple compilation variations and for each of these there can be multiple board variations.

Rational provides two basic versions of the kernel or runtime executive: a default kernel with complete tasking support and a smaller kernel without tasking support, a no-tasking kernel. Please see the Apex Runtime Guide for a complete runtime description.

You can also build a program with a bare-bones runtime and no kernel for use with applications that have severe code space requirements.


Getting Started

Getting Started discusses using Rational Exec with an existing Board Support Package and the default kernel.

Board Support Packages (BSP's)

The basic configuration process is the same for all target processors. Rational provides configurations, BSP's, for selected target processors that can be used without modification. However, you can also customize one of these or develop your own board support package.

Using a Rational-Supplied Configuration.

You can use one of the supplied BSP's if the release contains one for your target hardware and if you can use all of the default configuration parameters as provided.

Using a Modified Rational-Supplied Configuration

You may find one of the sample configuration BSP's adequate for your use with some modification or you may base a new configuration on an existing one. You can change the configuration to meet application-specific requirements or for target hardware similar to that for which a BSP is provided.

Building a Custom Configuration.

You can build a custom BSP if you are using custom target hardware.

If the release does not contain a model view for your target, or if you wish to customize an existing one, you must create a new BSP.

Note: Many aspects of runtime behavior can be controlled with pragma Main.

Kernel Configuration

A description of configuring the kernel or no-tasking kernel is provided in "Configure the Kernel" in the Configuration Guide for Rational Exec. The no-kernel is described in "Configuring a No-Kernel Program." also in the Configuration Guide for Rational Exec.


Linking and Executing


Object File Formats

This chapter contains discussions of the object file formats that are derived from the Berkeley UNIX 4.2 BSD a.out object file formats. They are called relocatable object files. The format of object files output by the embedded compiler and used as input to the cross linker is compatible with the Berkeley formats. The output format is called the VOX Object eXecutable (VOX) format.


Debugging

Debugging Apex Embedded for Rational Exec, while similar to debugging on host systems, involves some additional considerations.


Multiple Target and Minimal Disturbance Debugger Features

These extensions are available only for Rational Apex Embedded Sun Solaris cross to PowerPC with the Rational Exec runtime variant. To use these extensions, you must configure TDM and the kernel to use the realtime debug task.


Target Processor CPU Usage Models

These sections describe how different target architectures are set up and used by TDM and the kernel.


Interrupt Handling

Ada 95 adds the capability of interrupt handlers to protected objects.

Then the following sections describe handling exceptions and external interrupts for each of the target architectures.


Writing Interrupt Handlers

Apex supplies the mechanisms for ISRs to communicate with tasks and to control the scheduling of critical tasks.

In general, the interrupt handlers in Apex are sufficient as they are. However, if it is necessary for you to provide additional or different functionality, the following sections discuss the routines and requirements of interrupt handlers to assist you.

And again, sections follow that address the specifics of writing interrupt handlers of each of the target architectures.


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