PDF de programación - Práctica 2 - Desarrollo de código para microcontrolador

Imágen de pdf Práctica 2 - Desarrollo de código para microcontrolador

Práctica 2 - Desarrollo de código para microcontroladorgráfica de visualizaciones

Publicado el 19 de Enero del 2019
864 visualizaciones desde el 19 de Enero del 2019
800,2 KB
13 paginas
Creado hace 10a (13/12/2013)
. . . . . .. . . .

Práctica 2



Página Web: https://web08.uah.es/
e-mail: [email protected]

Despacho: N-245

Departamento de Automática

Desarrollo de código para
microcontrolador

.

.

.

.

.

.

.

.



Laboratorio de Informática Industrial



.
.



Desarrollo de código para
microcontrolador



Introducción

En las dos últimas décadas los microcontroladores han cambiado radicalmente la forma en la que
se analiza y controla el mundo que nos rodea. Es difícil imaginarnos nuestra vida sin teléfono, microondas,
televisión, ascensor, lavadora, lavavajillas,… El núcleo del sistema electrónico de todos estos dispositivos es
un microcontrolador. Para que estos elementos cumplan su función es necesario programarlos, indicar qué
tareas tienen que llevar a cabo y como. C es un lenguaje que se puede usar para este propósito. Al ser un
lenguaje de alto nivel el trabajo del programador se simplifica. Una vez compilado y enlazado el programa
fuente, se carga en la memoria del microcontrolador y listo, a funcionar.

En esta práctica el alumno va a trabajar con el entorno de desarrollo Keil µVision4. Este entorno
se usara para desarrollar pequeños programas sobre microcontroladores de la familia ARM. El alumno
también tendrá que usar el simulador incluido en el entorno, para comprobar el buen funcionamiento de los
programas creados.

En los siguientes apartados se va a indicar los pasos que hay que seguir para crear un programa en
este entorno, y simular su funcionamiento en el microcontrolador de la familia ARM. En cada apartado se
añaden tareas a realizar que el alumno debe completar.



Instalación del entorno

Desde el enlace https://www.keil.com/demo/eval/armv4.htm se permite la descarga de la
versión de evaluación del entorno Keil µVision4. Esta versión permite crear programas de hasta 2 Kbytes,
suficiente para la dimensión de las prácticas que se pretenden realizar.



¿Qué es µVision®4?

El entorno de desarrollo µVision© de Keil© es una herramienta IDE (Entorno de Desarrollo
Integrado) profesional para el desarrollo de aplicaciones basadas en microcontrolador. Este entorno engloba
una serie de componentes mediante los que se pueden llevar a cabo los procesos inherentes al desarrollo y
depuración de aplicaciones. La figura siguiente muestra los módulos que integran este entorno de desarrollo.



Práctica 2

2

Desarrollo de código para microcontrolador



. . . . . . . . .



Figura 1. Componentes del entorno de desarrollo Keil µVision©.



La interfaz de este entorno nos permite definir las características de nuestro proyecto, como el
tipo de procesador que utilizaremos, tipo de optimización a la hora de compilar, tipos de ficheros al
ensamblar (o compilar) y montar, etc. µVision nos permite, asimismo, depurar el código desarrollado. Para
ello, dispone del modo depuración, mediante el cual vuelca el código en la placa de desarrollo o placa de
aplicación final, ejecutándose el código en esta y comunicándose con µVision. Para ello, el PC y la placa de
desarrollo se conectan mediante un cable de conversión USB a JTAG. También es posible realizar la
depuración sin un soporte físico o placa de desarrollo que ejecute realmente el código. Para ello, µVision
integra un potente simulador con el que se puede simular el funcionamiento del procesador y todos los
periféricos que éste integre.


Los ficheros fuente creados con el IDE de µVision se pasan al compilador o al macroensamblador
para ser procesados y obtener los ficheros objeto reubicables, que luego pasan al módulo montador para
obtener el fichero ejecutable. Los ficheros ejecutables (.HEX) se utilizan, por ejemplo, para programar la
memoria Flash del microcontrolador.


El gestor de librerías permite la utilización de librerías de módulos objeto previamente generadas
con el compilador o el macroensamblador. µVision también incluye una serie de librerías, por ejemplo, las
que incluyen ciertas funciones matemáticas, etc.



Programación en C con KEIL µVision®4



Keil©, una herramienta software para el desarrollo de proyectos en

A continuación se presenta una introducción al manejo del entorno de desarrollo µVision© de
lenguaje C basados en

3



microcontroladores. Entre otras cosas, nos permite compilar, simular, depurar y cargar el código en nuestro
microcontrolador (LPC1768, en el caso que nos ocupa).


Se hace una introducción a este entorno de desarrollo a través de un ejemplo sencillo que ilustra
la creación de un proyecto, su simulación y depuración para visualizar variables, así como el empleo de los
breakpoints.



Creación de un proyecto en C


