Embedded Sytems

De Proyectos
Ir a la navegación Ir a la búsqueda

Información Complementaria

Recursos

http://www.utm.mx/~fsantiag/Micros.htm


Imagen Cortex-M ARM (CPU, Memoria, Perifericos, ...)

  • Arquitectura Harvard. ICode bus conecta con la ROM y System bus conecta con la RAM
  • NVIC se encarga d elas interrupciones
  • Algunos perifericos internos se conectan directamente con el procesador por el bus PPB


Imagen CPU Cortex-M4 ARM

Imagen Memoria Cortex-M4 ARM

Tipos CPU:

  • CISC (Complex Instruction Set Computers)
    • Hardware complejo y un bajo rendimiento
    • Demasiadas instrucciones con diferentes tamaños y formatos, que pueden ocupar varios bytes
  • RISC (Reduced Instruction Set Computers)
    • Hardware es simple y resuelve pocas instrucciones. Alto rendimiento.
    • Pocas instrucciones y generalmente del mismo tamaño



Tareas CPU (FALTA MAS INFO):

  • Atrapar la instrucción
  • Decodificación
  • Ejecución

Tipos de memoria:

  • Memoria de Código
    • Es en la que se almacena el programa
    • Es no volátil
    • Es la comunmente llamada ROM, y la tecnologia flash es una de las utilizadas para almacenar la ROM
      • La memoria flash se borra mediante impulsos eléctricos. Es una sucesora de la EEPROM
  • Memoria de Datos
    • Es la que almacena las variables del programa
    • Es volátil
    • Es la comunmente llamada RAM. La tecnologia que se utiliza para los microcontroladores es la SRAM
    • También nos podemos encontrar con microcontroladores que ademas tienen memoria EEPROM para guardar datos cuando se corta la electricidad

Sistema de memoria:

  • Arquitectura Von Neumann
    • La Memoria de Código y la de Datos comparten el Bus hacia la CPU
  • Arquitectura Harvard
    • Hay un bus para la Memoria de Código y otro bus para la Memori de datos



Tema 2

Memoria microcontroladores

Tipos de memoria
Memoria RAM (SRAM)
Memoria ROM (EEPROM)
Memoria ROM (Flash)

Tipos de I/O

  • Parallel - binary data are available simultaneously on a group of lines
  • Serial - binary data are available one bit at a time on a single line
  • Analog - data are encoded as an electrical voltage, current, or power
  • Time - data are encoded as a period, frequency, pulse width, or phase shift



ISA (Instruction Set Architecture)

Registros ARM ISA

  • R1...R12 - General Purpose Registers
    • AAPCS (ARM Architecture Procedure Call Satandard) (parte de la ABI (ARM Application Binary Interface)) utiliza los registros R0, R1, R2 y R3 para pasar parámetros a las funciones de C
    • Los parámetros que devuelven las funciones se colocan en el R0 según el AAPCS
    • In this class, the SP will always be the main stack pointer (MSP), not the Process Stack Pointer (PSP).
  • R13 - Stack Points (Almacena la dirección del elemento top de la pila)
  • R14 - Link Register (Almacena la dirección devuelta por las subrutinas)
  • R15 - Program Counter (Almacena la dirección de la siguiente instrucción a ejecutar)

Special Registers

  • PSR - Process Status Register - Combina:
    • APSR - Application Program Status Register
    • IPSR - Interrupt Program Status Register
    • EPSR - Execution Program Status Register
    • Se puede consultar el registro PSR (que nos devuelve toda la información que contienen los tres registros), o consultar cada registro individulamente
    • Los bits N, Z, V, C y Q nos dan información sobre el resultado de la anterior operación de la ALU
      • N resultado negativo
      • Z resultado es 0
      • V overflow signed numbers
      • C overflow unseigned numbers
      • Q indica que ha habido una saturacion
    • El bit T siempre es 1 y nos indica que el procesador esta ejecutando instrucciones Thumb
    • ISR_NUMBER indica el numero del tipo de excepcion actual del ISR
  • PRIMASK (Special Register) - Si el bit es 1 muchas interruciones y excepciones no estan permitidas, si es 0 las interrupciones estan permitidas
  • FAULTMASK (Special Register) -

The ISR_NUMBER indicates which interrupt if any the processor is handling.

Bit 0 of the special register PRIMASK is the interrupt mask bit. If this bit is 1, most interrupts and exceptions are not allowed. If the bit is 0, then interrupts are allowed.

Bit 0 of the special register FAULTMASK is the fault mask bit. If this bit is 1, all interrupts and faults are not allowed. If the bit is 0, then interrupts and faults are allowed.

The nonmaskable interrupt (NMI) is not affected by these mask bits.

The BASEPRI register defines the priority of the executing software. It prevents interrupts with lower or equal priority but allows higher priority interrupts. For example if BASEPRI equals 3, then requests with level 0, 1, and 2 can interrupt, while requests at levels 3 and higher will be postponed. A lower number means a higher priority interrupt. The details of interrupt processing will be presented in subsequent chapters.


Program Status Register del procesador ARM® Cortex-M


Assembly language instrucctions
Label - Opcode - Operand - Comment
FUNC - MOV - R0,#100 ; Pone 100 en R0

  • Label field:
  • Opcode field:
  • Operand field:
  • Comment ifeld:



Las instrucciones se pueden clasificar en 4 categorias:

  • Acceso a la memoria
  • Instrucciones aritméticas y lógicas
  • Instrucciones de control
  • Resto de instrucciones



Memory Map Layout

  • ROM/Flash
  • RAM
  • I/O Ports
  • Internal I/O