T 25
Upcoming SlideShare
Loading in...5
×
 

T 25

on

  • 547 views

el microprocesadores

el microprocesadores

Statistics

Views

Total Views
547
Views on SlideShare
515
Embed Views
32

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 32

http://armandorosales.blogspot.com 32

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

T 25 T 25 Presentation Transcript

  • INTRODUCCIÓN A LOSMICROPROCESADORES EMILI LUPON Departament d’Enginyeria Electrònica Sección E.T.S.E.I.B. (Campus Sud) Universitat Politècnica de Catalunya
  • DESARROLLO DE APLICACIONESBASADAS EN MICROPROCESADORES.1.Lenguajes de programación.2.Proceso de desarrollo de aplicaciones.3.Herramientas para la traducción.4.Herramientas para la puesta a punto de aplicaciones.
  • LENGUAJES DE PROGRAMACIÓN (I)• Los lenguajes de programación se utilizan para implementar los programas (secuencias de instrucciones) que deben ejecutarse en los microprocesadores.• Los microprocesadores sólo entienden los programas integrados por secuencias de instrucciones de su juego de instrucciones codificadas con 1s y 0s (código máquina o lenguaje máquina).• El lenguaje máquina es propio de cada microprocesador. Refleja su juego de instrucciones y su arquitectura interna.• El lenguaje máquina no es nada amigable: está muy lejos del lenguaje humano.• Aparecen las siguientes necesidades: – Concebir lenguajes de programación más cercanos al lenguaje humano (palabras que describan operaciones y operandos). – Concebir lenguajes de programación que sean independientes de la arquitectura del microprocesador que se desee utilizar. – Concebir sistemas de traducción mecanizados de estos lenguajes de programación más cercanos al lenguaje humano al lenguaje máquina del microprocesador que se desee utilizar (programas traductores).
  • LENGUAJES DE PROGRAMACIÓN (II)Existen dos categorías de lenguajes de programación cercanos al lenguaje humano:• Lenguajes de bajo nivel (ensambladores): – Representan con palabras o nemotécnicos el juego de instrucciones y los recursos internos del microprocesador (registros de la CPU). – Son propios de cada microprocesador (o de una familia de microprocesadores). – Permiten desarrollar programas muy compactos, ya que se pueden aprovechar al máximo los recursos internos del microprocesador. – El tiempo de desarrollo de programas acostumbra a ser largo.• Lenguajes de alto nivel (C, C++, Pascal, Fortran, Basic, Java, ...): – Representan con palabras o nemotécnicos operaciones y operandos genéricos que pueden llegar a ser muy complejos (por ejemplo, productos de matrices). – Son independientes de los microprocesadores, ya que no utilizan sus recursos internos. – Permiten desarrollar programas en un tiempo corto, debido a la potencia de sus operaciones y operandos. – Los programas a veces resultan poco compactos, ya que no pueden aprovechar al máximo los recursos internos del microprocesador.
  • EJEMPLO DE LENGUAJE DE BAJO NIVEL;subrutina a3ddec (convierte a – 1 byte - a 3 dígitos decimales);par. entrada: a = dato a convertir;par. salida: c = dígito centenas; b = dígito decenas; x = dígito unidades;recursos usados: psw; 1 nivel de pilaa3ddec movw bc,#0 ;centenas y decenas a 0a3ddec1 inc c ;incrementa centenas sub a,#100 ;decrementa en una centena bnc a3ddec1 dec c ;ajusta centenas add a,#100 ;ajusta residuo (<100)a3ddec2 inc b ;incrementa centenas sub a,#10 ;decrementa en una decena bnc a3ddec2 dec b ;ajusta decenas add a,#10 ;ajusta residuo (<10) xch a,x ;x=residuo ret
  • EJEMPLO DE LENGUAJE DE ALTO NIVEL -- escribe en el archivo rom.asc los valores binarios contenidos en el archivo rom.dat -- en formato 1s y 0s ascii (8 bytes por línea y separados un espacio) -- #include <stdio.h> main() {int nbl=8; int i,j,data; FILE *archivodat,*archivoasc; archivodat=fopen("rom.dat","r"); archivoasc=fopen("rom.asc","w"); fprintf(archivoasc,"MSB a la izquierda, LSB a la derecha, primera dirección 0..0 nn"); j=0; while ((data=getc(archivodat))!=EOF) { for (i=0x80;i>0x0;i=i/2) { if ((data&i)>0) fprintf(archivoasc,"1"); else fprintf(archivoasc,"0"); } j++; if ((j%nbl)==0) fprintf(archivoasc,"n"); else fprintf(archivoasc," "); } fclose(archivodat); fclose(archivoasc); }
  • PROCESO DE DESARROLLO DE APLICACIONES CONCEPCIÓN EDICIÓN EDITORES DE TEXTOPROGRAMA FUENTE ERRORES SEMÁNTICOS ERRORES ENSAMBLADORESSINTÁCTICOS MACROENSAMBLADORES TRADUCCIÓN COMPILADORES EDITORES DE ENLACES ("LINKERS") SIMULADORESPROGRAMA PROGRAMADORES OBJETO CARGADORES PUESTA A PUNTO MONITORES DEPURADORES ("DEBUGGERS")
  • HERRAMIENTAS PARA LA TRADUCCIÓN (I)• Existen editores de texto orientados a lenguajes de programación capaces de realizar un análisis sintáctico parcial.• Los ensambladores son traductores que traducen del lenguaje ensamblador de un µP a su lenguaje máquina.• Los compiladores son traductores que traducen de un lenguaje de alto nivel al lenguaje máquina de un µP.• Los macroensambladores son ampliaciones de los ensambladores que soportan el uso de macroinstrucciones definidas por el usuario. Una macroinstrucción es una secuencia de instrucciones que se abrevia con un nemotécnico y que soporta parámetros. ;definición de una macro ;uso de una macro ;expansión de una macro ;(a,x)=(a,x)-(roa,rob) ;(a,x)=(a,x)-(d,e) ;(a,x)=(a,x)-(d,e) ; ; ; s2ax macro roa,rob s2ax d,e xch a,x xch a,x sub a,e sub a,rob xch a,x xch a,x subc a,d subc a,roa endm
  • HERRAMIENTAS PARA LA TRADUCCIÓN (II)• Los programas pueden escribirse en un único módulo o en módulos separados, pero no independientes, ya que tendrán llamadas cruzadas entre ellos.• La primera fase de la traducción (ensamblado o compilación) puede realizarse módulo a módulo, pero las llamadas cruzadas no se pueden resolver. No se obtienen programas ejecutables, pero si listados con indicación de errores y programas objeto.• Para juntar todos los módulos (programas objeto) y resolver las llamadas cruzadas se utiliza otro programa llamado editor de enlaces o “linker”. Se obtiene un listado con los enlaces resueltos y un programa ejecutable. ENSAMBLADO O COMPILACIÓN EDICIÓN DE ENLACES PROGRAMA MÓDULO 1 (F) MÓDULO 1 (O) MÓDULO 2 (F) MÓDULO 2 (O) PROGRAMA (E) MÓDULO 3 (F) MÓDULO 3 (O)
  • HERRAMIENTAS PARA LA PUESTA A PUNTO DE APLICACIONES (I)• En los procesos de edición y traducción suele utilizarse un ordenador de uso general (un PC) o un ordenador especializado en el desarrollo de aplicaciones basadas en µP (sistema de desarrollo).• La puesta a punto, también llamada verificación, de la aplicación puede hacerse sobre el mismo ordenador usado en los procesos de edición y traducción: – Mediante un depurador (“debugger”), si la CPU del ordenador (sistema de desarrollo) es la misma que la del µC usado en la aplicación. Se puede ejecutar el programa en tiempo real. – Mediante un simulador, si la CPU del ordenador (habitualmente, un PC) es distinta de la del µC usado en la aplicación. No se puede ejecutar el programa en tiempo real. Existen simuladores que incorporan facilidades para simular las entradas y salidas de la aplicación.• Entre las facilidades para la verificación de programas que incorporan los depuradores y simuladores se encuentran: – Carga del programa ejecutable. – Ejecución desde cualquier punto, ya sea paso a paso o hasta un punto de paro. – Obtención de una traza (evolución de los ciclos de máquina del microprocesador). – Visualización y modificación del contenido de la memoria (programa y variables), registros de entrada/salida y registros internos del microprocesador.
  • HERRAMIENTAS PARA LA PUESTA A PUNTO DE APLICACIONES (II) Pantalla típica de un simulador de µP de NEC
  • HERRAMIENTAS PARA LA PUESTA A PUNTO DE APLICACIONES (III)La puesta a punto también puede hacerse sobre el propio µC usado en la aplicación(ejecución en tiempo real):• Si la memoria de programa es permanente (EPROM, FLASH), la memoria se puede programar mediante un programador o vía JTAG, pero no se pueden disponer de las facilidades para la verificación propias de los depuradores y simuladores.• Si el microprocesador presenta una arquitectura Princeton y se dispone de memoria RAM suficiente, se puede utilizar parte de la memoria RAM para ubicar el programa. Usando programas adicionales (cargadores/monitores/depuradores), se puede cargar el programa en la memoria RAM y ejecutarlo con las facilidades para la verificación propias de los depuradores y simuladores.
  • HERRAMIENTAS PARA LA PUESTA A PUNTO DE APLICACIONES (IV)• La puesta a punto también puede hacerse sobre un hardware especializado, llamado emulador, que: – Emula al µP usado en la aplicación (funciona como él y lo substituye). – También emula a su memoria de programa (la substituye), implementándola con memoria RAM (memoria de emulación).• El emulador suele controlarse desde el ordenador utilizado en el desarrollo del programa. Se puede: – Cargar el programa en la memoria de emulación. – Ejecutarlo en tiempo real. – Disponer de las facilidades para la verificación propias de los depuradores y simuladores.• Los emuladores pueden disponer de un conector con el “pin-out” del microprocesador que puede conectarse a la placa de la aplicación para acceder a su subsistema de entradas/salidas.
  • HERRAMIENTAS PARA LA PUESTA A PUNTO DE APLICACIONES (V)• Otra herramienta hardware usada en la puesta a punto de programas es el analizador lógico. Permite captar y registrar las señales lógicas presentes en los buses del microprocesador y a partir de estas señales deducir la evolución del programa.• Existen analizadores lógicos de tipo “stand-alone” o integrables a emuladores. Estos últimos utilizan como terminal el del ordenador utilizado en el desarrollo del programa.