SlideShare une entreprise Scribd logo
1  sur  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.

Contenu connexe

Tendances (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
 

Similaire à Microprocesadores1

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
 

Similaire à Microprocesadores1 (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
 

Plus de IESTP.CAP.FAP. JOSE ABELARDO QUIÑONES

Plus de IESTP.CAP.FAP. JOSE ABELARDO QUIÑONES (20)

Investigación científica.
Investigación científica.Investigación científica.
Investigación científica.
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Taller maracaibo
Taller maracaiboTaller maracaibo
Taller maracaibo
 
Unidades almacenamiento
Unidades almacenamientoUnidades almacenamiento
Unidades almacenamiento
 
Ejercicios en corel
Ejercicios en corelEjercicios en corel
Ejercicios en corel
 
Clase04 guiaslideshare
Clase04 guiaslideshareClase04 guiaslideshare
Clase04 guiaslideshare
 
Tema03 fundamentos computadoras
Tema03 fundamentos computadorasTema03 fundamentos computadoras
Tema03 fundamentos computadoras
 
Clase02 hardware software
Clase02 hardware softwareClase02 hardware software
Clase02 hardware software
 
Clase01 introduccion tic
Clase01 introduccion ticClase01 introduccion tic
Clase01 introduccion tic
 
Clase2 internet
Clase2 internetClase2 internet
Clase2 internet
 
Manual instalacion uso_dropbox
Manual instalacion uso_dropboxManual instalacion uso_dropbox
Manual instalacion uso_dropbox
 
Semana 11 mapa conceptual
Semana 11 mapa conceptualSemana 11 mapa conceptual
Semana 11 mapa conceptual
 
Clase 04 - Guia de slideshare
Clase 04  - Guia de slideshareClase 04  - Guia de slideshare
Clase 04 - Guia de slideshare
 
Guia slideshare
Guia slideshareGuia slideshare
Guia slideshare
 
Clase 03 - Introblogs
Clase 03 - IntroblogsClase 03 - Introblogs
Clase 03 - Introblogs
 
Clase 03 - Introducción a blogs
Clase 03 - Introducción a blogsClase 03 - Introducción a blogs
Clase 03 - Introducción a blogs
 
Clase2 - internet
Clase2 - internetClase2 - internet
Clase2 - internet
 
Tema1 - Introducción a Computación
Tema1 - Introducción a ComputaciónTema1 - Introducción a Computación
Tema1 - Introducción a Computación
 
Apadrina un niño_2011
Apadrina un niño_2011Apadrina un niño_2011
Apadrina un niño_2011
 
Apadrina un niño_2010
Apadrina un niño_2010Apadrina un niño_2010
Apadrina un niño_2010
 

Dernier

Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 

Dernier (20)

Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 

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.