Práctica ENS:Ensamblar y depurar

Pr´actica ENS:Ensamblar y depurar 1. Objetivos Familiarizarse con el manejo b´ asico de la herramienta µVision3 con programas escritos en lenguaje e

1 downloads 57 Views 298KB Size

Recommend Stories


Técnicas básicas para resolver problemas y depurar llamadas VoIP
Técnicas básicas para resolver problemas y depurar llamadas VoIP Contenidos Introducción Requisitos previos Requisitos Componentes utilizados Convenci

Sano & Natural. Plantas para depurar los intestinos. La botica de lo
La botica de lo Sano & Natural Plantas para depurar los intestinos Son las grandes aliadas para cuidar los intestinos. Usos y propiedades de la manza

y
1 4 5 6 7 8 9 10 11 12 13 14 15 16 12 19 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 11 y 12 35 36 37 38 39 40 41 42 43 44 45 46 47

y
Regional Distrito Capital La Regional Distrito Capital del Servicio Nacional de Aprendizaje SENA, de conformidad con los principios de transparencia

Story Transcript

Pr´actica ENS:Ensamblar y depurar

1.

Objetivos Familiarizarse con el manejo b´ asico de la herramienta µVision3 con programas escritos en lenguaje ensamblador. Depurar los programas escritos en lenguaje ensamblador tanto con el simulador como en tarjeta.

2.

Ejemplo de “Proyecto µVision3” Crear una nueva carpeta en el directorio de trabajo. Volcar al directorio de trabajo los ficheros la p´agina web (Proyecto ENS) http:// www.iit.upco.es/~cesar/suma de configuraci´ on de la herramienta para depuraci´on para este proyecto en lenguaje ensamblador. Hacer doble click sobre el icono: suma.Uv2 Deber´a aparecer una ventana como la recogida en la figura 1.

Figura 1: µVision3 con programa ejemplo en ensamblador La herramienta muestra una ventana dividida en tres zonas: Zona alta con un men´ u y dos barras de botones. Zona media con dos ventanas: Ventana de proyecto a la izquierda, y ventana de edici´ on de c´odigo fuente a la derecha (Source Browser). Zona baja con la ventana de salida (Output Window). 1

La ventana de proyecto tiene varias pesta˜ nas (en su zona inferior) que permiten seleccionar: Files, Regs, Books, etc. En Files nos muestra los ficheros que componen un proyecto, Regs se utiliza en fase de depuraci´on, y Books permite el acceso a una serie de documentos sobre la herramienta, procesador, etc1 . Con Files seleccionados, si hacemos doble click en el nombre de un fichero de los que forman el proyecto en curso se abre una nueva ventana a la derecha que nos muestra el contenido de dicho fichero. Las ventanas de la derecha se pueden organizar de distinta forma, ver opciones de men´ u Window.

2.1.

Ensamblar

Para ensamblar los distintos m´ odulos que componen el proyecto, y obtener el ejecutable (“linkar”) pulsamos el bot´on de build: . de la segunda barra de comandos. En la ventana de salida (zona baja) veremos el resultado del proceso de ensamblado del fichero suma.a67, el de compilaci´on del fichero TRAPS.C y el resultado del “linkado” de ambos. Los mensajes que aparecen son los siguientes: Build target ’Simulador’ assembling suma.a67... linking... creating hex file from "suma"... "suma" - 0 Error(s), 0 Warning(s). Si cometemos un error de programaci´ on aparecer´a en la ventana de salida tal como se recoge en la figura 2.

Figura 2: Error de programaci´on Modificar el programa anterior e introducir el error indicado en la figura 2. Guardar el fichero. Ensamblar y linkar (Build project). 1 En

la distribuci´ on para instalar en casa faltan parte de los Books. Bajarlos de la p´ agina web de la asignatura y copiarlos en la carpeta siguiente: Keil->Datashts->Infineon.

2

Hacer doble click sobre cualquiera de los errores que aparecen en la ventana de salida. La herramienta se˜ nala la l´ınea en la que se ha producido dicho error con una flecha

a la izquierda de la l´ınea en cuesti´ on (en la ventana de edici´on de c´odigo fuente). Corregir el error. Guardar fichero. Build project.

3.

Depuraci´ on Para entrar en modo depuraci´ on pulsaremos el bot´on

Se abrir´ a la ventana del simulador con la que ya estamos familiarizados. Recordamos que para ejecutar paso a paso basta con pulsar el bot´ on:

Tambi´en es posible la ejecuci´ on continua ayudada de puntos de ruptura (de uso obligado en la depuraci´on de cualquier programa “no trivial’). Para comprobar que el programa funciona correctamente utilizar un punto de ruptura al final de bucle y comprobar que la suma se realiza de forma correcta (ver comandos de visualizaci´ on de memoria y “Memory Window” en pr´ actica 1) 2 . P1- Indicar cual es el resultado en cada paso Eliminar el punto de ruptura. Poner un punto de ruptura al final del programa, y ejecutar el bucle completo sin puntos de ruptura. Comprobar el resultado.

4.

Ejercicio 1

Cambiar los datos del programa ejemplo sustituyendo todos ellos por el mismo valor: 0xFFFF3. P2- ¿Cual es el resultado de sumar los 5 0xffff?, ¿Cuanto vale cada dato interpretado como n´ umero con signo en coma fija complemento a 2?, ¿Cuanto vale el resultado (igualmente en complemento a 2)?

4.1.

Ventana de desensamblador Ejecutar la primera instrucci´ on de programa (El IP, parte baja del contador de programa, pasa a la posici´ on 0x300). Bot´ on derecho en la ventana de c´ odigo fuente ->Show Disassembly at 0x300 El programa desensamblador muestra el contenido de la memoria en binario y en forma de instrucciones en ensamblador a ejecutar por la CPU. P3- ¿C´omo aparece en la ventana de desensamblador la instrucci´on cmp r1,ndatos?, ¿Qu´e son los DPP’s?, ¿Por qu´e se est´ a usando DPP0 en este caso?

2 La herramienta a veces se niega a poner los puntos de ruptura. Un procedimiento que parece que la “despierta” es: 1) Ejecutar la primera l´ınea paso a paso 2) seleccionar la l´ınea anterior a la que se quiere ubicar el punto de ruptura, y 3) pulsar el bot´ on de punto de ruptura. La herramienta indica mediante un cuadrado rojo la l´ınea en la que ha ubicado el punto de ruptura 3 Tambi´ en se pude usar: 0ffffh. Los valores en hexadecimal se puede especificar con 0x por delante, o con una h por detr´ as. Caso de usar la forma h si el n´ umero empieza por letra hay que a˜ nadir un 0 por delante

3

5.

Nuevos proyectos Para crear un nuevo proyecto4: Copiar los ficheros suma.Uv2, suma.Opt y suma.a67 en nuevos ficheros con un nuevo nombre, el del nuevo proyecto, manteniendo las extensiones. Abrimos el nuevo proyecto haciendo doble click en el fichero con extensi´on .Uv2 (fichero de proyecto). Eliminamos los fuentes del proyecto anterior. Para eliminar los ficheros fuente (.a67) del proyecto: pinchar con el bot´ on derecho sobre el nombre del fichero Project Window a eliminar y seleccionar la opci´on Remove file .... A˜ nadir los nuevos ficheros fuente. Para a˜ nadir nuevos ficheros al proyecto pinchar con el bot´on derecho en el grupo Source y seleccionar la opci´on Add Files to Gruop ‘Source’. Aparecer´a una ventana de di´alogo que permite seleccionar los nuevos ficheros a incluir en el nuevo proyecto5. Tambi´en se debe cambiar el nombre del fichero ejecutable resultante. Para ello ver la opci´on de men´ u Project ->Options for Tarjet ‘Simulador’ ->Output. La figura 3 muestra la apariencia de la ventana de proyecto para un nuevo ejemplo de nombre ej2.

Figura 3: Nuevo ejemplo La figura tambi´en recoge la estructura t´ıpica (esqueleto) de un programa en ensamblador para 167 utilizando las herramientas de Keil. Nuestros ejercicios constar´ an de tres secciones: Secci´on de Inicio, Secci´on de Datos, y Secci´on de Programa. La primera secci´ on tiene u ´ nicamente un salto a la primera l´ınea de la Secci´on de Programa6. En la Secci´ on de Datos reservaremos espacio para variables globales mediante la directiva dsw. Tambi´en podemos reservar espacio e inicializar ciertas variables mediante la directiva dw (db para variables a nivel de byte). Para el resto de directivas consultar la informaci´on proporcionada en clase de teor´ıa, y la informaci´on en Books ->A166 & Utilities User’s Guide, Cap 3. 4 Para

cada nuevo ejercicio realizaremos un nuevo proyecto que por defecto en la ventana s´ olo aparecen los ficheros con extensi´ on .c. Si queremos a˜ nadir un fichero en ensamblador ser´ a necesario pedir a la herramienta que liste todos los ficheros con extensi´ on .a. 6 La Secci´ on de Programa puede ubicarse en cualquier zona de la memoria RAM salvo en direcciones de 0000H a 0100H direcciones en las que se ubica la Tabla de Vectores de Interrupci´ on. 5 Ojo

4

6.

Ejercicio 2

Escribir un programa que realice la b´ usqueda del m´aximo de los elementos de un vector de 10 datos, y devuelva la posici´ on (´ındice) en el que aparece el m´aximo (el ´ındice se guarda en una posici´ on de memoria reservada a tal efecto: directiva dsw). Crear un nuevo proyecto m´ aximo para almacenar y gestionar el nuevo programa. Probar el programa con dos vectores de datos distintos.

5

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.