Intel i960 Jx Developer's Manual page 336

Microprocessor
Table of Contents

Advertisement

INTERRUPTS
Example 11-1. Using sysctl to Request an Interrupt
ldconst 0x53,g5
sysctl g5, g5, g5 # Vector number 53H is posted
A literal can be used to post an interrupt with a vector number from 8 to 31. Here, the required
value of 00H in the second byte of a register operand is implied.
The action of the processor when it executes the
1.
The processor performs an atomic write to the interrupt table and sets the bits in the
pending-interrupts and pending-priorities fields that correspond to the requested interrupt.
2.
The processor updates the internal software priority register with the value of the highest
pending priority from the interrupt table. This may be the priority of the interrupt that was
just posted.
The interrupt controller continuously compares the following three values: software priority
register, current process priority, priority of the highest pending hardware-generated interrupt.
When the software priority register value is the highest of the three, the following actions occur:
1.
The interrupt controller signals the core that a software-generated interrupt is to be serviced.
2.
The core checks the interrupt table in memory, determines the vector number of the highest
priority pending interrupt and clears the pending-interrupts and pending-priorities bits in the
table that correspond to that interrupt.
3.
The core detects the interrupt with the next highest priority that is posted in the interrupt
table (if any) and writes that value into the software priority register.
4.
The core services the highest priority interrupt.
If more than one pending interrupt is posted in the interrupt table at the same interrupt priority, the
core handles the interrupt with the highest vector number first. The software priority register is an
internal register and, as such, is not visible to the user. The core updates this register's value only
when
requests an interrupt or when a software-generated interrupt is serviced.
sysctl
11-10
# Vector number 53H is loaded
# into byte 0 of register g5 and
# the value is zero extended into
# byte 1 of the register
sysctl
instruction is as follows:

Advertisement

Table of Contents
loading

Table of Contents