Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P KuV4 v1.0 S
P KuV4 v1.0 S
Sustituye a: P_KuV4_v0.0
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
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
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
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
6.3
6.4
6.5
48
49
50
50
51
52
53
53
54
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:
a.caparros.aceyte@gmail.com
Igualmente son bienvenidas las sugerencias y comentarios que se estimen oportunos.
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 de depuracin
El EDI de Vision.
El entorno de desarrollo integrado (EDI, o IDE en ingls) combina, entre otras
caractersticas:
-
La gestin de proyectos
Ajuste de opciones
Ayuda en lnea.
Macroensamblador
Compilador
de C
Librera
de C
Gestor de
libreras
Librera de
usuario
Montador / Ubicador
Emulador o
programador
de 3 partes
Vision: depurador
Simulacin
de la UCP y
de los
perifricos
Adaptador
JTAG
(ULINK de
Keil)
Interfaz con
la placa de
aplicacin
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:
-
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:
barra de men y herramientas
ventana de
gestin de
proyecto
Zona de trabajo para nuevas
ventanas que puedan abrirse
en la edicin o depuracin
ventana de
salida de la
construccin
barra de herramientas
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
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
Cerrar ventana
Pestaa de la ventana de
documentos (visible)
Fig. 1.5:
Documentos
con pestaa
Pestaa de la ventana de
plantillas (no visible)
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.
10
ratn
pasando
por encima
de la
pestaa
Smbolo
cambiado de
orientacin.
Si se pincha,
se anula la
autoocultacin
b) Ventana reaparecida
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:
a) Por barra
de men
11
operador de ubicacin
independiente, acoplada en la zona
superior del entorno de desarrollo
(1)
12
Ubicarla en una zona del entorno, en forma de ventana de documento con pestaa.
Fig. 1.10: Efecto del arrastre de una pestaa, ventana o zona del entorno: marcado de zona de ubicacin
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
13
Si en el caso del ejemplo de la figura anterior se soltase el ratn, el efecto sera el mostrado en
la figura que sigue:
Fig. 1.12
Fig. 1.13
14
Fig. 1.14
Fig. 1.15
Fig. 1.16
Fig. 1.17
15
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:
Fig. 1.18
Obsrvese cmo se ha
aadido la pestaa de la
ventana de Proyecto
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:
Fig. 1.19: a)
b)
c)
Obsrvese cmo se ha
aadido la pestaa de la
ventana de Proyecto
16
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
Fig. 2.1: Nuevo proyecto
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:
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
17
Fig. 2.2:
Ventana para
dar nombre y
ubicar el
proyecto
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:
18
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).
19
20
Fig. 3.3:
Asociacin de un
fichero a un proyecto
21
(si se programa en
ensamblador,
asegrese de que la
plantilla de bsqueda
de ficheros es ASM
source file o bien All
files).
Fig. 3.4:
Asociacin de un
fichero a un proyecto
Para asociar un fichero a un proyecto no es necesario que est escrito del todo; estando
vaco tambin es posible asociarlo.
22
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.
Fig. 4.1:
23
Fig. 4.2:
a) Seleccin de las opciones
de salida en men emergente
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.
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
24
Frecuencia de trabajo
25
Reconstruir (Rebuild)
Fig. 4.5:
Iconos de construccin,
reconstruccin y
ensamblado/compilado
Construir (Build)
Ensamblar
o compilar
(Translate)
26
Obsrvese la marca
(flecha turquesa) que
se ubica en la lnea
con el error
seleccionado en la
ventana de salida
Doble pulsacin
izquierda del ratn
Fig. 4.7: Gestin de los errores desde la ventana de salida del proceso de construccin
27
1) seleccinese archivo
2) seleccinese ProjectOptions
for File ????.C
28
29
Fig. 4.11:
Opciones de
nivel de
optimizacin
Fig. 4.12:
Opciones de
nfasis de
optimizacin
a) en barra men
Fig. 5.1: Inicio del modo de depuracin
b) en barra de herramientas
30
Fig. 5.2:
Advertencia de
limitacin de tamao
para la versin demo
:
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.
31
Ventana de edicin
(a)
(b)
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
32
tem expandido:
pnchese en
para colapsar
Fig. 5.5:
Ventana de
registros
tem colapsado:
pnchese en +
para expandir
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.
33
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:
34
Direccin a
partir de la que
se encuentra la
instruccin
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.
35
Fig. 5.11:
Zona de
anlisis
Fig. 5.12:
Ventana
de
rdenes
36
Eliminar algunas de ellas por intiles, y abrir otras que no lo estn pero que se
considera que se necesitarn.
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.
Fig. 5.13: Seleccin de las ventanas a abrir, va opcin View en la barra de men
37
Ventana de
Ventanas de
pila de
memoria
llamadas Ventanas de
Ventanas de
observacin
puertos
serie
Ventana de
registros
Ventana de
comandos
Ventana de
anlisis
Ventana de
traza
Posibles ventanas
de memoria
Posibles ventanas
de observacin
Fig. 5.15:
a) Apertura de
ventanas de
perifricos
b)
Opciones de
puertos
c)
Opciones de
temporizadores
38
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.
= 1
= 0
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.
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
39
Fronteras
verticales
Fronteras
horizontales
Fig. 5.17: Redimensionado actuando sobre las fronteras entre zonas acopladas
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.
40
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.
Fig. 5.18: Ventanas de memoria
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.
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
41
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.
Fig. 5.19:
Opciones en las
ventanas de
observacin
42
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 <intro> se iran
aadiendo a la lista y se mostrara su valor, tal y como se recoge en la imagen siguiente:
43
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:
44
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:
Fig. 5.26:
Ventana de
introduccin de
valores numricos
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
Fig. 5.27:
Resultado de la introduccin
Ascensor de
desplazamiento vertical
45
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).
a)
b)
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 <intro> (fig. c)
c)
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.
Ventana de memoria
no congelada
Ventana de memoria
congelada
Rojo
Para datos CONST en FLASH o ROM, que se han accedido al menos una vez
Oro
Verde
46
BASE
PREFIJO
SUFIJO
EJEMPLO
binario
No admitido
Yy
101101y
octal
No admitido
Q, q, O u o
6721q (1)
decimal
No admitido
T o ninguno (2)
1743 1741T
hexadecimal
0x 0X
Hoh
0xA75F 0A75Fh(3)
(1)
(2)
(3)
47
48
Ventanas de gestin
del proyecto
Insertar/quitar punto
de ruptura
Abrir/cerrar
ventana de
Mostrar/Habilitar
observacin y
Abrir/cerrar
traza de
pila
de
llamadas
ventana de
ejecucin
comandos Abrir/cerrar
Paso largo
ventana de
Ventanas de
Actualizar
smbolos
Parar
puertos serie
ventanas
Ejecutar hasta
Ejecutar
Abrir/cerrar
Abrir/cerrar ventanas de
Ejecutar hasta
ventana de observacin
retornar
desensamblado
Reiniciar
UCP
Paso a paso
Mostrar
prxima
instruccin a
ejecutar
Abrir/cerrar
ventanas de
anlisis lgico
Abrir/cerrar Abrir/cerrar
ventana de ventana de
memoria
registros
Ventana
visor del
sistema
49
Opciones de
Abrir/cerrar
ventanas de
observacin
Opciones de
ventanas de
puertos serie
Opciones de
Abrir/cerrar
ventana de
anlisis lgico
50
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.
Marca verde:
Instruccin ejecutada
en alguna ocasin
Marca gris:
Instruccin no
ejecutada
todava
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).
51
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:
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)
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
52
Como se ve, existe una gran flexibilidad a la hora de definir un punto de ruptura.
N de orden en la lista
En ejecucin
en acceso
Habilitada (pinchar
aqu para inhibirla)
Retardo a la
activacin
Tipo de acceso a
tener en cuenta
Orden opcional a
ejecutar por Keil al
activarse la ruptura
Aade ruptura expresada
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:
Fig. 6.11: Codificacin por colores de las rupturas
Ruptura inhibida
Ruptura habilitada
Antonio Moreno Fdez.-Caparrs. Depto. Arquitectura de Computadores. UCO. Marzo 2010
53
F5
F11
F10
CTRL+F11
CTRL+F10
CTRL+B
F9
CRTL+F9
CTRL+Mays+F9
8. AYUDA EN LNEA
En la barra de men existe una ayuda en lnea que puede consultarse para profundizar o ver
con mayor detalle los aspectos de manejo de Keil uVision 4.
54
APNDICE 1
PASOS PARA CREAR UN PROYECTO, EDITAR EL CDIGO FUENTE Y DEPURARLO
1) Crear el proyecto:
Project
New Project
Project
Open Project
BARRA DE
HERRAMIENTAS
FileNew
ATAJO CON
TECLADO
Ctrl+N
BARRA DE
HERRAMIENTAS
FileOpen
ATAJO CON
TECLADO
Ctrl+O
BARRA DE
HERRAMIENTAS
FileSave
File
Save as
ATAJO CON
TECLADO
Ctrl+S
-------
--------
BARRA DE
HERRAMIENTAS
ProjectBuild target
ATAJO CON
TECLADO
F7
55
BARRA DE
HERRAMIENTAS
ATAJO CON
TECLADO
Ctrl+F5
8) Comenzar la depuracin
Utilizar, segn vaya conviniendo, las funciones de:
BARRA DE
HERRAMIENTAS
ATAJO CON
TECLADO
FUNCIN
BARRA DE MEN
Ejecucin
Debug
Run
F5
Paso a paso
Debug
Step
F11
Paso largo
Debug
Step Over
F10
Ejecutar hasta
Debug
Run to cursor line
Ctrl+F10
Ejecutar hasta
retornar
Debug
Step Out
Ctrl+F11
Puntos de
ruptura
Debug
Breakpoints
-------
Ctrl+B
Poner / Quitar
Debug
Insert/Remove Break.
ruptura
F9
Habili. / Inhibir
Debug
Enable/Disable Break.
ruptura
Ctrl+F9
Inhibir todas
Debug
Disable All Breakpts.
las rupturas
--------
Eliminar todas
Debug
Kill All Breakpoints
las rupturas
Ctrl+Mays+F9
56
ANOTACIONES:
57
ANOTACIONES:
58
ANOTACIONES:
59
ANOTACIONES:
60
NDICE DE FIGURAS
0 PREFACIO
Fig. 0.1: Componentes del sistema Vision de Keil.. 7
1 ASPECTO DE LA APLICACIN
Fig. 1.1: Aspecto inicial de la aplicacin. 9
Fig. 1.2: La barra de men y la de herramientas.. 9
Fig. 1.3: Smbolos de control de una ventana.. 10
Fig. 1.4: Opciones de posicin 10
Fig. 1.5: Documentos con pestaa. 10
Fig. 1.6: Ventana auto-ocultable. 10
Fig. 1.7: a) Ventana auto-ocultable a punto de reaparecer b) ventana reaparecida. 11
Fig. 1.8: Apertura de la ventan de proyecto a) por barra de men b) herramientas. 11
Fig. 1.9: Redistribucin de ventanas mediante arrastre.. 12
Fig. 1.10: Efecto del arrastre de una ventana del entorno: marcado de ubicacin.13
Fig. 1.11: Resultado de reubicacin a la izquierda del entorno. 14
Fig. 1.12: Reubicacin en la parte superior del entorno. 14
Fig. 1.13: Reubicacin en la parte derecha del entorno. 14
Fig. 1.14: Reubicacin en la parte inferior del entorno 15
Fig. 1.15: Reubicacin a la izquierda de de la zona de gestin del proyecto. 15
Fig. 1.16: Reubicacin encima de la zona de gestin del proyecto.. 15
Fig. 1.17: Reubicacin a la derecha de de la zona de gestin del proyecto 15
Fig. 1.18: Traslado de la pestaa de proyecto a la zona de trabajo. 16
Fig. 1.19: Traslado de todas las pestaas en la zona de proyecto a la zona de trabajo... 16
2 CREACIN DE UN PROYECTO
Fig. 2.1: Apertura de nuevo proyecto. 17
Fig. 2.2: Ventana para dar nombre y ubicar el proyecto. 18
Fig. 2.3: Ventana para seleccionar el fabricante del dispositivo 18
Fig. 2.4: Ventana para seleccionar el modelo de microcontrolador.. 19
Fig. 2.5: Ventana para incluir o no una plantilla al proyecto.. 19
Fig. 2.6: Ventana con las opciones de depuracin.. 20
3 EDICIN DEL CDIGO FUENTE
Fig. 3.1: a) Creacin de un fichero va barra de men b) dem va barra de herramientas. 20
Fig. 3.2: Modos de abrir un proyecto a) Va barra men b) dem barra herramientas. 21
Fig. 3.3: Asociacin de un fichero a un proyecto. 21
Fig. 3.4: Asociacin de un fichero a un proyecto (2) 22
Fig. 3.5: Resultado de la asociacin.. 22
Fig. 3.6: Apertura de un mdulo fuente a) va men local b) va barra de herramientas... 22
Fig. 3.7: Ventana de edicin lista para ser usada 23
4 CONSTRUCCIN DEL FICHERO EJECUTABLE FINAL
Fig. 4.1: Construccin de la aplicacin final a) va men local b) va barra herramientas 23
Fig. 4.2: Seleccin de las opciones de salida a) en men emergente b) en herramientas... 24
Fig. 4.3: Pestaa con las opciones de salida de un proyecto.... 25
Fig. 4.4: Pestaa para la definicin del sistema microcontrolador 25
Fig. 4.5: Iconos de construccin, reconstruccin y ensamblado/compilado 26
Fig. 4.6: Mensajes en la ventana de salida sobre el proceso de construccin... 26
Fig. 4.7: Gestin de los errores desde la ventana de salida del proceso de construccin 27
Fig. 4.8: Opciones de compilacin a) va barra de men b) va ventana de proyecto.. 28
Fig. 4.9: Opciones de compilacin: propiedades. 29
Fig. 4.10: Opciones de compilacin: nivel y nfasis de optimizacin29
Fig. 4.11: Opciones del nivel de optimizacin.. 30
Fig. 4.12: Opciones de nfasis de optimizacin... 30
61
62
HISTORIAL DE REVISIONES
NOMBRE
VERSIN
FECHA
DESCRIPCIN
P_KuV4_v0.0
0.0
8/3/2010
Versin inicial
P_KuV4_v1.0
1.0
11/3/2010
63