Embedded Sytems
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
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)
- 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).
- PSR - Process Status Register - Es otro registro que en 5 bits almacena el estado del sistema después de una operación de la ALU (N Z V C Q).
- APSR, IPSR y EPSR son tres registros de estado que se pueden acceder individualmente o combinados con el PSR
- 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

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