SlideShare una empresa de Scribd logo
1 de 14
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
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.
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 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
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 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")
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.

Más contenido relacionado

La actualidad más candente (14)

Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de Programación
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADORFUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
 
Cristian david castro
Cristian david castroCristian david castro
Cristian david castro
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Programacion web introduccion diego zuluaga
Programacion web introduccion diego zuluagaProgramacion web introduccion diego zuluaga
Programacion web introduccion diego zuluaga
 
Lenguaje ensamblador
Lenguaje ensamblador   Lenguaje ensamblador
Lenguaje ensamblador
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Practica1
Practica1Practica1
Practica1
 

Similar a T 25

Unidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre AlgoritmosUnidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre Algoritmosmarthaill10
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONSol López
 
El software 2
El software 2El software 2
El software 2Naudelyn
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de ProgramaciónMaraIsabel87
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionBoris Salleg
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONKathGon1
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónKatherine Gonzales
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00Car_00_01
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorCar_00_01
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoriasirfids
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontroladorTaqui Wajuyat Flor
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)tonytenorio2
 

Similar a T 25 (20)

Unidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre AlgoritmosUnidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre Algoritmos
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 
El software 2
El software 2El software 2
El software 2
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
 
NASM
NASM NASM
NASM
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacion
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoria
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontrolador
 
Exposición CASE - IDE
Exposición CASE - IDEExposición CASE - IDE
Exposición CASE - IDE
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 

T 25

  • 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.