|
|
| (No se muestran 3 ediciones intermedias del mismo usuario) |
| Línea 6: |
Línea 6: |
| https://www.sparkfun.com/tutorials/57 - tutoriales de microcontroladores en ingles<br/> | | https://www.sparkfun.com/tutorials/57 - tutoriales de microcontroladores en ingles<br/> |
| <br/> | | <br/> |
| <br/>
| |
| Información Complementaria<br/>
| |
| <br/>
| |
| Recursos<br/>
| |
| <br/>
| |
| [http://www.utm.mx/~fsantiag/Micros.htm http://www.utm.mx/~fsantiag/Micros.htm]<br/>
| |
| <br/>
| |
| Imagen Cortex-M4 ARM (CPU, Memoria, Perifericos, ...)<br/>
| |
| <br/>
| |
| Imagen CPU Cortex-M4 ARM<br/>
| |
| <br/>
| |
| Imagen Memoria Cortex-M4 ARM<br/>
| |
| <br/>
| |
| 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
| |
| <br/>
| |
| Imagen CPU<br/>
| |
| <br/>
| |
| 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, aunque el tipo de tecnologia que utiliza hoy en dia es la flash (Esto no es del todo correcto)
| |
| ***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
| |
| <br/>
| |
| <br/>
| |
| Tema 2<br/>
| |
| <br/>
| |
| Memoria microcontroladores<br/>
| |
| <br/>
| |
| [http://es.wikipedia.org/wiki/Microcontrolador#Memoria Tipos de memoria]<br/>
| |
| [http://es.wikipedia.org/wiki/SRAM Memoria RAM (SRAM)]<br/>
| |
| [http://es.wikipedia.org/wiki/EEPROM Memoria ROM (EEPROM)]<br/>
| |
| [http://es.wikipedia.org/wiki/Memoria_flash Memoria ROM (Flash)]<br/>
| |
| <br/>
| |
| ISA (Instruction Set Architecture)<br/>
| |
| <br/>
| |
| Registros ARM ISA<br/>
| |
| R1...R12 - General Purpose Registers<br/>
| |
| R13 - Stack Points (Almacena la dirección del elemento top de la pila)<br/>
| |
| R14 - Link Register (Almacena la dirección devuelta por las subrutinas)<br/>
| |
| R15 - Program Counter (Almacena la dirección de la siguiente instrucción a ejecutar)<br/>
| |
| PSR - Process Status Register - Es otro registro que en 4 bits almacena el estado del sistema después de una operación de la ALU (N Z V C). N resultado negativo, Z resultado es 0, V overflow signed numbers y C overflow unseigned numbers <br/>
| |
| <br/>
| |
| Assembly language instrucctions<br/>
| |
| Label - Opcode - Operand - Comment<br/>
| |
| FUNC - MOV - R0,#100 ; Pone 100 en R0<br/>
| |
| <br/>
| |
| *Label field:
| |
| *Opcode field:
| |
| *Operand field:
| |
| *Comment ifeld:
| |
| <br/>
| |
| <br/>
| |
| Las instrucciones se pueden clasificar en 4 categorias:
| |
| *Acceso a la memoria
| |
| *Instrucciones aritméticas y lógicas
| |
| *Instrucciones de control
| |
| *Resto de instrucciones
| |
| <br/>
| |
| <br/>
| |
| Memory Map Layout<br/>
| |
| *ROM/Flash
| |
| *RAM
| |
| *I/O Ports
| |
| *Internal I/O<br/>
| |
| <br/> | | <br/> |