Diferencia entre revisiones de «Embedded Sytems»

De Proyectos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 52 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
Embedded Systems<br/>
[[C2 - Conceptos Fundamentales]]<br/>
[[C4 - Lógica Digital]]<br/>
[[C5 - Introducción a C]]<br/>
[[C6 - Microcontroller Ports]]<br/>
[[C7 - Design and Development Process]]<br>
[[C10 - Finite State Machine]]<br>
[[C11 - UART: The serial interface]]<br>
[[C12 - Interrupts]]<br>
<br/>
Información Complementaria<br/>
Información Complementaria<br/>
<br/>
<br/>
Línea 4: Línea 15:
<br/>
<br/>
[http://www.utm.mx/~fsantiag/Micros.htm http://www.utm.mx/~fsantiag/Micros.htm]<br/>
[http://www.utm.mx/~fsantiag/Micros.htm http://www.utm.mx/~fsantiag/Micros.htm]<br/>
<br/>
[[File: arm_cortex_m.gif]]<br/>
Imagen Cortex-M ARM (CPU, Memoria, Perifericos, ...)<br/>
<br/>
*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
<br/>
<br/>
Imagen CPU Cortex-M4 ARM<br/>
Imagen CPU Cortex-M4 ARM<br/>
Línea 29: Línea 33:
*Decodificación
*Decodificación
*Ejecució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
<br/>
<br/>
<b>Tema 2</b><br/>
<br/>
<b>Memoria microcontroladores</b><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/>
<b>Tipos de I/O</b><br/>
*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
<br/>
<br/>
<b>ISA (Instruction Set Architecture)</b><br/>
<br/>
<b>Registros ARM ISA</b><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/>
<br/>
*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).
<br/>
*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
<br/>
[[File:special_registers.gif]]<br/>
<br/>
Program Status Register del procesador ARM® Cortex-M<br/>
<br/>
<br/>
<b>Assembly language instrucctions</b><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/>
<br/>
Memory Map Layout<br/>
*ROM/Flash
*RAM
*I/O Ports
*Internal I/O<br/>
<br/>
<br/>
Recursos
*https://www.smashwords.com/books/view/302372 - Libro en castellano de desarrollo en ARM M3 de Sergio R. Caprile
*http://www.sase.com.ar/2012/files/2012/09/Pres_ARMando.pdf - Presentacion pdf resumen arm de Sergio R. Caprile
*http://mymoviestorrent.com/e-books/90968-the-designers-guide-to-the-cortex-m-processor-family-a-tutorial-approach.html - The Designer's Guide to the Cortex-M Processor Family - A Tutorial Approach -
*http://users.ece.utexas.edu/~valvano/embed/toc1.htm - Aprendizaje C para ARM de J.Valvano
*http://www.forosdeelectronica.com/f24/empezar-microcontroladores-arm-55856/index2.html - Discusion sobre ARM. Interesante, hablan de placas de desarrollo y de las diferentes marcas que hacen ARM
*https://www.youtube.com/user/valenciaupv/search?query=arm - Canal youtube de Universidad Politecnica Valencia

Revisión actual - 19:41 6 abr 2015

Embedded Systems
C2 - Conceptos Fundamentales
C4 - Lógica Digital
C5 - Introducción a C
C6 - Microcontroller Ports
C7 - Design and Development Process
C10 - Finite State Machine
C11 - UART: The serial interface
C12 - Interrupts

Información Complementaria

Recursos

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

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



Recursos