Using the 166Bug Debugger

The following is an example of a routine which builds a separate vector table and then moves the VBR to point at it:

*

***BUILDX - Build exception vector table ****

 

BUILDX

MOVEC.L

VBR,A0

Get copy of VBR.

4

 

LEA

$10000,A1

New vectors at $10000.

 

MOVE.L

$80(A0),D0

Get generalized exception vector.

 

 

MOVE.W

$3FC,D1

Load count (all vectors).

 

 

 

LOOP

MOVE.L

D0,(A1,D1)

Store generalized exception vector.

 

 

SUBQ.W

#4,D1

 

 

 

BNE.B

LOOP

Initialize entire vector table.

 

 

MOVE.L

$10(A0),$10(A1)

Copy breakpoints vector.

 

 

MOVE.L

$24(A0),$24(A1)

Copy trace vector.

 

 

MOVE.L

$BC(A0),$BC(A1)

Copy system call vector.

 

 

LEA.L

COPROCC(PC),A2

Get your exception vector.

 

 

MOVE.L

A2,$2C(A1)

Install as F-Line handler.

 

 

MOVEC.L

A1,VBR

Change VBR to new table.

 

 

RTS

 

 

 

 

END

 

 

It may turn out that your program uses one or more of the exception vectors that are required for debugger operation. Debugger facilities may still be used, however, if your exception handler can determine when to handle the exception itself and when to pass the exception to the debugger.

When an exception occurs which you want to pass on to the debugger; i.e., ABORT, your exception handler must read the vector offset from the format word of the exception stack frame. This offset is added to the address of the 166Bug target program vector table (which your program saved), yielding the address of the 166Bug exception vector. The program then jumps to the address stored at this vector location, which is the address of the 166Bug exception handler.

Your program must make sure that there is an exception stack frame in the stack and that it is exactly the same as the processor would have created for the particular exception before jumping to the address of the exception handler.

4-14

MVME166 Single Board Computer Installation Guide

Page 84
Image 84
Motorola MVME166IG/D2 manual Buildx MOVEC.L VBR,A0

MVME166IG/D2 specifications

The Motorola MVME166IG/D2 is a pioneering embedded computer designed for high-performance applications in industrial and telecom sectors. This versatile computing platform is based on the PowerPC architecture, which ensures efficient processing capabilities and transfer of data, making it suitable for a wide range of applications, including real-time control, data acquisition, and system monitoring.

One of the main features of the MVME166IG/D2 is its powerful processor. The system is equipped with a PowerPC 603e processor, which offers a remarkable performance rate with a clock speed of up to 250 MHz. This high-speed processing capability allows for rapid data handling and processing, which is critical for demanding applications in real-time environments.

The MVME166IG/D2 also stands out due to its modular design. It supports multiple expansion slots that make it adaptable for different user needs. The system can accommodate additional cards or memory modules, allowing for increased versatility and capability in various operational scenarios.

In terms of connectivity, this embedded computer includes multiple communication interfaces such as Ethernet and serial ports, which facilitate seamless data transfer and communication within larger systems. This connectivity is crucial for integrating the device into existing industrial networks or for connecting with sensors and other equipment.

Another noteworthy characteristic of the MVME166IG/D2 is its robust build quality, which is essential for operation in challenging environments. The device is designed to endure high levels of shock and vibration, making it suitable for deployment in applications such as transportation or heavy machinery.

Additionally, the MVME166IG/D2 offers a range of software support which includes various real-time operating systems. This compatibility allows developers to choose the OS that best fits their application's requirements, enhancing the overall utility of the system.

In summary, the Motorola MVME166IG/D2 is a powerful, flexible embedded computing solution that excels in performance, modularity, and reliability. Its advanced features and durable design make it an ideal choice for industries that require precision, speed, and robustness in their computing solutions.