La figura 1 esquematiza de una manera muy general los pasos que debemos seguir en el diseño

Análisis del problema

de un programa para resolver un determinado problema con un microcontrolador.



Diseño del programa: diagrama de bloques

Codificación

Depuración



Figura 2. Pasos en el diseño de un programa para microcontrolador.

A continuación, se ilustrará cómo crear un proyecto en µVision con el programa fuente que
previamente hemos escrito con un editor de texto o desde el propio editor de µVision. Luego se compilará
este programa y se simulará para irlo depurando, si fuera necesario.


Comenzamos creando un nuevo proyecto, siguiendo los pasos indicados en la figura 3. Si ya se
hubiese creado un proyecto anteriormente, entonces habría que abrirlo. A continuación se abre una ventana
donde escribimos el nombre del proyecto (Ejemplo1) y lo guardamos (fig. 3B). Luego se abrirá otra ventana
(fig. 3C) en la que hay que seleccionar el microcontrolador que se vaya a utilizar (LPC1768). Para ello se
selecciona el fabricante y se hace clic en el símbolo ‘+’ a su izquierda, con objeto de que aparezcan todos los
modelos que corresponden a ese fabricante. En la siguiente ventana (fig. 3D) que se abre se pregunta si se
desea copiar al proyecto un fichero con una plantilla para iniciar el código que se vaya a escribir (responder
SI).



A

B

Práctica 2

4

Desarrollo de código para microcontrolador



. . . . . . . . .



C

D

Figura 3. Ventanas para crear un nuevo proyecto, seleccionar el fabricante y el dispositivo.



El fichero startup_LPC17xx.s realiza una configuración inicial del microcontrolador, que permite al
usuario trabajar con un nivel mayor de abstracción. Una vez realizada esta configuración, se llama a la
función main(), que será la función principal de nuestro programa en C.

Configuración del entorno


Seleccionamos a continuación el compilador adecuado en la ventana de Configuración del
Entorno (figura 4). A esta ventana se accede desde el menú de “Keil Project -> Manage -> Components,
Environment, Books…”. En la ventana que se abre seleccionamos la solapa Folders/Extensions.


Podemos elegir entre dos compiladores posibles:


 Compilador Real/View: Es el compilador de ARM, del que disponemos de una versión de evaluación
restringida a 32Kbytes de código. Para códigos más amplios es necesario comprar la licencia. Esta es la
opción que seleccionaremos.

 Compilador de GNU: Versión libre.

5



Figura 4. Ventana de configuración de entorno.



Configuración de opciones


Renombramos la entrada Target 1 como LPC1768 (haciendo click sobre ella, tras estar
previamente seleccionada). Hacer click con el botón derecho del ratón sobre la entrada LPC1768 para que
aparezca su menú contextual y seleccionar Options for Target ‘LPC1768’… (Figura 5).

Figura 5. Menú contextual de LPC1768.



Una vez aparezca la ventana ‘Options for Ejemplo1’ configuramos las opciones que aparecen a
continuación (figuras 6A, 6B y 6C). Seleccionamos la velocidad de cristal que viene por defecto (12 MHz), ya
que será ese el valor del cristal de nuestra tarjeta en el resto de prácticas.


Práctica 2

6

Desarrollo de código para microcontrolador






. . . . . . . . .



Figura 6A. Opciones para la pestaña Target.



Figura 6B. Opciones para la pestaña Debug. Observar que esta práctica sólo será simulada, y no volcaremos

el código sobre ninguna placa externa.



7







Figura 5C. Opciones para la pestaña C/C++.



Figura 6C. Opciones para la pestaña C/C++.



Agregar ficheros al proyecto


Renombramos la entrada del árbol de proyecto Source Group 1 como StartUp. Además de contener
esta entrada de proyecto al fichero startup_LPC17xx.s, incluiremos otro fichero llamado system_LPC17xx.c
necesario para la configuración inicial del microcontrolador. Para ello, proceder como se ilustra en las figuras
7 a 9 (system_LPC17xx.c se encuentra en la ruta C:\Keil\ARM\Startup\NXP\LPC17xx\, pero es muy
importante copiar este fichero en el mismo directorio que nuestro proyecto e incluirlo desde ahí, para así no
correr el riesgo de modificar el original). Ahora nos situamos sobre la entrada LPC1768 del árbol de
proyecto, hacemos click con el botón derecho y seleccionamos Add Group…. Se creará una entrada llamada
New Group que renombraremos como SourceFiles. Del mismo modo que hemos incluido el fichero
system_LPC17xx.c a la entrada StartUp, incluiremos nuestro fichero fuente main.c, pero en la entrada SourceFiles
que acabamos de crear (figura 10). Es necesario saber dónde hemos almacenado
  • Links de descarga
http://lwp-l.com/pdf14902

Comentarios de: Práctica 2 - Desarrollo de código para microcontrolador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad