64
ÁREA DE ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES (DEPTO. DE ARQUITECTURA DE COMPUTADORES, ELECTRÓNICA Y TECNOLOGÍA ELECTRÓNICA UNIVERSIDAD DE CÓRDOBA) PRONTUARIO DEL ENTORNO DE DESARROLLO KEIL μVision ® 4 PARA LA FAMILIA DE MICROCONTROLADORES MCS51

Prontuario del Enrotno Keil uVision 4

Embed Size (px)

Citation preview

  • REA DE ARQUITECTURA Y TECNOLOGA DE COMPUTADORES (DEPTO. DE ARQUITECTURA DE COMPUTADORES,

    ELECTRNICA Y TECNOLOGA ELECTRNICA UNIVERSIDAD DE CRDOBA)

    PRONTUARIO DEL ENTORNO DE DESARROLLO KEIL Vision 4

    PARA LA FAMILIA DE MICROCONTROLADORES

    MCS51

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 2

    Referencia del documento: P_KuV4_v1.0

    Fecha: 11 de marzo de 2010

    Sustituye a: P_KuV4_v0.0

    Fecha:8 de marzo de 2010

    Sustituido por:

    Fecha:

    AUTOR: Prof. Antonio Moreno Fernndez-Caparrs Depto. de Arquitectura de computadores, electrnica y tecnologa electrnica rea de Arquitectura y Tecnologa de Computadores Universidad de Crdoba 11 de marzo de 2010 Crdoba, Espaa

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 3

    NDICE PREFACIO. 5 0 INTRODUCCIN .. 6 0.1 Componentes del sistema Vision.............................................................. 6 1 ASPECTO DE LA APLICACIN 9 1.1 La filosofa de las ventanas en Vision 4. 9 1.2 Redistribucin de la zona de trabajo y dems ventanas.. 12 2 CREACIN DE UN PROYECTO. 17 2.1 Creacin 17 2.2 Apertura de un proyecto. 19 3 EDICIN DEL CDIGO FUENTE .. 20 3.1 Creacin y guardado de un fichero fuente. 20 3.2 Asociacin de un fichero a un proyecto.. 21 3.3 Apertura y edicin de un mdulo de cdigo fuente.. 22

    4 CONSTRUCCIN DEL FICHERO EJECUTABLE FINAL............ 23

    4.1 Ensamblaje y montaje de los mdulos 23 4.2 Definicin de las opciones de construccin de un proyecto 24 Creacin del fichero de salida HEX para programacin de C.. 24 4.3 Diferencia entre Ensamblar, Construir y Reconstruir una aplicacin... 26 4.4 Gestin de errores en el ensamblado y montado. 26 4.5 Caso de programacin en lenguaje C: opciones de compilacin.. 27 Opciones del nivel de optimizacin del cdigo. 30 Opciones del nfasis en la compilacin. 30

    5 DEPURACIN DEL CDIGO I: EL ENTORNO Y SU CONFIGURACIN. 30

    5.1 Inicio de una sesin de depuracin. 30 5.2 Aspecto del entorno en modo depuracin.. 31 5.2.1 La ventana de registros internos. 32 5.2.2 La ventana de edicin.. 33 5.2.3. La ventana de desensamblado.. 34 Modos de visualizacin: mixto o slo en ensamblador. 35 5.2.4 La zona de anlisis... 36 Ventanas de memoria, de observacin, de variables, de smbolos y de pila de llamadas... 36 5.2.5 La ventana de rdenes. 36 5.3 Pasos previos a la depuracin del cdigo. 37 5.3.1 Primero: abrir las ventanas no presentes.. 37 5.3.2 Segundo: reubicar, formatear y redimensionar las ventanas. 40 5.3.3 Tercero: definir y dar contenido a las ventanas 41 5.3.3.1 Contenidos en la memoria 41 5.3.3.2 Contenidos en la ventana de observacin. 42 Cmo aadir un elemento.. 42 Cmo eliminar un elemento 43 Cmo cambiar el sistema numrico de representacin 43 5.3.4 Introduccin de valores numricos en las ventanas 44 5.3.4.1 Cdigo de colores en las ventanas de memoria.. 46 5.3.4.2 Formato numrico de los valores introducidos 47 Sistemas de numeracin admisibles... 47 Posibilidad de uso de caracteres ASCII equivalentes... 47 Especificacin alternativa de valores binarios 47 5.3.4.3 Fijacin del sistema de numeracin por defecto. 47

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 4

    6 DEPURACIN DEL CDIGO II: COMANDOS PARA LA DEPURACIN 48 6.1 Opciones del men de depuracin 48 6.2. Control de la depuracin mediante la barra de herramientas. 49 6.2.1 Opciones avanzadas de depuracin. 50 Ventana de analizador lgico, ventana de anlisis de rendimiento, ventana de uso del cdigo y ventana de traza de instrucciones 50 6.3 Control de la ejecucin: paso a paso y ejecucin hasta una lnea. 51 6.4 El trabajo con los puntos de ruptura 52 6.4.1 Cmo poner/quitar rpidamente una ruptura 53 6.4.2 Codificacin por colores de los puntos de ruptura.. 53 6.5 Atajos mediante teclado 54

    7 FINALIZACIN DEL TRABAJO. 54 8 AYUDA EN LNEA. 54 APNDICE 1: RESUMEN DE PASOS PARA CREAR UN PROYECTO, EDITAR EL

    CDIGO FUENTE Y DEPURARLO.. 55 ANOTACIONES. 57

    NDICE DE FIGURAS 61

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 5

    PREFACIO En este prontuario slo se van a presentar las funciones bsicas para poder afrontar el desarrollo y la depuracin de cdigo ensamblador para los microcontroladores de la familia MCS51. En las figuras de los ejemplos comentados se podr observar, frecuentemente, que en los mens aparece una serie de opciones de las que algunas ni se mencionan. Esto ha sido as por dos motivos: o bien porque slo resultan tiles en casos muy particulares y excepcionales (normalmente en el desarrollo profesional de grandes aplicaciones, utilizndose en la programacin el lenguaje C o mixto C y ensamblador) o bien porque su utilidad es secundaria y muy intuitiva de captar a poco que se interacte con el entorno de desarrollo Vision 4 de Keil y se tengan unos slidos fundamentos de la filosofa de trabajo con herramientas que se ejecutan bajo el sistema operativo Windows. Por otro lado, algunas de las funciones comentadas pueden realizarse adems de por el o los mtodos indicados tambin por otros medios no explicitados. Queda a criterio del lector el curiosear por su cuenta en la ayuda en lnea para advertir esto. A pesar del carcter de prontuario de este documento, que por ello resulta forzosamente sinttico, con lo aqu esbozado se tiene ms que suficiente para hacer uso de los recursos que en el 99% de los casos se necesitarn en un trabajo de pequea o mediana escala. Y, por supuesto, en el 100% de un trabajo estudiantil. Si el lector estuviese manejando la versin electrnica de este documento, entonces aquellas imgenes cuyo texto no se aprecie bien y se desee verlo con detalle pueden aumentarse de tamao actuando en el visor (por ejemplo, Acrobat Reader) con la opcin o herramienta de ampliar. La resolucin de las imgenes es la misma que se tendra si se observasen en pantalla al ejecutar la aplicacin Vision 4. Para finalizar, y bajo la premisa latina de que errare humanum est, es posible que a pesar de la atencin prestada durante la revisin del documento pueda el lector encontrar algn tipo de error en este prontuario, sea de forma o de fondo. Si fuese ste el caso se agradecer se ponga en conocimiento del autor para proceder a corregirlo en futuras versiones del documento. Las comunicaciones pueden dirigirse a la siguiente cuenta de correo electrnico:

    [email protected]

    Igualmente son bienvenidas las sugerencias y comentarios que se estimen oportunos. Crdoba, marzo de 2010

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 6

    0. INTRODUCCIN El entorno de desarrollo Vision de Keil es una herramienta de carcter profesional de enorme calidad que junto con alguna que otra ms se ha convertido en un estndar de facto para el desarrollo de aplicaciones basadas en la familia de microcontroladores MCS51. Aunque la filosofa de esta herramienta se ha venido manteniendo de versin a versin, en lo concerniente a la interfaz con el usuario Vision 4 presenta algunos rasgos que la distinguen con respecto a su precedente versin, Vision 3. Por este motivo se comienza este prontuario comentando las peculiaridades del nuevo aspecto de la interfaz grfica de usuario, as como la filosofa de trabajo y configuracin de las diversas ventanas que componen el entorno. El entorno Vision 4 de Keil presenta dos modos bsicos de trabajo:

    Modo principal o de proyecto Modo de depuracin

    En el modo de proyecto la interfaz del entorno se presenta adecuada para la gestin de un proyecto de programacin, con lo que conlleva de definicin de sus caractersticas, tipo de procesador a utilizar, partes en las que se decide subdividir su desarrollo, definicin de las tcnicas de optimizacin en la compilacin si se programa en lenguaje C, gestin de los diversos mdulos de cdigo fuente a la hora de construir la aplicacin final, tipo de archivos o ficheros a generar al ensamblar (o compilar) y montar, documentacin asociada al proyecto, etctera, por slo mencionar algunas de las cuestiones involucradas en la gestin de un proyecto. Una vez finalizada la creacin de un proyecto y ya disponible la aplicacin final, resulta imprescindible realizar la depuracin funcional del cdigo desarrollado. Para ello Vision 4 ofrece el modo de depuracin, mediante el que se puede la llevar a cabo a travs de la ejecucin real del cdigo volcndolo previamente en alguna placa de desarrollo o en la final que soportar en la realidad el cdigo. Vision 4 permite el enlace del entorno con este tipo de placas, bien sean tambin de Keil, bien de terceras partes o propias. Tambin es posible realizar la depuracin sin un soporte fsico que ejecute realmente el cdigo. Para ello Vision 4 integra un excelente simulador con el que se puede simular el funcionamiento del procesador incluyendo todos los perifricos que ste pueda incorporar. 0.1 Componentes del sistema de Vision El entorno Vision 4 engloba una serie de componentes mediante los que se pueden llevar a cabo los procesos inherentes al desarrollo y depuracin de aplicaciones. En la figura siguiente se muestra un esquema de cmo se interrelacionan stos. Los componentes son los siguientes:

    El EDI de Vision. El entorno de desarrollo integrado (EDI, o IDE en ingls) combina, entre otras caractersticas:

    - La gestin de proyectos

    - Un editor especficamente concebido para este tipo de aplicaciones y dotado con correccin interactiva de errores

    - Ajuste de opciones

    - Utilidades de construccin de la aplicacin

    - Ayuda en lnea.

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 7

    C51 (Compilador) y A51 (Macroensamblador). Los archivos o ficheros fuente creados con el EDI de Vision se pasan al compilador C51 o al macroensamblador A51. Estos componentes los procesan y generan los ficheros objeto reubicables que sern procesados por el mdulo montador. El compilador C51 de Keil es totalmente conforme con la especificacin ANSI del lenguaje de programacin C. Adems, contempla caractersticas adicionales para la arquitectura MCS51. El macroensamblador admite el repertorio comn completo del 8051 as como el de todos sus derivados, algunos de los cuales poseen un repertorio ampliado. Adems, como tal macroensamblador, admite el uso de macros en la escritura del cdigo.

    LIB51: Gestor de libreras. Este componente permite al usuario crear libreras de mdulos objeto generados por el compilador y el macroensamblador. Las libreras son una coleccin de mdulos objeto especialmente formateada, que constituye un conjunto de programas o subrutinas llamables desde el proyecto del usuario y que pueden ser tomadas selectivamente por el montador en el momento de generar la aplicacin final. La ventaja de disponer de una coleccin de libreras de funciones es que el programador no tiene que disear por su cuenta aquellas subrutinas o funciones que se encuentren en ellas. El paquete de software Vision incluye una serie de libreras que ofrecen, por ejemplo, funciones de tipo matemtico con aritmtica de coma fija, de emulacin de coma flotante, etctera. A estas libreras el usuario puede aadirles sus propias funciones diseadas ex profeso o crear otras libreras nuevas con el gestor de libreras que ofrece el entorno de desarrollo.

    Compilador de C

    Macro-ensamblador

    Gestor de libreras

    Librera de usuario

    Vision: IDE con editor y constructor de aplicacin

    Vision: depurador

    Simulacin de la UCP y

    de los perifricos

    Adaptador JTAG

    (ULINK de Keil)

    Emulador o programador de 3 partes

    Interfaz con la placa de aplicacin

    Montador / Ubicador

    Librera de C

    Fig. 0.1: Componentes del sistema Vision de Keil

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 8

    BL51: Montador / Ubicador La misin de este componente es crear un archivo o fichero absoluto tipo ELF/DWARF a partir de los creados por el compilador o el macroensamblador as como, si es el caso, de los extrados de las libreras por ser referidos por el programador al crear su cdigo de aplicacin. Un fichero objeto absoluto se caracteriza por no poseer cdigo reubicable, sino que ha de ubicarse en posiciones concretas de la memoria. Este archivo absoluto generado por el montador se usa para alguna de las siguientes cuestiones:

    - Programar la ROM tipo FLASH de un microcontrolador, u otros tipos de memorias. Se usa el fichero en formato HEX generado por el montador.

    - Simulacin o depuracin en placa, mediante Vision en modo depuracin.

    - Verificacin real del programa mediante un emulador en-circuito. Todos los entornos de desarrollo incluyen una utilidad que suele denominarse Make y que permite generar de manera muy cmoda la aplicacin final incluso cuando el desarrollo est constituido por innumerables mdulos de cdigo fuente. Como se ver ms adelante, esta utilidad hace un uso automtico de los mdulos compilador, ensamblador y montador selectivamente sobre los ficheros fuente que lo precisen. En el entorno Vision esta utilidad make recibe el nombre de Build (construir).

    Depurador Vision Se trata de un depurador simblico al nivel del cdigo fuente, es decir, que el seguimiento de la ejecucin y la interactuacin se pueden hacer sobre el propio cdigo fuente. Esto lo hace ideal para una depuracin rpida, inteligible y fiable del cdigo desarrollado. Incluye un veloz simulador capaz de simular un sistema completo basado en el 8051 o cualquier otro derivado de la familia, as como todos los perifricos existentes (previa seleccin del dispositivo en una lista de procesadores soportados) y hardware externo. Tambin permite probar la aplicacin desarrollada; entindase en la placa real sobre la que se ejecutar. Esto se puede realizar de distintas maneras:

    - Instalando el monitor MON51 en la placa y descargando el programa de aplicacin usando la interfaz con MON51 integrada en Vision. MON51 forma parte del paquete Vision.

    - Usando la interfaz AGDI, para utilizar el depurador de Vision en la

    observacin de los recursos del sistema real. En el caso de los derivados XC8xx de Infineon (antiguamente SIEMENS) y PSD33xx/34xx de ST, el adaptador USB-JTAG ULINK de Vision permite usar la interfaz de depuracin del entorno pero slo para presentar los resultados de tal proceso e interactuar con l. La depuracin propiamente dicha la lleva a cabo el sistema de depuracin integrado en el propio microcontrolador. La interconexin entre Vision y la placa con el dispositivo se realiza mediante un aparato adaptador USB-JTAG. Dicho adaptador se conecta mediante un cable USB al computador en que se ejecuta Vision, y mediante una conexin JTAG a la placa con el microcontrolador.

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010 9

    1. ASPECTO DE LA APLICACIN El aspecto que por defecto presenta Vision 4 la primera vez que se entra en ella es el que se ve en la figura: En la parte superior se encuentra la barra de men, mediante la cual se puede acceder a todas las opciones de Vision 4 de Keil, y debajo de ella se encuentra la barra de herramientas, con los iconos de las funciones ms usuales. Estos iconos suponen un atajo alternativo para realizar tales tareas.

    Es importante advertir que si ya se hubiese trabajado con algn proyecto y se hubiese modificado la apariencia y forma de las ventanas de la interfaz, entonces al entrar en Vision 4 se mostrar la interfaz exactamente igual a como qued al cerrase la aplicacin la ltima vez en la que se trabaj con ella. 1.1. LA FILOSOFA DE LAS VENTANAS EN KEIL Vision 4 En el entorno de depuracin Vision 4 de Keil existen dos tipos de ventanas bsicas:

    Las tpicas del sistema operativo Windows, manejables como tales. Las especficas de Vision 4, que aparecen o pueden aparecer dentro de una ventana

    Windows. Por ejemplo, las dos mostradas en la primera figura: las de gestin del

    barra de men y herramientas

    ventana de gestin de proyecto

    ventana de salida de la construccin

    Zona de trabajo para nuevas ventanas que puedan abrirse

    en la edicin o depuracin

    Fig. 1.1: Aspecto inicial de la aplicacin

    barra de men barra de herramientas

    Fig. 1.2: la barra de men y de herramientas

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    10

    proyecto y la salida de construccin, entre otras. En estas ventanas, en la esquina superior derecha, pueden aparecer los controles mostrados a continuacin:

    1.1.1. Control de la posicin de la ventana Al pinchar con el ratn en este smbolo se despliega el men con los posibles tipos de

    posicionado de la ventana.

    Flotante (floating): La ventana se independiza y aparece flotando. Con el ratn es posible redimensio-narla, arrastrarla y ubicarla donde se desee, tal y como se hara con una de Windows. Una manera rpida de hacer una ventana flotante, partiendo de una situacin acoplada, y viceversa, es con una doble pulsacin izquierda del ratn en la barra con su descripcin.

    Acoplada (docking): La ventana aparece acoplada solidariamente a otras dentro de la

    ventana Windows de Vision4 en la que se encuentre. Es la opcin por defecto.

    Documento con pestaa (tabbed document): La ventana aparece en la zona de trabajo, con una pestaa identificadora en la parte superior. Si ms de una ventana se ha puesto de esta manera, las pestaas aparecen escalonadas, como en un archivador de fichas, y pinchando en cada pestaa se hace visible el documento (ventana) oportuno. Apuntando una pestaa y pulsando el botn derecho del ratn emergen las posibles opciones a realizar con dicha ventana.

    Para volver a la organizacin por defecto es necesario hacer Windows Reset View to defaults en la barra de men.

    Auto-ocultable (Auto Hide): Con esta opcin la ventana se oculta de modo que aparece a la izquierda una pestaa vertical. Cuando el ratn se mueve y entra en esta pestaa (sin necesidad de pulsacin alguna) entonces aparece la ventana, no desapareciendo hasta que el ratn sale de su rea, en cuyo caso se colapsa. Obsrvese en este ejemplo que la ventana de Documentos (books) se auto-oculta, mientras que la de Funciones est visible (acoplada). Si el ratn pasase por encima de la pestaa oculta, emergera la ventana tal y como puede verse en la figura que sigue.

    Control de la posicin de la ventana

    Cerrar ventana Auto-ocultar

    Fig. 1.3: Smbolos de control de una ventana

    Fig. 1.4: Opciones de posicin

    Pestaa de la ventana de proyecto (no visible)

    Pestaa de la ventana de documentos (visible)

    Pestaa de la ventana de plantillas (no visible)

    Fig. 1.5: Documentos con pestaa

    Fig. 1.6: Ventana auto-ocultable

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    11

    Obsrvese cmo el ratn se hace pasar por encima de la pestaa. En ese momento emerge la ventana, con lmite por la derecha el de la ventana Vision 4 en la que se halle (la ocupa en su totalidad), y lmite inferior el de la ventana de Windows de la aplicacin. Al hacerse visible la ventana, como se aprecia en la figura superior, puede observarse que el icono Auto-ocultar se muestra con cambio de orientacin (horizontal en lugar de vertical). Para colapsar y hacer desaparecer la ventana basta con ubicar el ratn fuera de sus lmites.

    Ocultar (Hide): Cierra definitivamente la ventana. Por supuesto, puede volver a abrirse.

    1.1.2. Auto-ocultar El smbolo Auto-ocultar ofrece una va rpida de conseguir esta caracterstica para una ventana en lugar de tener que hacerlo va smbolo de control de la Posicin de la Ventana. 1.1.3. Cerrar Se trata del tpico smbolo para cerrar una ventana. Cuando se cierra una ventana se puede volver a abrirla (o cerrarla si estuviese abierta) de una de estas dos formas:

    Mediante la barra de men, haciendo View . Mediante la barra de herramientas, con el icono de Ventana de Proyecto.

    Al pinchar en la zona del tringulo, se despliega un men con las distintas ventanas y su estado (abierta o cerrada). Pinchando en una concreta se conmuta su estado.

    Fig. 1.7: a) Ventana auto-ocultada a punto de reaparecer

    b) Ventana reaparecida

    ratn pasando por encima de la pestaa

    Smbolo cambiado de orientacin. Si se pincha, se anula la auto-ocultacin

    Fig. 1.8: Apertura de la ventana de proyecto

    a) Por barra de men

    a) Por barra de herramientas

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    12

    1.2. REDISTRIBUCIN DE LA ZONA DE TRABAJO Y DEMS VENTANAS En la zona de trabajo, ya se ha dicho que se pueden abrir diversas ventanas en el proceso de creacin y trabajo con un proyecto, o en la fase de depuracin funcional. Por defecto, en la zona de trabajo las ventanas aparecen en su forma de documentos con pestaa, ya comentada. La zona de trabajo puede cambiarse de aspecto y de organizacin. Para ello es necesario actuar sobre alguna o algunas de las restantes ventanas, lo que origina un cambio conjunto de la distribucin de todas las ventanas y zona de trabajo. Los procesos que se van a comentar se pueden aplicar sucesivamente con diferentes ventanas o pestaas una tras otra. La manera de proceder es la siguiente: Primero, pnchese en la barra superior de la ventana que se desee reorganizar (o en la

    pestaa oportuna en el caso de una organizacin en pestaas y que slo se desee reubicar esa pestaa en concreto y no todas las de la ventana). En el ejemplo, pestaa de Proyecto.

    Manteniendo pulsado el botn izquierdo del ratn, arrstresela. En ese preciso momento

    aparecern unos smbolos u operadores de organizacin, tal y como se aprecia en la figura.

    operador de ubicacin independiente, acoplada en la zona superior del entorno de desarrollo

    (1)

    operador de ubicacin independiente, acoplada en la zona lateral derecha

    del entorno de desarrollo (3)

    operador de ubicacin independiente, acoplada en la zona lateral izquierda del entorno de desarrollo (4)

    operador de ubicacin independiente, acoplada, con tamao limitado al de

    la ventana junto a la que se ubica (Gestin de Proyecto en este ejemplo) (5.1, 5.2, 5.3, o 5.4)

    operador de ubicacin independiente, acoplada en la zona inferior del entorno de desarrollo (2)

    Esta ventana flotante aparece al arrastrar la ventana o pestaa deseada

    operador de ubicacin en la zona del entorno, en forma de ventana de documento con pestaa (6)

    Fig. 1.9: Redistribucin de ventanas mediante arrastre

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    13

    Dependiendo de cmo se quiera reorganizar el aspecto de la ventana o pestaa, se arrastrar hasta que el puntero del ratn se coloque sobre el smbolo de organizacin deseado. Existen las siguientes posibilidades: 0. Dejarla flotante; para ello se deber soltar la ventana sin que se haga sobre ninguno de

    los smbolos de organizacin.

    1. Ubicarla acoplada en la parte superior de la ventana general de Windows.

    2. Ubicarla acoplada en la parte inferior de la ventana general de Windows.

    3. Ubicarla acoplada en la parte lateral derecha de la ventana general de Windows.

    4. Ubicarla acoplada en la parte lateral izquierda de la ventana general de Windows.

    5.1 Ubicarla acoplada encima de la ventana local del entorno Vision.

    5.2 Ubicarla acoplada debajo de la ventana local del entorno Vision.

    5.3 Ubicarla acoplada a la derecha de la ventana local del entorno Vision.

    5.4 Ubicarla acoplada a la izquierda de la ventana local del entorno Vision.

    6. Ubicarla en una zona del entorno, en forma de ventana de documento con pestaa.

    En los casos 1, 2, 3 y 4 la ventana se extiende todo el ancho de la ventana Windows, mientras que en los casos 5.n la ventana adopta un tamao ajustado al de esa zona o ventana local.

    Cada vez que el puntero del ratn se coloca sobre uno de esos smbolos, se sombrea en la pantalla la zona donde se ubicar la ventana que se quiere reubicar y reorganizar. Esto puede verse en la figura siguiente:

    Al ubicar el puntero del ratn en el smbolo, se sombrea la zona que ocupar la ventana o pestaa reubicada)

    Fig. 1.10: Efecto del arrastre de una pestaa, ventana o zona del entorno: marcado de zona de ubicacin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    14

    Si en el caso del ejemplo de la figura anterior se soltase el ratn, el efecto sera el mostrado en la figura que sigue:

    A continuacin, a modo de resumen visual, se presentan algunas otras posibilidades.

    Fig. 1.12

    Fig. 1.11: Resultado de reubicacin a la izquierda del entorno

    Fig. 1.13

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    15

    Ejemplos de ubicacin junto a la ventana de gestin del proyecto. Primero a su izquierda

    y luego arriba de ella:

    Ahora, un ejemplo de ubicacin junto a la zona de trabajo, a su izquierda:

    Fig. 1.14

    Fig. 1.15

    Fig. 1.16

    Fig. 1.17

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    16

    Si lo que se desea es ubicar la ventana en la zona de trabajo, con forma de documento con pestaa, hay que arrastrar la ventana o pestaa hasta algn punto de la zona de trabajo. Al aparecer los smbolos de ubicacin, apntese con el puntero al centro de la cruz y sultese. Automticamente aparecer la pestaa en la zona de trabajo. Tngase en cuenta que si lo que se arrastra es una ventana compuesta por varias pestaas entonces se trasladarn todas las pestaas. Lo dicho anteriormente se ilustra en los siguientes ejemplos. Ejemplo de traslado de la pestaa de proyecto a la zona de trabajo:

    Ejemplo de traslado de todas las ventanas (pestaas) en la zona de gestin del proyecto a la zona de trabajo: Primero (fig 1.19.a) se arrastra desde la parte superior de la ventana, luego (fig.1.19.b) se mueve hasta algn punto de la zona de trabajo:

    Como se ve en fig.1.19.b, desaparece la ventana de su ubicacin original y se expande la zona de trabajo. Al aparecer los smbolos de ubicacin, se sigue arrastrando hasta apuntar (fig.1.19.c) con el puntero del ratn el smbolo del centro de la cruz que representar, en este caso, la zona de trabajo. Entonces (fig.1.19.d) se suelta el ratn y automticamente se ubican las ventanas en forma de documentos con pestaas:

    Obsrvese cmo se ha aadido la pestaa de la ventana de Proyecto

    Fig. 1.19: a)

    Fig. 1.18

    b)

    d) c)

    Obsrvese cmo se ha aadido la pestaa de la ventana de Proyecto

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    17

    2. CREACIN DE UN PROYECTO Para el trabajo con Vision 4 de Keil, antes de hacer nada hay que crear un proyecto. 2.1. Creacin de un proyecto.

    Si no estuviese ya creado, para crearlo hgase lo siguiente:

    ProjectNew Vision Project

    Si ya se hubiese creado el proyecto anteriormente, entonces habra que abrir el proyecto. Esto se puede hacer mediante la barra de men va ProjectOpen Project. Tambin, como alternativa, se puede abrir un proyecto ya existente seleccionndolo de entre los que aparezcan relacionados en la parte inferior del men desplegable que se abre al seleccionar la opcin Project en la barra de men. Esto se puede advertir en la figura de arriba. Los proyectos que aparecen relacionados son los que se hayan abierto ltimamente; es decir, los proyectos ms recientes con los que se haya trabajado. En la figura precedente tambin puede observarse que ciertas opciones no aparecen elegibles (estn en gris claro) debido a que en este caso no existe ningn proyecto abierto. Si lo estuviese ya uno, entonces estas opciones seran aplicables a dicho proyecto. Por ejemplo, las funciones de cerrar proyecto (Close Project), seleccionar dispositivo (Select Device for Target), suprimir elemento (Remove Item), construir aplicacin (Build target), etctera. Cuando se crea un proyecto nuevo, en la ventana que se abre dsele nombre al proyecto y ubqueselo en la carpeta que se desee (si no existiese, crese). Esta ventana es una tpica ventana de Windows de apariencia y funcionalidad similar a la que aparece cuando con cualquier aplicacin se va a abrir o guardar un fichero. A travs de ella se puede navegar por la estructura de directorios o carpetas de las distintas unidades de almacenamiento que puedan existir, as como incluso crear nuevas carpetas o realizar las dems funciones posibles de trabajo con archivos o ficheros. Si se tienen conocimientos slidos de la filosofa de trabajo con un sistema operativo basado en ventanas, como por ejemplo Windows, se sabr a qu nos estamos refiriendo. En la figura que sigue puede observarse lo dicho:

    Fig. 2.1: Nuevo proyecto

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    18

    A continuacin, se abrir otra ventana en la que hay que seleccionar el procesador que se vaya a utilizar. Para ello se selecciona el fabricante pinchando en su nombre o en el smbolo + de la relacin, ante lo cual se expande y aparecen los diferentes dispositivos existentes para dicho fabricante, tal y como puede observarse en la siguiente figura:

    De entre las diferentes referencias de microcontroladores, se busca y elige el deseado. En nuestro caso ser la CPU de ATMEL, AT89S52, pero bien pudiera ser cualquier otro.

    Fig. 2.2: Ventana para dar nombre y ubicar el proyecto

    Fig. 2.3: Ventana para seleccionar el fabricante del dispositivo

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    19

    Esto puede verse en la siguiente figura:

    A continuacin se pregunta si se desea copiar al proyecto un fichero con una plantilla para iniciar el cdigo que se vaya a escribir. Respndase S o No segn se desee (inicialmente, eljase NO). 2.2. Apertura de un proyecto.

    Una vez que se haya creado un proyecto, cada vez que se vaya a trabajar se empezar abriendo el proyecto, caso de no estarlo ya por defecto, haciendo en la barra de men:

    ProjectOpen Project

    En la ventana que se abre (una tpica de Windows para trabajar con ficheros), bsquese y seleccinese el proyecto. Inicialmente, y salvo que se haya dicho que s a la pregunta de copiar al proyecto una plantilla de partida, el proyecto estar vaco. Un proyecto es una abstraccin y representa el conjunto de ficheros de cdigo fuente en que se haya estimado conveniente dividir la escritura de un programa, as como otros documentos asociados.

    Fig. 2.4: Ventana para seleccionar el modelo de microcontrolador

    Fig. 2.5: Ventana para incluir o no una plantilla al proyecto

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    20

    3 EDICIN DEL CDIGO FUENTE

    3.1. Creacin y guardado de un fichero fuente

    En nuestro caso, slo se crearn proyectos con un nico fichero fuente. Lo primero, si no se ha creado ninguno, ser asociar uno al proyecto (tambin, en el transcurso de un desarrollo es posible ir aadiendo, si se estima conveniente, nuevos ficheros o mdulos fuente). Para ello, lo primero es crear un fichero: FileNew Se abrir la ventana de edicin y se podr ya escribir el cdigo. Debe guardarse el fichero abierto, haciendo FileSave as para dar nombre al fichero y guardarlo en donde se haya creado el proyecto. El nombre se le puede dar el que se desee, no teniendo por qu coincidir con el del proyecto (cosa lgica si se piensa que un proyecto puede estar compuesto por varios mdulos o ficheros, repartindose el cdigo fuente total entre ellos en lugar de meter todo el cdigo en un gran y nico fichero). Como extensin del fichero, utilcese preferiblemente ASM (por assembler) o A51 (por assembler 8051), o incluso S, SRC (por source en ambos casos) o A (por assembler).

    Fig 3.1: a) Creacin de fichero va barra de men b) dem va barra de herramientas

    Fig. 2.6: Ventana con las opciones de proyecto

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    21

    3.2. Asociacin de un fichero a un proyecto Es necesario agregar los ficheros fuente a un proyecto. Para ello, si no estuviese ya abierta, brase la ventana de proyecto en ViewProject window. Aparecer la estructura que se le haya dado al proyecto. Cuando est vaco, cuelga de Target 1 el grupo1.

    Una vez hecho lo anterior, pnchese en Source Group1 y con el botn derecho del ratn se desplegar un submen. Seleccinese entonces la opcin Add Files to Group

    b) Apertura de ventana de proyecto mediante la barra herramientas

    a) Apertura de la ventana de proyecto en barra de men

    c) Resultado de la apertura de la ventana del proyecto

    Fig. 3.2: Modos de abrir un proyecto

    Fig. 3.3: Asociacin de un fichero a un proyecto

    Nombre del proyecto abierto

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    22

    En la ventana que se despliega, bsquese seleccinese el fichero deseado.

    . (si se programa en ensamblador, asegrese de que la plantilla de bsqueda de ficheros es ASM source file o bien All files).

    Para asociar un fichero a un proyecto no es necesario que est escrito del todo; estando vaco tambin es posible asociarlo.

    3.3. Apertura y edicin de un mdulo de cdigo fuente

    Una vez creado un proyecto y asociado(s) un(os) fichero(s), tambin es posible editar uno de ellos abrindolo. La manera ms directa es, en la ventana de proyecto, pincharlo con el ratn (doble pulsacin con el botn izquierdo, o botn derecho y seleccin de Open en el men desplegable). Otra manera es actuando sobre el icono de apertura de fichero, en la barra de herramientas, y buscando y seleccionndolo en la ventana subsiguiente (tpica ventana de Windows de bsqueda y seleccin de un fichero en una estructura de carpetas).

    El fichero seleccionado queda, as, aadido al proyecto

    Fig. 3.6: a) Apertura mediante men local b) Apertura en barra de herramientas

    Fig. 3.4: Asociacin de un fichero a un proyecto

    Fig. 3.5: Resultado de la asociacin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    23

    Al abrir un fichero, ste puede editarse en la ventana de edicin que se abre:

    Para ello bastar ubicar el cursor en la ventana de edicin, y comenzar a escribir. Esta ventana, por defecto, se ubica en la zona de trabajo, en forma de documento con pestaa.

    4. CONSTRUCCIN DEL FICHERO EJECUTABLE FINAL 4.1. Ensamblaje y montaje de los mdulos

    Una vez que se ha terminado de editar los ficheros que conforman un proyecto, hay que crear la aplicacin final para poderla depurar. Para ello, plsese con el botn derecho sobre Target 1 en la ventana de proyecto. Seleccinese Build target. En la ventana de salida se informar de las incidencias del proceso de ensamblado y de montaje de los diferentes mdulos fuente que constituyan el proyecto. Otro camino es va barra de herramientas.

    Fig. 4.1: a) Construccin de la aplicacin final b) dem mediante la barra de mediante men local herramientas

    Fig. 3.7: Ventana de edicin lista para ser usada

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    24

    4.2. Definicin de las opciones de construccin de un proyecto Si se tiene intencin de programar la FLASH ROM de un microcontrolador, entonces es necesario asegurarse al hacer Build target de que se va a crear el fichero hexadecimal que necesitan los equipos de programacin de MCUs. Para ello, hgase lo siguiente:

    ProjectOptions for target Target 1 Otra manera es hacerlo mediante el oportuno icono de la barra de herramientas.

    Se abrir una ventana, y en la pestaa Output se deber activar la opcin Create HEX file. Tambin, en la pestaa Target pngase la frecuencia del cristal que se vaya a utilizar en el diseo y mrquese la opcin Use on-chip ROM. Lo primero resulta til en ciertos casos de depuracin en los que para una adecuada simulacin se precisa una medicin de tiempos no tanto en ciclos mquina sino en valor absoluto. Si no se supiese la frecuencia de trabajo entonces no sera posible llevar a cabo adecuadamente el anlisis de la depuracin. Sobre la opcin Use on-chip ROM, sta se refiere a informar que en el diseo que se est llevando a cabo se usar la ROM interna de programa. De esta manera el depurador puede saber cmo comportarse. Tngase en cuenta que existe una tcnica de desarrollo de cdigo mediante conmutacin de bancos (bank switching, en ingls), y esta tcnica no es aplicable con la ROM interna de programa.

    Fig. 4.2: a) Seleccin de las opciones

    de salida en men emergente

    Fig. 4.2: b) dem mediante la barra de herramientas

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    25

    En caso de diseos con memoria externa de programa y de datos externos, esto permite asegurarse de que no se excede su tamao

    Frecuencia de trabajo

    Se trabajar con la ROM interna de programa

    Fig. 4.3: Pestaa con las opciones de salida de un proyecto

    Fig. 4.4: Pestaa para la definicin del sistema microcontrolador

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    26

    4.3. Diferencia entre Ensamblar, Construir y Reconstruir La diferencia entre Rebuild target y Build target es que la primera ensambla y enlaza todos los mdulos, mientras que la segunda slo ensambla aquellos mdulos que hayan sido cambiados desde la ltima construccin (build o rebuild), acelerando as el proceso de actualizacin del proyecto, y a continuacin enlaza todos los mdulos objeto. Lo que en Vision se denomina build en la generalidad de este tipo de herramientas se denomina make. La funcin Translate ensambla (o compila, caso de que se programe en C) exclusivamente el fichero activo, es decir, el archivo que se encuentre abierto en la ventana de edicin en la zona de trabajo. Al ensamblar y montar el o los mdulos fuente y objeto de un proyecto, pueden o no producirse errores. Las incidencias sucedidas en este proceso de construccin de la aplicacin se muestran en la ventana de salida (Build Output), ubicada normalmente en la zona inferior del entorno de desarrollo Keil Vision 4. Para ver estas incidencias es necesario que dicha ventana est abierta, independientemente de su formato (ventana acoplada, flotante, auto-ocultable, etctera). En la figura que sigue puede advertirse la informacin que resultara del proceso de construccin del proyecto del ejemplo. 4.4. Gestin de errores en el ensamblado y montado Caso de producirse errores, sean de edicin o de montaje, basta con una doble pulsacin con el ratn en uno de los mensajes de error para que automticamente se active la ventana oportuna. Por ejemplo, si el error es de edicin, se abrir o entrar en la ventana de edicin del mdulo fuente en el que se encuentre ese error y el cursor se situar en la lnea que lo produjo, de manera que as rpidamente el usuario podr hacer la oportuna correccin. En la figura que sigue se ilustra el caso de la existencia de dos errores en la escritura del ejemplo que se ha venido usando como proyecto. El primer error, en la lnea 32 del cdigo fuente, consiste en que se ha cometido el desliz de referir la etiqueta VALIDASION en lugar de VALIDACION, que es el nombre usado en su declaracin en la lnea 3. El segundo error, en la lnea 34, es de tipo sintctico y consiste en el uso de un mnemotcnico inexistente; se ha escrito SET en lugar de SETB. En la siguiente figura se puede ver el efecto de hacer una doble pulsacin izquierda en la lnea de la ventana de salida donde se informa del error en la lnea 32 del fichero. Obsrvese cmo

    Reconstruir (Rebuild)

    Construir (Build)

    Ensamblar (Translate) o compilar

    Fig. 4.5: Iconos de construccin, reconstruccin y ensamblado/compilado

    Fig. 4.6: Mensajes en la ventana de salida sobre el proceso de construccin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    27

    queda marcada la lnea errnea en la ventana de edicin, y el cursor se ubica al comienzo de ella. As se podr realizar rpidamente la oportuna correccin del error. 4.5. Caso de programacin en lenguaje C: opciones de compilacin

    Si se programa en lenguaje C Keil Vision incluye un excelente compilador de C entonces el consumo de memoria puede resultar superior al de una buena programacin en lenguaje ensamblador. Para intentar minimizar esto, resulta imprescindible configurar adecuadamente las opciones de compilado en lo que se refiere a las tcnicas de optimizacin a utilizar en la compilacin del mdulo fuente seleccionado. Esta cuestin no se tratar en este tutorial o prontuario, que se centra en el uso del lenguaje ensamblador. No obstante, los pasos seran los siguientes: 1) Defnanse las opciones del fichero fuente escrito en C; para ello antes hay que

    seleccionar el archivo en el proyecto pinchndolo con el ratn en la ventana de Proyecto. Entonces hgase ProjectOptions for file ????.C va barra de men o caminos alternativos, siendo ????.C el nombre del fichero con el que se trabaja. Por ejemplo:

    Obsrvese la marca (flecha turquesa) que se ubica en la lnea

    con el error seleccionado en la ventana de salida

    Fig. 4.7: Gestin de los errores desde la ventana de salida del proceso de construccin

    Doble pulsacin izquierda del ratn

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    28

    2) Al hacer lo anterior, se abrir una ventana de configuracin de opciones de compilado.

    En esta ventana, actuando sobre las pestaas oportunas (Properties o C51, es decir, Propiedades y Compilador C51) se podr seleccionar, entre otras cosas:

    Si ese mdulo en C se incluye en la construccin del proyecto (compilado).

    Si, al compilar, se generar el fichero en ensamblador. Esto es til para poder ver cmo de eficiente es el cdigo generado automticamente por C51, y para afinarlo a mano si se estima oportuno. Esta opcin, como puede suponerse, se suele utilizar no tanto para analizar el conjunto del cdigo sino slo el de aquellas porciones o subrutinas que se estimen crticas para conseguir el rendimiento buscado.

    Nivel de optimizacin del cdigo, en lo referentes a las diversas tcnicas de compilacin a utilizar.

    Criterio principal: optimizar el tamao o la velocidad del cdigo. Tngase en cuenta que normalmente ambos criterios son antagnicos: a mayor velocidad menor compactacin del tamao del cdigo y a mayor compactacin del cdigo menor velocidad de ejecucin.

    Esto puede verse ilustrado en las siguientes figuras.

    1) seleccinese archivo 2) seleccinese ProjectOptions for File ????.C

    Fig. 4.8: a) Opciones de compilacin va barra de men

    Emerge al apuntar al fichero con el ratn y pulsar el botn derecho

    Fig. 4.8: b) Opciones de compilacin va ventana de proyecto

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    29

    Fig. 4.9: Opciones de compilacin: propiedades

    Fig. 4.10 Opciones de compilacin: nivel y nfasis de optimizacin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    30

    Opciones del nivel de optimizacin del cdigo:

    Opciones del nfasis en la optimizacin:

    Para entender en qu consisten los niveles de optimizacin, y las implicaciones que tienen, consltese el manual del compilador.

    5. DEPURACIN DEL CDIGO I: EL ENTORNO Y SU CONFIGURACIN 5.1. Inicio de una sesin de depuracin

    Seleccinese Debug en la barra de men y en el desplegable seleccinese Start/Stop Debug Session.

    Fig. 5.1: Inicio del modo de depuracin

    Fig. 4.11: Opciones de nivel de optimizacin

    Fig. 4.12: Opciones de nfasis de optimizacin

    a) en barra men

    b) en barra de herramientas

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    31

    Se entra en la ventana de depuracin automticamente, salvo si se est trabajando con la versin demo de Vision 4, en cuyo caso entonces aparecer una ventana en la que se advierte de que se est trabajando con una limitacin de 2 kilo-octetos de cdigo:

    : Realmente esta limitacin de 2K resulta irrelevante en bastantes ocasiones, y lo es siempre en el mbito didctico. Con 2K de memoria de cdigo se pueden desarrollar aplicaciones realmente complejas si se programa en lenguaje ensamblador; en este lenguaje se puede optimizar notablemente el tamao del cdigo si se tiene suficiente habilidad y soltura en su empleo.

    5.2. Aspecto del entorno en modo depuracin

    El aspecto de la ventana de depuracin mostrado en la figura siguiente es el que aparece por defecto la primera vez que se entra a depurar un proyecto. Si el usuario cambia la configuracin y disposicin de las ventanas o abre otras nuevas, al cerrar el proyecto al finalizar una sesin de trabajo entonces la prxima vez que abra el proyecto y se entre en el modo de depuracin se recuperar la misma organizacin que qued en la sesin precedente.

    Fig. 5.2: Advertencia de limitacin de tamao para la versin demo

    Fig. 5.3: Aspecto del entorno en modo depuracin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    32

    Las partes que se pueden distinguir en ella son las siguientes:

    5.2.1. La ventana de registros internos

    En esta ventana se muestran los registros internos del procesador. Se presentan agrupados; por un lado los registros Rn, y por otro los restantes significativos (acumulador A, registro B, puntero DPTR, puntero de pila, etctera). El registro de estado, PSW, se presenta en forma de registro o en forma de banderas individuales. Obsrvese la tpica estructura arborescente de la informacin mostrada en la ventana de registros, por lo que a voluntad puede expandirse o colapsarse la informacin mostrada, pinchando respectivamente en el signo + del tem deseado.

    Ventana de edicin

    La misma que se tena antes de entrar en modo depuracin pero con algunas posibilidades adicionales para la depuracin (por ejemplo, seguir y controlar la ejecucin)

    Ventana de registros internos

    Obsrvese que existe tambin una pestaa para la ventana de proyecto

    Ventana de desensamblado

    Con ella se sigue y controla la ejecucin

    Ventana de rdenes

    En la parte superior (a) el sistema informa del resultado de los comandos dirigidos al depurado e introducidos en la zona inferior (b), que es la lnea de comandos. La zona (a) tambin responde a varias de las acciones realizadas por la barra de men o de herramientas

    Zona de anlisis

    Comprende diversas pestaas tiles en el proceso de depuracin, para inspeccionar los recursos del sistema

    Fig. 5.4: Zonas del entorno en modo depuracin

    informacin sobre el tiempo transcurrido en la ejecucin

    (a)

    (b)

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    33

    Caso de que se hubiese cerrado la ventana de registros, para volverla a abrir hgase ViewProject Window en la barra de men o pnchese en el icono .

    5.2.2. La ventana de edicin

    La ventana de edicin es la misma que apareca en el entorno en la fase de creacin y edicin de un proyecto. Por tanto, se puede hacer exactamente lo mismo que entonces. No obstante no ha de perderse de vista el que se est en la fase de depuracin y por tanto los cambios editados no tendrn ningn efecto sobre el cdigo depurado. De hacerse algn cambio y pretender que ste tenga efecto, es necesario salir del modo depuracin y regresar al modo inicial para proceder a ensamblar, construir o reconstruir el proyecto y slo entonces reentrar en el modo depuracin. En el modo depuracin la ventana de edicin tiene una utilidad adicional. A su izquierda se puede observar, por un lado, una flecha amarilla que indica la prxima instruccin a ejecutarse (es decir, donde apunta el contador de programa); y por otro la parte del cdigo fuente que es ejecutable (sombreado en gris oscuro). Como se ver ms adelante, sobre esta ventana se puede interactuar, como atajo, para realizar ciertos procesos en la depuracin. Por ejemplo, poner puntos de ruptura.

    tem expandido: pnchese en para colapsar

    tem colapsado: pnchese en + para expandir

    Fig. 5.5: Ventana de registros

    Fig. 5.6: Ventana de edicin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    34

    5.2.3. La ventana de desensamblado

    En la llamada ventana de desensamblado se presenta la misma informacin que en la de edicin, pero adems se muestra su codificacin binaria (en equivalente hexadecimal), junto con la direccin de memoria a partir de que se encuentra cada instruccin.

    Igualmente, en el borde izquierdo se aprecia una flecha amarilla que significa lo mismo que la de la ventana de edicin.

    Pinchando sobre una lnea de estas ventanas (de cdigo o de desensamblado) se puede interactuar con el proceso de depuracin. Y si se pincha y pulsa el botn derecho del ratn, emerge una men con todas las posibilidades de interactuacin:

    Las opciones fundamentales se comentarn ms adelante, especialmente aquellas relacionadas con el proceso de depuracin. Tan slo nos detendremos en las opciones Mixed mode y Assembly Mode.

    Fig. 5.7: Ventana de desensamblado

    Fig. 5.8: a) Ventana emergente en la de edicin b) ventana emergente en la de desensamblado

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    35

    Modos de visualizacin: mixta o slo en ensamblador El modo mixto (mixed mode) consiste en que en la ventana de desensamblado se presenta la informacin en formato tanto tal y como figura en el cdigo fuente como, a continuacin, en formato desensamblado de la memoria (direccin ocupada por la instruccin, su codificacin binaria en formato hexadecimal, y la interpretacin de tal patrn binario como una instruccin en formato mnemotcnico). En el modo ensamblador no se acompaa con la informacin en formato editado.

    A ttulo aclaratorio, obsrvese en el desplegable de la figura anterior cmo aparece marcada la opcin Modo mixto (Mixed Mode). Para observar la diferencia entre este modo y el Modo ensamblador (Assembly Mode) pueden verse las siguientes figuras:

    Modo en ensamblador: La ventana presenta los contenidos de la memoria interpretndolos tambin como instrucciones en formato mnemotcnico. Por este motivo difiere de cmo aparece en la ventana de edicin

    Modo mixto: La ventana presenta cada lnea tal y como se edit (aparece en color rojo), junto con su la interpretacin de los contenidos como en el modo ensamblador.

    El modo mixto normalmente slo resulta de utilidad cuando se programa en lenguaje C, dada las diferencias abismales entre una sentencia en este lenguaje y su equivalente en ensamblador como resultado de su compilacin. Cuando se programa slo en ensamblador el modo mixto resulta un engorro que no aporta gran cosa y slo sirve para enmaraar la informacin mostrada en la ventana de desensamblado; por ello, es recomendable seleccionar la visualizacin en modo ensamblador exclusivamente. En la figura del modo ensamblador puede verse que la instruccin 80FBh se desensambla como SJMP INICIO(C:0x1000) en vez de SJMP 0x1003. Esto pone de manifiesto cmo el depurador es de tipo simblico al nivel de cdigo fuente, pues tiene en cuenta los smbolos definidos al escribir el cdigo fuente aunque se vea slo en formato desensamblado.

    Fig. 5.9: Ventana de desensamblado en modo ensamblador

    Fig. 5.10: Ventana de desensamblado en modo mixto

    Direccin a partir de la que se encuentra la instruccin

    Contenido de las posiciones 1003h (octeto 80h) y 1004h (octeto FBh)

    Interpretacin mnemotcnica de los contenidos (80FBh) como instruccin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    36

    5.2.4. Zona de anlisis

    Esta zona engloba una serie de ventanas que resultan de utilidad en el proceso de depuracin. Mediante ellas se pueden inspeccionar ciertos recursos del sistema e interactuar con ellos. Las diferentes ventanas son las siguientes: Ventana(s) de memoria: En ellas se puede inspeccionar y modificar los contenidos

    de la memoria del sistema. Por defecto slo existe una ventana, pero es posible abrir hasta cuatro. Tpicamente para inspeccionar la RAM interna, la memoria de programa y la memoria externa de datos.

    Ventana(s) de observacin: Est(n) concebida(s) para agrupar recursos dispersos

    que conviene tener juntos para facilitar y hacer ms cmoda la depuracin.

    Ventana de smbolos: En ella se presenta el valor de todos los smbolos utilizados, bien sean predefinidos (direccin equivalente de los nombres de los registros normales y de los SFR) o bien sean los definidos por el usuario al crear su cdigo.

    Ventana de variables locales: En ella se presentan las variables definidas por el

    programador.

    Ventana de la pila de llamadas a subrutina, para saber la estructura de llamadas anidadas a subrutina.

    5.2.5. Ventana de rdenes

    Posee dos zonas; una amplia en la parte superior, en la que el entorno Vision 4 informa del resultado de los procesos invocados por cualquier medio, y una pequea en la parte inferior a travs de la cual el usuario puede invocar en modo consola o terminal las distintas aplicaciones y funciones que conforman el sistema de desarrollo (por ejemplo, el mdulo de ensamblado o de montaje). A travs de esta ventana se pueden introducir comandos que no son posibles de otra manera o bien otros que pueden invocarse mediante la barra de men o barra de herramientas pero que de este modo se pueden acompaar de parmetros o modificadores complejos.

    Zona de informacin del resultado de ciertos comandos lanzados al entorno de desarrollo

    Zona de introduccin de comandos dirigidos al sistema

    Fig. 5.11: Zona de anlisis

    Fig. 5.12: Ventana de rdenes

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    37

    5.3. PASOS PREVIOS A LA DEPURACIN DEL CDIGO ENSAMBLADOR Como se acaba de ver, al entrar por primera vez en modo depuracin se parte de una situacin en la que se muestran ciertas ventanas. Segn cada caso, puede resultar conveniente:

    Eliminar algunas de ellas por intiles, y abrir otras que no lo estn pero que se considera que se necesitarn.

    Definir la informacin que se desea analizar con estas ventanas. Reubicarlas, reformatearlas, redimensionarlas y, finalmente, definirlas y dotarlas de

    contenido. Parte de estas cuestiones ya se han visto al comentar la filosofa de ventanas que posee el entorno Vision 4. Otras se comentarn a continuacin. 5.3.1 Primero: abrir las ventanas no presentes Existen varias posibilidades de hacerlo: a) Va barra de men, con la opcin View.

    Fig. 5.13: Seleccin de las ventanas a abrir, va opcin View en la barra de men

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    38

    b) Va barra de herramientas, para las ventanas usuales.

    c) Si lo que se desea es abrir ventanas de los diversos perifricos, entonces en la barra de

    men se selecciona la opcin Peripherals y se selecciona el o los perifricos deseados.

    Ventana de comandos

    Ventana de desensamblado

    Ventana de smbolos

    Ventana de registros

    Ventana de pila de llamadas Ventanas de

    observacin

    Ventanas de memoria

    Ventanas de puertos serie Ventana de

    anlisis

    Ventana de traza

    Posibles ventanas de observacin

    Posibles ventanas de memoria

    Posibles ventanas de comunicacin serie Posibles opciones de anlisis

    Fig. 5.14: Seleccin de las ventanas a abrir, va barra de herramientas

    b) Opciones de puertos

    c) Opciones de

    temporizadores

    Fig. 5.15: a) Apertura de ventanas de perifricos

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    39

    Las ventanas de los perifricos son del tipo propio de Windows, con la salvedad de que estn bloqueadas y por tanto no se pueden redimensionar ni minimizar; tan slo se pueden arrastrar y cerrar. En las siguientes figuras pueden verse las ventanas de algunos de los perifricos. Debe tenerse en cuenta que el tipo de perifricos, y por tanto sus ventanas, estarn en consonancia con el tipo de procesador que se haya definido al crear el proyecto.

    En las ventanas puede verse que existen campos meramente informativos, as como otros con los que el usuario puede interactuar modificando sus valores, lo que implicar los oportunos cambios en el modo operativo del perifrico afectado. En los campos de bit el smbolo representa un 1 lgico, y su ausencia un 0 lgico.

    = 1

    = 0

    Fig. 5.16: Aspecto de diferentes ventanas de perifricos

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    40

    5.3.2. Segundo: reubicar, formatear y redimensionar las ventanas Antes de empezar, conviene ubicar y formatear las ventanas en el lugar que se considere ms adecuado. Aqu interviene frecuentemente el gusto personal del usuario, pues cada persona tiene sus preferencias subjetivas en cuanto a la configuracin visual del entorno de trabajo. La manera de hacer esto ya se coment al hablar de la filosofa de las ventanas en el entorno Vision 4. Para el redimensionado, se puede actuar de diferentes formas en funcin del formato de cada ventana:

    Si la ventana se encuentra acoplada o como documento con pestaa, quiere decir que est en una zona unida solidariamente a otra. Recurdese que las zonas son cinco: la de registros, la de desensamblado, la de edicin, la de comandos y la de anlisis. Existir una separacin entre esas zonas y al ubicar el ratn sobre esa zona fronteriza puede observarse que el smbolo de ste (puntero en forma de flecha) se muta en un smbolo indicador de frontera (distinto segn se trate de una frontera vertical (||) o una horizontal ( ).

    Por tanto, bastar con ubicar el puntero del ratn en una zona fronteriza hasta que el smbolo del ratn tome la forma del redimensionador de ventana. Para redimensionar se pulsar el botn izquierdo del ratn y se arrastrar hasta que se redimensione en la forma deseada. Es decir, se obra de manera similar a la tpica de una aplicacin Windows en lo que respecta al redimensionado de campos dentro de una aplicacin (redimensionado de campos, que no de ventanas), como es el caso de las celdas de una tabla en Microsoft Word o en Excel.

    Si la ventana es flotante, entonces se puede redimensionar de manera idntica a como se hara con cualquier ventana tipo Windows.

    Fronteras verticales

    Fronteras horizontales

    Fig. 5.17: Redimensionado actuando sobre las fronteras entre zonas acopladas

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    41

    5.3.3. Tercero: definir y dar contenido a las ventanas En la mayora de las ventanas que se abran para el proceso de depuracin se observa que aparecen vacas. ste sera el caso de las de memoria y las de observacin, por ejemplo. En otras, aparecen con informacin pero es preciso modificarla. Pues bien, a continuacin se indicar cmo llevar a cabo esto en las ventanas ms significativas y tiles.

    5.3.3.1. Contenidos en las ventanas de memoria:

    Una vez que se hayan abierto tal y como se dijo en un epgrafe anterior (en la barra de men haciendo ViewMemory WindoaMemory n, o en la barra de herramientas sobre el icono de ventanas de memoria) entonces es necesario especificar lo siguiente:

    - Qu tipo de memoria se desea ver: RAM interna, memoria de programa o memoria externa de datos.

    - A partir de qu direccin se desea verla.

    En la figura que sigue puede verse el aspecto de la zona de anlisis con tres ventanas de memoria vacas. Puede observarse que el campo de direccin (address) de la ventana 1 de memoria se encuentra sin definir.

    Si se quisiese definir la ventana n1 para ver la memoria de programa a partir de la direccin 30h, se introducira en el campo de direccin la expresin C:30h y se validara con la tecla (tecla ). El resultado sera el que se muestra a continuacin:

    Como puede verse, en cada lnea primero aparece la direccin de memoria a partir de la que se muestra el contenido, y entonces los contenidos (mostrados como valores en hexadecimal) de sa y de las siguientes posiciones.

    pestaas de las distintas ventanas

    direccin a partir de la que se desea ver la memoria en la ventana N1

    Indica que se pueden modificar los valores de la memoria. Si se pincha, se

    bloquea esa posibilidad

    Fig. 5.18: Ventanas de memoria

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    42

    Dado que en un microcontrolador tipo 8051 existen varios tipos de memoria con idntico valor de direccin, con un prefijo se indica el tipo de memoria que se desea ver. Para cdigo C: (por ejemplo, C:1000h C:0x1000 para ver la memoria de cdigo a partir de la direccin 1000h). D: para la RAM interna; X: para la memoria externa de datos.

    5.3.3.2. Contenidos en las ventanas de observacin

    Si no lo estuviesen, se abren haciendo ViewWatch WindowWatch n / Locals en la barra de men, o pulsando sobre el icono oportuno en la de herramientas y seleccionando la deseada de las tres posibles:

    Estas posibilidades son:

    - Variables locales: para ver las variables que se hayan declarado.

    - Observacin N1: para agrupar en una sola ventana todos los elementos (registros y variables) que se deseen. De esta manera se evita tener que mirar varias ventanas diferentes.

    - Observacin N2: dem.

    - Pila de llamadas a subrutinas: para saber la estructura de llamada concatenadas a subrutina.

    La utilidad de la ventana de observacin, como ya se ha dicho, es que permite agrupar en una sola ventana informacin parcial pero fundamental para la depuracin que de otra manera estara dispersa entre otras muy diversas ventanas: registros, memorias, pila, cdigo y que por tanto resultara muy incmodo de consultar en la depuracin del cdigo. Cmo aadir un elemento a la ventana de observacin A una ventana de observacin hay que dotarla de contenido. Para ello, se pulsa la tecla F2 (o se da una doble pulsacin izquierda con el ratn) y en el campo que se abre se teclea el nombre del recurso. Al pulsar automticamente se aade ese tem a la lista de elementos en la ventana de observacin y se muestra su valor.

    Fig. 5.19: Opciones en las ventanas de observacin

    Fig. 5.20: Aspecto de una ventana de observacin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    43

    Por ejemplo, si se quisiese observar el registro R2, el bfer serie SBUF, la etiqueta TEXTO y las seales VALIDACION y RECONOCI, y el bus BUS_DATOS usadas en el proyecto del ejemplo, se iran tecleando esos nombres, y al validar cada vez con se iran aadiendo a la lista y se mostrara su valor, tal y como se recoge en la imagen siguiente:

    Obsrvese que para la etiqueta TEXTO se da su valor (direccin que representa) y no su contenido (que en el ejemplo del proyecto es 50h; es decir en la posicin 0047h de la memoria de programa se almacena el octeto de valor 50h). Cmo eliminar un elemento de la ventana de observacin Si se desea eliminar un tem de la lista de la ventana de observacin, primero hay que seleccionarlo con una doble pulsacin izquierda del ratn (se pone con fondo azul), borrarlo (con la tecla de retroceso, , no la de cursor izquierda) y pulsar entonces (tecla ). Otra manera es apuntarlo con el ratn, pulsar el botn derecho y seleccionar en el desplegable la opcin Remove Watch . Cmo cambiar el sistema numrico de presentacin del valor de un elemento Una vez aadido un recurso a la ventana, es posible seleccionar el formato de presentacin de su valor. Para ello se selecciona el elemento (da igual hacerlo en el campo del nombre o en el del valor), y con el botn derecho del ratn emerge una subventana en la que se puede seleccionar el sistema de numeracin en el que se mostrar el valor, tal y como puede verse en la imagen que sigue.

    Fig. 5.21: Aadido de elementos a una ventana de observacin

    Fig. 5.22: Opciones de sistema de representacin de un valor de observacin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    44

    5.3.4. Introduccin de valores numricos en las ventanas Hay ventanas en las que se muestra informacin sobre recursos del sistema: registros internos, posiciones de memoria, variables, etctera. En este tipo de ventanas habitualmente es posible modificar al vuelo el valor de uno o varios de esos recursos. La manera de hacerlo es la tpica e intuitiva de Windows: con el ratn se apunta el elemento y con el botn derecho se despliega un men especfico con las posibles acciones a realizar con l y se selecciona la deseada, Modify Memory at en este ejemplo:

    En esta figura se ve el men emergente al abrir con el ratn la posicin 87h de la RAM interna. Tambin pueden verse las opciones de visualizacin de los valores en la ventana de memoria. Si no est seleccionado el modo Decimal, se muestra en hexadecimal (salvo formato incompatible, como la coma flotante). Si los datos en memoria representasen palabras de diecisis bits, sin signo, se elegira verlos, por ejemplo, como unsigned int:

    Si se observa la figura de arriba y se compara con la inmediatamente anterior a ella, puede observarse que no aparecen las opciones Modify Memory at ni Set Breakpoint at. El motivo es que se ha pinchado con el ratn en una zona intermedia entre dos valores, y no justo sobre uno de ellos.

    Fig. 5.23: Introduccin de valores en una ventana de memoria

    Fig. 5.24: Opciones de formato de visualizacin de valores

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    45

    El resultado de hacer lo anterior es lo siguiente:

    Como puede verse en esta figura, ahora se juntan los valores de dos en dos octetos para tener una nocin ms clara de cmo se agrupan. No obstante, advirtase que la palabra de diecisis bits sigue el criterio octeto alto en memoria baja y octeto bajo en memoria alta. Si el criterio fuese el contrario debera tenerse en cuenta pues, en el ejemplo, en lugar de ser el dato 20A2h sera el A220h Al seleccionar la opcin Modify Memory at, es decir, modificar la memoria en la direccin especificada, se abre una ventana en la que se puede introducir un nuevo valor. Si lo que se quiere hacer es introducir varios valores en posiciones consecutivas a partir de esa dada, se teclean los valores separados por comas. Por ejemplo:

    Aqu se introducirn los valores 10h, 2Fh y 45h en las posiciones 87h, 88h y 89h de la RAM interna. Al validar los nuevos valores, en la ventana de memoria del ejemplo se visualizar lo que se muestra en la siguiente figura. Si en una ventana no cupiese toda la informacin visualizable, se disponen de los tpicos ascensores de una ventana Windows.

    Nuevos valores introducidos

    Ascensor de desplazamiento vertical

    Fig. 5.25: Opciones de formato de visualizacin de valores enteros de 16 bits

    Fig. 5.26: Ventana de introduccin de valores numricos

    Fig. 5.27: Resultado de la introduccin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    46

    Otra manera de introducir valores es haciendo una doble pulsacin izquierda del ratn sobre la posicin que se desea modificar o a partir de la que se desea hacerlo (a). Se abrir un campo numrico, y se introducir el nuevo valor, o los valores sucesivos separados por comas (b).

    En las ventanas de memoria, en la esquina superior derecha, pueden verse los smbolos de candado que permiten congelar o no la actualizacin de estas ventanas. En ocasiones resulta de utilidad el congelar el refresco cuando se est depurando cdigo que accede frecuentemente a la memoria, puesto que la velocidad de simulacin se ve afectada negativamente.

    Pulsando con el ratn sobre estos iconos se conmuta su estado. No debe confundirse esta funcin de congelacin o no de las ventanas de memoria (que slo afecta a stas) con la funcin ViewPeriodic Window Update , accesible va barra de men y que afecta a todas las ventanas del entorno.

    5.3.4.1. Cdigo de colores en las ventanas de memoria

    En la ventana de memoria los contenidos de las posiciones se muestran empleando un cdigo de colores: Negro Indica memoria que es de programa o RAM no inicializada en la aplicacin Rojo Para datos CONST en FLASH o ROM, que se han accedido al menos una vez Oro Indica memoria que se ha iniciado, pero que no se ha accedido todava Verde Indica que la posicin de memoria se ha accedido al menos una vez

    a) b)

    c)

    Fig. 5.28: En estas figuras puede verse el proceso de introduccin de los valores 5Ch, 27h, F2h y 7Bh a partir de la direccin 31h de la RAM interna (figs. a y b) as como el resultado final en la memoria al pulsar finalmente (fig. c)

    Ventana de memoria no congelada

    Ventana de memoria congelada

    Fig. 5.29: Iconos de congelacin del refresco de una ventana de memoria

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    47

    5.3.4.2. Formato numrico de los valores introducidos o mostrados Como en toda herramienta de desarrollo, se admiten diversos sistemas de numeracin a la hora de introducir los valores de la memoria. La notacin que emplea Keil Vision es la indicada en la siguiente tabla:

    BASE PREFIJO SUFIJO EJEMPLO

    binario No admitido Y y 101101y

    octal No admitido Q, q, O u o 6721q (1)

    decimal No admitido T o ninguno (2) 1743 1741T

    hexadecimal 0x 0X H o h 0xA75F 0A75Fh(3)

    (1) En octal no se recomienda el uso de Q, O u o para evitar la confusin con el carcter 0 (cero)

    (2) Ninguno slo si el sistema utilizado por defecto es el decimal

    (3) Obsrvese el uso de un 0 (cero) delante del dgito hexadecimal A, al ser un dgito tipo carcter letra.

    Posibilidad de especificar cmodamente valores numricos de cdigos ASCII Cuando se desea indicar el valor numrico de un carcter ASCII, es posible notarlo no en formato numrico sino en formato carcter. Si se trata de un solo carcter, se encerrar entre apstrofos (). Si es una sucesin de caracteres, se encerrarn entre comillas ("). Por ejemplo: 'A es equivalente a escribir 0x41 41h. Hola es equivalente a escribir 'H,o,l,a o a escribir 48h, 4Fh, 4Ch, 41h. Puede advertirse la gran ventaja y comodidad que supone la especificacin de valores en ASCII frente a la numrica explcita. Posibilidad de especificar con seguridad valores binarios de numerosos dgitos Cuando se considera conveniente introducir un valor en binario pero ste es muy largo, es decir, consta de numerosos dgitos, entonces no es raro que inadvertidamente se cometa un error al omitir inadvertidamente introducir uno o repetir otro. Para evitar esto, se pueden introducir los bits en grupos, separando cada grupo con el carcter $. De esta manera es ms fcil comprobar que lo introducido es correcto antes de validarlo. Por ejemplo, si se hubiese decidido introducir en memoria el dato de diecisis bits 1101000110101011y, ste se podra introducir de la siguiente manera:

    1101$0001$1010$1011y Como puede verse, as resulta ms sencillo introducir sin temor a equivocarse y no darse cuenta del error. El nmero de dgitos de cada grupo de bits es a voluntad. Por ejemplo, el valor anterior podra introducirse como 11010001$10101011y como 11$01000$110$101$011y. 5.3.4.3. Fijacin del sistema de numeracin por defecto Cuando en la ventana de memoria se van a introducir valores, no es necesario utilizar prefijo ni sufijo alguno si el sistema a utilizar es el establecido por defecto. Por ejemplo, si en la ventana de memoria se ha seleccionado ver los valores en hexadecimal (unsigned char y con Decimal desactivado), entonces se puede entrar el valor 7E sin necesidad de explicitar 0x7E 7Eh. Para fijar el sistema de numeracin por defecto, se introduce en la ventana de rdenes el comando radix= , siendo la base del sistema (10T 16T). Para ver la base por defecto actual, se introduce el comando radix. El sistema de numeracin por defecto slo es aplicable a la ventana de rdenes y a los valores introducidos por edicin directa sobre un campo, no ante apertura de ventana. ADVERTENCIA: Vision no verifica la correccin de las expresiones numricas

    introducidas, por lo que siempre debe prestarse especial atencin.

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    48

    6. DEPURACIN DEL CDIGO II: COMANDOS PARA LA DEPURACIN

    6.1. Opciones del men de depuracin Para la depuracin, se tienen las utilidades usuales en cualquier herramienta de desarrollo: ejecucin, paso a paso, puntos de ruptura, etctera. Las diversas opciones se pueden ver en la opcin Debug de la barra de men. Habiendo manejado ya alguna herramienta de depuracin se tiene la base para de manera intuitiva familiarizarse con las peculiaridades de Vision. En la siguiente figura pueden verse las distintas opciones:

    Ejecutar (Run): Ejecuta a velocidad rpida el cdigo.

    Paso a paso (Step): Ejecuta slo la instruccin a la que apunta el contador de programa

    Paso largo (Step Over): Permite ejecutar una instruccin CALL sin entrar paso a paso en la subrutina (sta se ejecuta rpido).

    Ejecutar hasta retornar (Step Out): Habiendo entrado en una subrutina, ejecuta rpido hasta llegar a un RET.

    Ejecutar hasta (Run to Cursor line). Si con el ratn se marca una lnea de cdigo, permite una ejecucin rpida hasta alcanzarse esa lnea.

    Parar ejecucin (Stop Running): Si se ha dado la orden de ejecutar, permite detener la ejecucin.

    Puntos de ruptura (Breakpoints): Permite establecer o ver puntos de ruptura, asignando atributos.

    Insertar/Quitar punto de ruptura (Insert/Remove Breakpoint): Permite poner o quitar un punto de ruptura en la instruccin seleccionada con el ratn en la ventana de edicin o en la de desensamblado.

    Habilitar/Inhibir punto de ruptura (Enable/Disable Breakpoint): Permite

    habilitar o inhibir el punto de ruptura seleccionado con el ratn en la ventana de edicin o de desensamblado, pero no lo suprime.

    Inhibir todos los puntos de ruptura (Disable All Breakpoints): Permite inhibir todas las rupturas que puedan existir.

    Suprimir todos los puntos de ruptura (Kill All Breakpoints): Permite suprimir definitivamente todas las rupturas.

    Mapa de memoria (Memory Map): Permite analizar o definir la memoria en uso; es decir, la que est efectivamente ocupada por cdigo de programa as como la RAM interna (directa, indirecta y direccionable a bit) y externa de datos de que est dotado el sistema.

    Ensamblador de lnea (Inline Assembly): Permite, en el modo depuracin, modificar el cdigo de programa. Slo tiene cierta utilidad para cambios puntuales provisionales. Es recomendable no usar esta opcin y en su lugar hacer los cambios en el modo proyecto.

    Fig. 6.1: Opciones de depuracin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    49

    6.2. Control de la depuracin mediante la barra de herramientas Como se sabe, la barra de herramientas supone un atajo para los comandos ms usuales, incluidos los de depuracin. Se tienen los siguientes:

    La herramienta de mostrar en las ventanas de edicin y de desensamblado la prxima instruccin a ejecutar tiene su utilidad en proporcionar una va rpida de volver a ver el cdigo prximo a ejecutar si en esas ventanas nos hemos movido hacia delante o detrs mediante los ascensores de ventana. La traza de ejecucin se refiere a ver en una ventana la relacin lineal de las instrucciones que se han ido ejecutando en el tiempo. Puede ser til en ciertos casos de depuracin, pero normalmente carece de utilidad.

    Insertar/quitar punto de ruptura

    Quitar todos los puntos de ruptura

    Habilitar/Inhibir punto de ruptura

    Inhibir todos los puntos de ruptura

    Reiniciar UCP

    Ejecutar

    Parar

    Paso a paso

    Paso largo

    Ejecutar hasta retornar

    Ejecutar hasta

    Mostrar prxima

    instruccin a ejecutar

    Mostrar/Habilitar traza de

    ejecucin

    Abrir/cerrar ventana de

    desensamblado

    Abrir/cerrar ventana de

    observacin y pila de llamadas

    Ventanas de puertos serie

    Ventana visor del sistema

    Abrir/cerrar ventana de memoria

    Abrir/cerrar ventanas de

    anlisis lgico

    Abrir/cerrar ventana de smbolos

    Entrar/salir del modo de depuracin

    Ventanas de gestin del proyecto

    Abrir/cerrar ventana de comandos

    Abrir/cerrar ventana de registros

    Abrir/cerrar ventanas de observacin

    Actualizar ventanas

    Fig. 6.2: Iconos de depuracin en la barra de herramientas

    Fig. 6.3: Iconos para trabajar con puntos de ruptura

    Fig. 6.4: Iconos de control de la ejecucin y anlisis de recursos

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    50

    6.2.1. Opciones avanzadas de depuracin Aunque algunas de las opciones que siguen requieren el dominio de conceptos y de la metodologa de la depuracin avanzada, se comentarn brevemente para que el lector se haga una idea somera de su utilidad:

    Ventana del analizador lgico Una vez abierta, su configuracin permite visualizar las seales de inters de forma similar a como se veran con un analizador lgico conectado al sistema fsico objeto de depuracin. En ocasiones esta utilidad puede resultar muy interesante por la facilidad del anlisis grfico y de interrelacin temporal entre seales que aporta. No es ni ms ni menos que un analizador lgico virtual. Ventana de anlisis de rendimiento Permite, tras configurar un perfil de ejecucin, analizar en qu partes del cdigo se consume ms tiempo de ejecucin y en cuales menos. Esto es extremadamente til para, en caso de duda, tomar la decisin de qu partes del cdigo merecen la pena ser optimizadas y cules no. Sera absurdo esforzarse en optimizar unas rutinas complejas que se van a ejecutar de tanto en tanto y que, en condiciones no crticas, tendrn un impacto irrelevante en el rendimiento global del sistema. Cobertura o uso del cdigo Permite ver para cada subrutina qu tanto por ciento del cdigo que lo compone ha llegado realmente a ejecutarse. Es til para ver qu partes no han llegado a depurarse y tambin para identificar cdigo muerto esto es, que nunca llega a ejecutarse y ver el impacto relativo de su tamao con respecto al de la rutina. Traza de instrucciones (o de ejecucin) Permite observar el rastro lineal de la ejecucin de instrucciones por parte del procesador. Puede resultar til en ciertos casos de depuracin en los que interesa analizar un registro de qu es lo que ha hecho el procesador en cierto intervalo de tiempo. No obstante, es bastante farragoso de seguir si la traza de ejecucin tiene una gran extensin. Con la prctica se llega a saber acotar razonablemente los intervalos temporales para los que se activa la traza de ejecucin.

    Opciones de Abrir/cerrar ventanas de observacin

    Opciones de Abrir/cerrar ventana de memoria

    Opciones de ventanas de puertos serie

    Opciones de Abrir/cerrar ventana de

    anlisis lgico

    Mostrar/Habilitar registro de ejecucin

    Fig. 6.5: Opciones en los iconos desplegables

    Fig. 6.6: Opciones en traza de instruccin

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    51

    6.3. Control de la ejecucin: paso a paso y ejecucin rpida hasta una lnea

    Lo habitual es empezar la depuracin ejecutando paso a paso. Slo se ejecutarn de corrido aquellas porciones de cdigo ya depuradas o que se presumen funcionalmente correctas. La manera ms rpida de hacerlo es con el icono de Paso a Paso en la barra de herramientas o, ms an, con la tecla F11. Sea la que sea la opcin u opciones que se hayan elegido para la ejecucin controlada del cdigo, cuando se ejecuta una instruccin sta se marca de manera permanente con un cdigo de color en la ventana de edicin y en la de desensamblado. Como puede verse en la figura, aparece una marca de color verde a la izquierda de la lnea, antes de la numeracin de sta; en caso contrario la marca es la gris.

    Igualmente, en la lnea con la instruccin a ejecutar a continuacin (es decir, a la que apunta el contador de programa) aparece una marca en forma de flecha amarilla.

    La marca de flecha azul turquesa significa que con el ratn se ha seleccionado esa lnea de cdigo para hacer algo con ella. Para ello o se pincha la lnea con el botn izquierdo del ratn o simplemente se apunta y se pulsa el botn derecho para seleccionar en el desplegable la operacin a realizar. Esto se ilustra en la figura siguiente (en ella el desplegable se encuentra truncado, existiendo ms opciones de las mostradas).

    Marca verde: Instruccin ejecutada

    en alguna ocasin

    Marca gris: Instruccin no

    ejecutada todava Prxima instruccin a ejecutar

    Fig. 6.7: Marcas de control en las ventanas de edicin y desensamblado

    Fig. 6.8: Marca de lnea seleccionada en las ventanas de edicin y desensamblado

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    52

    Para Ejecutar Hasta antes hay que marcar la instruccin a la que se quiere llegar en la ejecucin. Una manera de hacerlo es pinchndola con el ratn. Esto hace que se marque la lnea en amarillo. Entonces o se teclea CTRL+F10, o con el botn derecho del ratn se despliega el men de opciones y se selecciona Run to Cursor line. Tambin se puede hacer con el icono de tal funcin en la barra de herramientas:

    6.4. El trabajo con los puntos de ruptura Un punto de ruptura es una marca simblica que se coloca sobre una instruccin o un recurso del sistema (registro interno, registro de un perifrico, posicin de memoria), con el fin de que el depurador sepa cmo comportarse al ir a simular la ejecucin de esa instruccin o si al ejecutarse una instruccin se acceda a ese recurso. Tpicamente, se usan los puntos de ruptura para poder ejecutar a velocidad rpida el cdigo del que se tiene la certeza de que funciona correctamente y poder entrar en modo paso a paso a partir del punto en que se tienen dudas del correcto funcionamiento. Cuando se selecciona la opcin Puntos de Ruptura emerge una ventana en la que se puede indicar en qu posicin de memoria se pone el punto, si es de cdigo, de datos, externa o SFR, si el acceso es de lectura, de escritura o ambos; si se le aade un factor de retardo a la activacin, etctera. Observando la figura que sigue puede intuirse cmo actuar. Si ya hubiese otros puntos de ruptura, aparecern listados as como sus atributos. En esta figura pueden observarse cuatro puntos de ruptura:

    - Uno en la posicin 1000h de la memoria de programa; se encuentra habilitada.

    - Otro en 1003h de la memoria de programa, que tambin est habilitada.

    - Otro en la posicin 56h de la RAM interna, efectiva slo cuando se escriba por sexta vez en esa posicin

    - Finalmente, otro en la posicin 07h de la RAM interna (R7 del banco 0), efectiva slo cuando se lea por cuarta vez (es decir, cuando R7 del banco 0 se use por cuarta vez)

    Fig. 6.9: Seleccin de opcin de ejecutar hasta, en el desplegable

  • Tutorial-Prontuario de Keil Vision 4

    Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010

    53

    Como se ve, existe una gran flexibilidad a la hora de definir un punto de ruptura.

    Como puede verse, es posible poner puntos de ruptura sobre un rango de posiciones consecutivas. Esto es un mtodo ms cmodo comparado con poner puntos individuales sobre cada posicin del rango (en el ejemplo slo las hay sobre direcciones individuales).

    6.4.1. Cmo poner/quitar rpidamente una ruptura

    Una manera rpida de poner o quitar un punto de ruptura es con una doble pulsacin del ratn sobre la instruccin en la que se quiere poner o quitar la ruptura. Esto se har en cualquier punto de la lnea en la ventana de desensamblado, o en el campo izquierdo (sombreado) de la lnea en la ventana de edicin.

    6.4.2. Codificacin por colores de las rupturas Al poner puntos de ruptura, en las ventanas de edicin y de desensamblado se fijan unas marcas de colores que indican tal eventualidad. Una marca en rojo indica un punto de ruptura en la instruccin de esa lnea. Si el punto de ruptura se hubiese inhibido temporalmente, entonces aparecer la marca en color blanco. Esto puede apreciarse en la siguiente figura:

    Aqu se teclea la expresin de la posicin sobre la que se pone el punto de ruptura: D:7 en el ejemplo

    Aade ruptur