Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Microprocesadores1
1. INTRODUCCIÓN A LOS
MICROPROCESADORES
EMILI LUPON
Departament d’Enginyeria Electrònica
Sección E.T.S.E.I.B. (Campus Sud)
Universitat Politècnica de Catalunya
2. DESARROLLO DE APLICACIONES
BASADAS 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.
3. 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).
4. 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.
5. 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 pila
a3ddec movw bc,#0 ;centenas y decenas a 0
a3ddec1 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
6. 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);
}
7. PROCESO DE DESARROLLO DE
APLICACIONES
CONCEPCIÓN
EDICIÓN EDITORES DE TEXTO
PROGRAMA
FUENTE
ERRORES
SEMÁNTICOS
ERRORES ENSAMBLADORES
SINTÁCTICOS MACROENSAMBLADORES
TRADUCCIÓN
COMPILADORES
EDITORES DE ENLACES ("LINKERS")
SIMULADORES
PROGRAMA PROGRAMADORES
OBJETO CARGADORES
PUESTA A PUNTO
MONITORES
DEPURADORES ("DEBUGGERS")
8. 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
9. 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)
10. 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.
11. HERRAMIENTAS PARA LA PUESTA A
PUNTO DE APLICACIONES (II)
Pantalla
típica de un
simulador
de µP de
NEC
12. 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.
13. 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.
14. 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.