![background image](http://html2.mh-extra.com/html/rabbit/6000/6000_user-manual_3115352083.webp)
Rabbit 6000 User’s Manual
digi.com
83
6. I
NTERRUPTS
6.1 Overview
The Rabbit 6000 can operate at one of four priority levels, 0–3, with Priority 0 being the expected standard
operating level. The current priority and up to three previous priority levels are kept in the processor’s 8-
bit IP register, where bits 0–1 contain the current priority. Every time an interrupt is handled or an IPSET
instruction occurs, the value in the register is shifted left by two bits, and the new priority placed in bits 0–
1. When an IPRES or IRET instruction occurs, the value in IP is shifted right by two bits (bits 0–1 are
shifted into bits 6–7). On reset, the processor starts at Priority 3.
Most interrupts can be set to be Priority 1–3. A pending interrupt will be handled only if its interrupt prior-
ity is greater than the current processor priority. This means that even a Priority 3 interrupt can be blocked
if the processor is currently at Priority 3. The System Mode Violation, Stack Limit Violation, Write Protec-
tion Violation, secondary watchdog, and breakpoint interrupts are always enabled at Priority 3. In addition,
when the System/User Mode is enabled and the processor is in the User Mode, the processor will not actu-
ally enter Priority 3; any attempt to enter Priority 3 will actually be requested as Priority 2.
When an interrupt is handled, a call is executed to a fixed location in the interrupt vector tables. This oper-
ation requires 11 clocks, the minimum interrupt latency for the Rabbit 6000. There are two vector tables,
the internal and the external interrupt vector tables, that can be located anywhere in logical memory by set-
ting the processor’s IIR and EIR registers. The IIR and EIR registers hold the upper byte of each table’s
address. For example, if IIR is loaded with 0xC4, then the internal interrupt vector table will start at the
logical memory address 0xC400.
Both the internal and external interrupt vector table occupy 512 bytes. Since the RST and SYSCALL vec-
tors use all eight bits of the IIR for addressing, the lowermost bit of IIR should always be set to zero so to
keep some vectors from inadvertently overlapping.
Each interrupt’s vector begins on a 16-byte boundary inside the vector tables. It may be possible to fit a
small routine into that space, but it is typical to place a call to a separate routine in that location.
Some Rabbit 6000 instructions are “chained atomic,” which means that an interrupt cannot occur between
that instruction and the following instruction. These instructions are useful for doing things like exiting
interrupt handlers properly or updating semaphores.
Содержание 6000
Страница 1: ...Rabbit 6000 Microprocessor User s Manual 90001108_J...
Страница 11: ...Rabbit 6000 User s Manual digi com 11 1 3 Block Diagram Figure 1 1 Rabbit 6000 Block Diagram...
Страница 43: ...Rabbit 6000 User s Manual digi com 43 4 1 1 Block Diagram...
Страница 57: ...Rabbit 6000 User s Manual digi com 57 5 1 1 Block Diagram...
Страница 88: ...Rabbit 6000 User s Manual digi com 88 7 2 Block Diagram...
Страница 115: ...Rabbit 6000 User s Manual digi com 115 11 1 1 Block Diagram...
Страница 127: ...Rabbit 6000 User s Manual digi com 127 12 1 1 Block Diagram...
Страница 138: ...Rabbit 6000 User s Manual digi com 138 13 1 1 Block Diagram...
Страница 154: ...Rabbit 6000 User s Manual digi com 154 15 1 1 Block Diagram...
Страница 163: ...Rabbit 6000 User s Manual digi com 163 16 1 1 Block Diagram...
Страница 170: ...Rabbit 6000 User s Manual digi com 170 17 1 1 Block Diagram...
Страница 177: ...Rabbit 6000 User s Manual digi com 177 18 1 1 Block Diagram...
Страница 186: ...Rabbit 6000 User s Manual digi com 186 19 1 1 Block Diagram...
Страница 230: ...Rabbit 6000 User s Manual digi com 230 22 2 Block Diagram...
Страница 234: ...Rabbit 6000 User s Manual digi com 234 Figure 22 3 Sample Slow A D Converter Circuit...
Страница 287: ...Rabbit 6000 User s Manual digi com 287 25 1 1 Block Diagram...
Страница 310: ...Rabbit 6000 User s Manual digi com 310 26 1 1 Block Diagram...
Страница 323: ...Rabbit 6000 User s Manual digi com 323 28 1 1 Block Diagram...
Страница 351: ...Rabbit 6000 User s Manual digi com 351 31 1 4 Block Diagram...
Страница 361: ...Rabbit 6000 User s Manual digi com 361 32 1 1 Block Diagram...
Страница 369: ...Rabbit 6000 User s Manual digi com 369 33 2 Block Diagram...
Страница 390: ...Rabbit 6000 User s Manual digi com 390 35 1 1 Block Diagram...
Страница 408: ...Rabbit 6000 User s Manual digi com 408...
Страница 410: ...Rabbit 6000 User s Manual digi com 410...
Страница 411: ...Rabbit 6000 User s Manual digi com 411...
Страница 420: ...Rabbit 6000 User s Manual digi com 420 Figure 37 1 Memory Read and Write Cycles...