INTERRUPTS
11-10
Example 11-1. Using sysctl to Request an Interrupt
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
sysctl
instruction is as follows:
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
sysctl
requests an interrupt or when a software-generated interrupt is serviced.
ldconst 0x53,g5
# Vector number 53H is loaded
# into byte 0 of register g5 and
# the value is zero extended into
# byte 1 of the register
sysctl g5, g5, g5 # Vector number 53H is posted
Summary of Contents for i960 Jx
Page 1: ...Release Date December 1997 Order Number 272483 002 i960 Jx Microprocessor Developer s Manual ...
Page 24: ......
Page 25: ...1 INTRODUCTION ...
Page 26: ......
Page 35: ...2 DATA TYPES AND MEMORY ADDRESSING MODES ...
Page 36: ......
Page 46: ......
Page 47: ...3 PROGRAMMING ENVIRONMENT ...
Page 48: ......
Page 73: ...4 CACHE AND ON CHIP DATA RAM ...
Page 74: ......
Page 85: ...5 INSTRUCTION SET OVERVIEW ...
Page 86: ......
Page 111: ...6 INSTRUCTION SET REFERENCE ...
Page 112: ......
Page 233: ...7 PROCEDURE CALLS ...
Page 234: ......
Page 256: ......
Page 257: ...8 FAULTS ...
Page 258: ......
Page 291: ...9 TRACING AND DEBUGGING ...
Page 292: ......
Page 309: ...10 TIMERS ...
Page 310: ......
Page 324: ......
Page 325: ...11 INTERRUPTS ...
Page 326: ......
Page 369: ...12 INITIALIZATION AND SYSTEM REQUIREMENTS ...
Page 370: ......
Page 412: ......
Page 413: ...13 MEMORY CONFIGURATION ...
Page 414: ......
Page 429: ...14 EXTERNAL BUS ...
Page 430: ......
Page 468: ......
Page 469: ...15 TEST FEATURES ...
Page 470: ......
Page 493: ...A CONSIDERATIONS FOR WRITING PORTABLE CODE ...
Page 494: ......
Page 502: ......
Page 503: ...B OPCODES AND EXECUTION TIMES ...
Page 504: ......
Page 515: ...C MACHINE LEVEL INSTRUCTION FORMATS ...
Page 516: ......
Page 523: ...D REGISTER AND DATA STRUCTURES ...
Page 524: ......
Page 550: ......
Page 551: ...GLOSSARY ...
Page 552: ......
Page 561: ...INDEX ...
Page 562: ......
Page 578: ......