As interrupções na execução de um processador podem ser causadas internamente ou externamente.
As exceções são causadas internamente, ou pelo usuário.
Quando uma interrupção/exceção ocorre, o fluxo de execução atual é desviado para uma rotina de tratamento
e depois retorna ao fluxo anterior após o devido tratamento, exceto no caso de RESET.
Exemplo:
Fluxo normal > Interrupção > Tratamento > Fluxo normal
Fluxo normal > Exceção > Tratamento > Fluxo normal
A armv4 define um conjunto de vetores de interrupção, assim como em outros processadores, onde
ficam armazenados endereços de rotinas para tratamento.
Nessa arquitetura, 7 vetores de interrupção, chamados de Hard Vectors(HV), são definidos
e residem, por padrão, no intervalo inicial de memória 0x00000000 a 0x000001F. Esses HVs podem
ser vistos abaixo bem como seus respectivos modos de operação.
Tab.1: Hard Vectors - ARM
| Hard Vector |
Endereço |
Modo |
| Reset |
0x00000000 |
SVC |
| Undefined Instruction |
0x00000004 |
UNDEF |
| Software Interrupt |
0x00000008 |
SVC |
| Prefetch |
0x0000000C |
ABORT |
| Data Abort |
0x00000010 |
ABORT |
| Address Exception |
0x00000014 |
Reservado |
| Interrupt Request |
0x00000018 |
IRQ |
| Fast Interrupt Request |
0x0000001C |
FIQ |
Independentemente da interrupção/Exceção, o processador é configurado/setado para o respectivo
modo de operação associado ao Hard Vector, quando ocorre. Os registradores são salvos/restaurados
de acordo com a tabela de modos de operação já vistos.
Dependendo da implementação do processador ARM, os Hard Vectors podem residir em outras
regiões de memória, como na região mais alta da memória 0xFFFFFFE0, por exemplo.
Quando uma interrupção das mostradas na tabela acima, os passos seguintes são executados
automaticamente pelo processador:
- R14_modo_exceção <- PC ou PC + 4
- SPSR_modo_exceção <- CPSR
- CPSR[5:0] <- modo_exceção
- CPSR[6] <- Se modo_exceção == Reset or FIQ então 1, senão, sem alteração
- CPSR[7] <- 1
- PC <- hard_vector_exceção
Para retornar para o fluxo de execução, os passos abaixo devem executados:
- O CPSR deve ser restaurado
- PC deve ser restaurado
Mais informações sobre modos e flags, é recomendado visitar a seções
Registradores.