3 exception handling functions, 1 exception handling flow, 2 exception handling vector addresses – Renesas SH7781 User Manual

Page 125

Advertising
background image

5. Exception Handling

Rev.1.00 Jan. 10, 2008 Page 95 of 1658

REJ09B0261-0100

5.3

Exception Handling Functions

5.3.1

Exception Handling Flow

In exception handling, the contents of the program counter (PC), status register (SR), and R15 are
saved in the saved program counter (SPC), saved status register (SSR), and saved general
register15 (SGR), and the CPU starts execution of the appropriate exception handling routine
according to the vector address. An exception handling routine is a program written by the user to
handle a specific exception. The exception handling routine is terminated and control returned to
the original program by executing a return-from-exception instruction (RTE). This instruction
restores the PC and SR contents and returns control to the normal processing routine at the point at
which the exception occurred. The SGR contents are not written back to R15 with an RTE
instruction.

The basic processing flow is as follows. For the meaning of the SR bits, see section 2,
Programming Model.

1. The PC, SR, and R15 contents are saved in SPC, SSR, and SGR, respectively.

2. The block bit (BL) in SR is set to 1.

3. The mode bit (MD) in SR is set to 1.

4. The register bank bit (RB) in SR is set to 1.

5. In a reset, the FPU disable bit (FD) in SR is cleared to 0.

6. The exception code is written to bits 11 to 0 of the exception event register (EXPEVT) or

interrupt event register (INTEVT).

7. When the interrupt mode switch bit (INTMU) in CPUOPM has been 1, the interrupt mask

level bit (IMASK) in SR is changed to accepted interrupt level.

8. The CPU branches to the determined exception handling vector address, and the exception

handling routine begins.

5.3.2

Exception Handling Vector Addresses

The reset vector address is fixed at H'A0000000. Exception and interrupt vector addresses are
determined by adding the offset for the specific event to the vector base address, which is set by
software in the vector base register (VBR). In the case of the TLB miss exception, for example,
the offset is H'00000400, so if H'9C080000 is set in VBR, the exception handling vector address
will be H'9C080400. If a further exception occurs at the exception handling vector address, a
duplicate exception will result, and recovery will be difficult; therefore, addresses that are not to
be converted (in P1 and P2 areas) should be specified for vector addresses.

Advertising