Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura ARM Visão Geral SISTEMAS EMBARCADOS PROF. FELIPE AUGUSTO PRZYSIADA Timeline SISTEMAS EMBARCADOS 2 Timeline SISTEMAS EMBARCADOS 3 Timeline SISTEMAS EMBARCADOS 4 Timeline SISTEMAS EMBARCADOS 5 Timeline SISTEMAS EMBARCADOS 6 Embedded e Application Processors SISTEMAS EMBARCADOS 7 Arquiteturas ARMs ➢Application Profile(ARMv7-A) ➢Real-Time Profile(ARMv7-R) ➢Microcontroller Profile(ARMv7-M,ARMv6-M) SISTEMAS EMBARCADOS 8 Exemplos de Cortex SISTEMAS EMBARCADOS 9 Vantagens do Cortex vs uC SISTEMAS EMBARCADOS 10 Exemplo de Arquitetura M SISTEMAS EMBARCADOS 11 Recursos do Controlador ➢System Timer (SysTick); ➢Nested Vectored Interrupt Controller (NVIC); ➢System Control Block (SCB); ➢Memory Protection Unit (MPU); ➢Floating-Point Unit (FPU); ➢General-Purpose Input/Outputs (GPIOs); ➢Watchdog Timers; ➢Hibernation Module; SISTEMAS EMBARCADOS 12 Recursos do Controlador ➢(1) JTAG Interface; ➢(8) Universal Asynchronous Receivers/Transmitters (UARTs); ➢(4) Synchronous Serial Interface (SSI); ➢(6) Inter-Integrated Circuit (I2C) Interface; ➢(2) Controller Area Network (CAN) Module; ➢(1) Universal Serial Bus (USB) Controller; SISTEMAS EMBARCADOS 13 Recursos do Controlador ➢Controle de Movimentação • PWM; • QEI; ➢Analógico • DAC (PWM); • ADC; • 24 entradas analógicas com capacidade para 1 MSPs; SISTEMAS EMBARCADOS 14 “Prática” ➢Comparar as características dos seguintes controladores em relação ao ARM: • PIC16F887 • PIC18F4550 • ATMEGA 4550 • 8051 SISTEMAS EMBARCADOS 15 Como Programar ➢Assembly(Instruction Set, Thumb e Thumb2); ➢CMSIS(Cortex Microcontroller Software Interface Standard); ➢Linguagem C/C++ padrão com acesso a registradores; SISTEMAS EMBARCADOS 16 Conjunto de Instruções SISTEMAS EMBARCADOS 17 Data Size e Instruction Set ➢ARM é uma arquitetura RISC; ➢ARM é uma arquitetura de 32 bits load/store; ➢Maioria dos processadores ARM utilizam 2 tipos de instrução; • 32-bit ARM instruction; • 16-bit Thumb instruction; ➢As instruções Thumb estão sendo substituídas por Thumb 2; SISTEMAS EMBARCADOS 18 Tipos de Dados no ARMv7 ➢ARMv7-M suporta os seguintes tipos de dados: • Byte -8 bits; • Halfword-16 bits; • Word -32 bits; • DoubleWord-64 bits; ➢Registradores de processo são de 32-bit, capazes de suportar: • Ponteiros de 32-bit; • Inteiro com ou sem sinal de 32-bit; • Inteiro sem sinal de 16-bit ou 8-bit, formados por representação de zero; • Inteiro com sinal de 16-bit ou 8-bit, formado por complemento de 2; • Inteiro com ou sem sinal de 64-bit, formado por dois registradores; SISTEMAS EMBARCADOS 19 Manipulação de dados SISTEMAS EMBARCADOS 20 Instruções ARM ➢Instruções com tamanho de 32 bits; ➢Todas as instruções são condicionais; ➢Load/Store – não manipula a memória diretamente; ➢Instrução consiste de: • Opcode, com condicional (opcional); • Registrador destino; • Primeiro registrador origem; • Segundo registrador origem; • Deslocamento para o segundo operador (opcional); ➢Um exemplo: SUBZ r0, r1, #5 SISTEMAS EMBARCADOS 21 Manipulação de Dados SISTEMAS EMBARCADOS 22 Instruções Thumb 2 ➢Instruções com tamanho de 16 bits: • Otimização para código feito em C (~65% do equivalente ARM); • Subset de funcionalidades das instruções ARM; ➢Características: • Sem condicional; • Flags sempre definidas; • Apenas registradores entre 0 e 7; • Constantes limitadas; • Deslocamento não utilizado; ➢Trocar entre ARM e Thumb utilizando comando BX; SISTEMAS EMBARCADOS 23 Instruções Thumb 2 ➢Melhoria das instruções Thumb originais: • Adiciona instruções de 32 bits ao Thumb; • Mantém todas as instruções de 16 bits; ➢Suportadas a partir da família ARM11; ➢Objetivo: Desempenho ARM com densidade de código Thumb; ➢Utilizado principalmente na família M; SISTEMAS EMBARCADOS 24 Outras Instruções ➢Jazelle DBX (Direct Bytecode Execution) • Most common Java bytecodes executed in hardware; • ARM JTEK™ (Java Technology Enabling Kit) provides support code; • Better performance than ARM-based JVM with small size penalty; ➢Jazelle RCT (Runtime Compilation Target)/Thumb-2EE • Supports ahead-of-time (AOT) and just-in-time (JIT) compilation; • Intended for any interpreted language (not just Java); ➢Vector Floating Point (VFP) instructions • Requires floating point coprocessor and/or software support libraries; ➢NEON (extension of the ARM instruction set for ARMv7-A) • NEON is a wide SIMD data processing architecture; • Intended for media applications (codecs etc.); • Can code in assembly, compiler intrinsics, use vectorizing compiler on C code, or use the OpenMAX DL Libraries; SISTEMAS EMBARCADOS 25 Pilha de Registradores SISTEMAS EMBARCADOS 26 Pilha de Registradores ➢Apresenta treze registradores genéricos de 32 bits (R0-R12), incluindo três registradores adicionais de 32-bits: ➢SP - stack pointer (R13); ➢LR - link register (R14); ➢PC - program counter (R15); ➢Apresenta uma pilha principal para execução e uma pilha para suporte (main stack e process stack); SISTEMAS EMBARCADOS 27 Pilha de Registradores ➢Registradores R0-R7 • Acessível para todas as instruções; ➢Registradores R8-R12 • Acessível para algumas instruções de 16-bits; • Acessível para todas as instruções de 32-bits; ➢R13 - stack pointer (SP) • Núcleos V7-M tem dois bancos; ➢R14 - link register (LR) ➢R15 - program counter (PC) ➢xPSR (Program Status Register) • Não acessível de forma explicita; • Salva na pilha no caso de exceção; SISTEMAS EMBARCADOS 28 Estrutura do PSR N – Resultado negativo da ULA Z – Resultado zero da ULA C – Houve Carry na Operação V – Houve overflow na operação Q – indica saturação (Arquitetura 5TE ) J – Jazelle (Arquitetura 5TEJ) I – desabilita interrupção IRQ F – desabilita interrupção FIQ T – Define instruction set mode – auto-explicativo Bits a partir da V6 GE – usado por instruções SIMD E – controla endianness IT – status do condicional SISTEMAS EMBARCADOS 29 Modos de Operação ➢Thread mode e handler mode: • Handler mode serve para execução de interrupções e exceções; • Thread mode serve para execução de aplicações normais; ➢Privilegiado/não-privilegiado: • Handler mode sempre é privilegiado; • Thread mode pode ser privilegiado ou não-privilegiado; ➢Pilhas - main stack e process stack: • Ambas as pilhas tem seu próprio registrador r13 (stack pointer); • Exceções sempre usam a pilha principal (main stack); • Aplicações (thread mode) pode usar ambas as pilhas; SISTEMAS EMBARCADOS 30 Modos de Operação SISTEMAS EMBARCADOS 31 Exceções ➢Tipos de exceções: • Reset; • Non-maskable Interrupts (NMI); • Faults; • PendSV; • SVCall; • External Interrupt; • SysTick Interrupt; ➢Processamento de exceções no Handler mode • Usa modo privilegiado; ➢Interrupt handling • Interrupções são uma subclasse das exceções; • Salva e restaura automaticamente o estados dos registradores (PC, xPSR, R0-R3, R12, R14); • Possibilita escrita do código em ‘C’; SISTEMAS EMBARCADOS 32 Exceções ➢240 interrupções; ➢Tightly integrated Interrupt Controller (NVIC); SISTEMAS EMBARCADOS 33 Exceções ➢Reset - Permanentemente ativa com prioridade fixa de -3; ➢NMI - Permanentemente ativa com prioridade fixa de -2; ➢HardFault - Permanentemente ativa com prioridade fixa de -1; ➢MemManage - Pode ser desabilitada com prioridade configurável; ➢BusFault - Pode ser desabilitada com prioridade configurável; ➢UsageFault - Pode ser desabilitada com prioridade configurável; ➢Debug Monitor - Pode ser habilitada com prioridade configurável;➢Interrupções - Pode ser habilitada com prioridade configurável; SISTEMAS EMBARCADOS 34 Gerenciamento de Energia ➢Múltiplo modos de sleep – Controlados pela NVIC • Sleep Now; • Sleep On Exit; • Deep Sleep; ➢Wake-Up Interrupt Controller (WIC) • Permite que o cortex principal seja totalmente desenergizado; SISTEMAS EMBARCADOS 35 Mapa de Endereçamento do Sistema ➢Para o ARMv7-M, os 32-bits de endereçamento tem espaço pré determinado, subdividido para código, data e perifericos, assim como regiões internas do chip e externas: • Code; • SRAM; • Peripheral; • 2 x RAM regions; • 2 x Device regions; • System; SISTEMAS EMBARCADOS 36 Mapeamento de Memória SISTEMAS EMBARCADOS 37 Debug em Hardware SISTEMAS EMBARCADOS 38
Compartilhar