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
Содержание i960 Jx
Страница 1: ...Release Date December 1997 Order Number 272483 002 i960 Jx Microprocessor Developer s Manual ...
Страница 24: ......
Страница 25: ...1 INTRODUCTION ...
Страница 26: ......
Страница 35: ...2 DATA TYPES AND MEMORY ADDRESSING MODES ...
Страница 36: ......
Страница 46: ......
Страница 47: ...3 PROGRAMMING ENVIRONMENT ...
Страница 48: ......
Страница 73: ...4 CACHE AND ON CHIP DATA RAM ...
Страница 74: ......
Страница 85: ...5 INSTRUCTION SET OVERVIEW ...
Страница 86: ......
Страница 111: ...6 INSTRUCTION SET REFERENCE ...
Страница 112: ......
Страница 195: ...INSTRUCTION SET REFERENCE 6 83 6 Opcode mov 5CCH REG movl 5DCH REG movt 5ECH REG movq 5FCH REG See Also LOAD STORE lda ...
Страница 233: ...7 PROCEDURE CALLS ...
Страница 234: ......
Страница 256: ......
Страница 257: ...8 FAULTS ...
Страница 258: ......
Страница 291: ...9 TRACING AND DEBUGGING ...
Страница 292: ......
Страница 309: ...10 TIMERS ...
Страница 310: ......
Страница 324: ......
Страница 325: ...11 INTERRUPTS ...
Страница 326: ......
Страница 369: ...12 INITIALIZATION AND SYSTEM REQUIREMENTS ...
Страница 370: ......
Страница 412: ......
Страница 413: ...13 MEMORY CONFIGURATION ...
Страница 414: ......
Страница 429: ...14 EXTERNAL BUS ...
Страница 430: ......
Страница 468: ......
Страница 469: ...15 TEST FEATURES ...
Страница 470: ......
Страница 493: ...A CONSIDERATIONS FOR WRITING PORTABLE CODE ...
Страница 494: ......
Страница 502: ......
Страница 503: ...B OPCODES AND EXECUTION TIMES ...
Страница 504: ......
Страница 515: ...C MACHINE LEVEL INSTRUCTION FORMATS ...
Страница 516: ......
Страница 523: ...D REGISTER AND DATA STRUCTURES ...
Страница 524: ......
Страница 550: ......
Страница 551: ...GLOSSARY ...
Страница 552: ......
Страница 561: ...INDEX ...
Страница 562: ......
Страница 578: ......