Introdução
à arquitetura de computadores digitais: máquinas de Von Neumann x
arquiteturas Harvard; arquiteturas RISC; microprocessadores x
microcontroladores; máquinas de 8, 16, 32 e 64 bits.
Memórias
- tipos e hierarquias; componentes básicos de uma CPU: UC, ULA,
endereçamento, registradores; dispositivos de E/S; fases da
execução de uma instrução; noções de linguagem de máquina.
Introdução ao ambiente de programação em linguagem de montagem (assembly) do ARM: "toolchain gcc": compilador/montado/ligador cruzado, ferramentas de depuração: emulador QEMU e depurador gdb para o ambiente Linux; execução passo a passo. Instalação do ambiente em computadores pessoais.
Revisão de números binários e operações aritméticas; representação 1-complemento e 2-complemento; notação hexadecimal; caracteres ASCII; operações da álgebra booleana sobre valores binários; representação de números em ponto flutuante.
Introdução à arquitetura do ARM : instruções e modos de endereçamento.
Introdução a montadores e macro-montadores; programação em linguagem de
montagem do ARM. Programação com macros.
E/S: Registradores de E/S; interrupções; temporizadores;
introdução a núcleos de sistemas de tempo real (RTOS);
técnicas para gravação de código em microcontroladores a partir de um PC.
Introdução a microcontroladores de 8 bits:
arquitetura do AVR família ATxxx: instruções e modos de endereçamento.
Introdução
a ligadores: ligação estática e ligação dinâmica. Conceitos de
memória virtual e de mapeamento de espaços de endereçamento.
Funções do gcc acessíveis pelo montador do ARM.