Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.

  1. Entrada e Saída

Diferente de outras arquiteturas como x86, e semelhante à arquitetura Motorola(68K), ARM não utiliza o conceito de portas de entrada e saída para se comunicar com periféricos ligados ao processador para trocar informações. Essa troca é realizada por intermédio de registradores mapeados em memória.

Esse tipo de registrador possui um endereço fixo em memória para servir como um canal destinado à leitura e/ou escrita de dados. Seu tamanho é de 32-bits e os dados transferidos têm os tamanhos Byte, Halfword e Word.

Tab. 1: Registradores em memória
Endereço 00 01 02 03 (...) 0C 0D 0E 0F
FA000000 Registrador A (...) -- -- -- --
FB000000 Registrador B (...) -- -- -- --

Tanto o processador configurado como ARM ou Thumb, os registradores mapeados em memória têm o mesmo tamanho de 32-Bits.

As instruções de Load e Store são responsáveis pela escrita e leitura desses registradores. Essas instruções serão vistas em Load e Store.

Abaixo, alguns exemplos de dispositivos e outros processadores que podem utilizar registradores mapeados em memória:

  1. Mouse
  2. Teclado
  3. Joystick
  4. Áudio
  5. Vídeo

Abaixo, exemplos reais de registradores mapeados em memória para troca de informações com chips de controle de DMA. Timer e Vídeo.

Tab. 2: Exemplo de mapeamento
Endereço do Registrador Uso
0x4000200 Interrupção
0x4000100 Timer
0x40000B0 DMA
0x4000000 Word Vídeo

O uso, definição de endereço e outras configurações sobre registradores mapeados em memória são de total responsabilidade do hardware que utiliza um processador ARM como processador principal ou não.

As interrupções Data Abort e Prefetch Abort podem ser geradas durante o acesso aos dados em memória. O assunto Interrupções será visto mais adiante.

A arquitetura ARM v4 não possui uma instrução como em outras arquiteturas. Caso seja necessário aguardar o um tempo para comunicação com algum periférico, basta utilizar alguma instrução, como MOV, para simular uma instrução NOP.

  1. 27/01/2025 - versão inicial