1123021 Microcontroladores Universidad Aut´onoma Metropolitana Tutorial de Code Composer Studio El objetivo de esta pr´ actica es introducirte al uso del IDE (Integrated Development Environment) Code Composer Studio (CCS), desde donde podr´as compilar, ensamblar y depurar c´ odigo fuente. Las computadoras del laboratorio tienen instalada la versi´on m´as reciente de CCS, sin embargo para poderlo instalar en tu computadora deber´as registrarte como usuario en el sitio de Texas Instruments y descargar el instalador desde http://www.ti.com/tool/ccstudio. Es altamente recomendable que realices dicho registro ya que esto te permitir´ a descargar un sin n´ umero de documentaci´on u ´til desde el sitio de Texas Instruments. Parte 1. Identificando el modelo del MSP430 y la versi´ on de CCS Antes de empezar a trabajar con tu LaunchPad, es necesario que identifiques que tipo de MSP430 est´ a conectado a tu LaunchPad. Localiza en tu LaunchPad la montura etiquetada como IC1 y toma nota de la matr´ıcula impresa en la parte superior del circuito integrado. El LaunchPad viene con dos microprocesadores, y es muy probable que el que se encuentra montado es el modelo MSP430G2553. La versi´on del CCS se obtiene del men´ u Help About Code Composer Studio . Para el caso de las Figuras 1a y 1b podemos ver que tenemos el modelo MSP430G2452 del MSP430 y la versi´on 6.1.0 del CCS. (a) Matr´ıcula del MSP430 (b) Versi´on del Code Composer Studio Figura 1: Datos importantes para trabajar con el CCS. Parte 2. Creando un nuevo proyecto para ensamblador en el CCS Cada que se empiece un ejercicio, se deber´a crear un nuevo proyecto de dise˜ no en el CCS. Para crear un nuevo proyecto, solo ve al men´ u File New CCS Project . Adaptado del curso EE3376 de la UTEP 1 1123021 Microcontroladores Universidad Aut´onoma Metropolitana Al seleccionar la opci´ on CCS Project se abrir´a la ventana New CCS Project . Sigue los pasos que a continuaci´ on se listan: 1. Nombra el proyecto actual. En este caso nombraremos el proyecto actual como demo_msp430. 2. Asegurate que la casilla use default location este deshabilitada. 3. Da click sobre el bot´ on Browse. 4. Elige una ubicaci´ on para el proyecto actual y da click en OK. 5. En la secci´ on Device, elige el modelo que se encuentra montado en tu LaunchPad. Adaptado del curso EE3376 de la UTEP 2 1123021 Microcontroladores Universidad Aut´onoma Metropolitana 6. En la secci´ on Project templates and examples, selecciona la opci´on Empty Assembly-only Project. 7. Da click en Finish. ¡Listo!, has creado un nuevo proyecto en el Code Composer Studio. Parte 3. Corriendo un programa en ensamblador paso a paso. En esta parte aprender´ as como correr paso a paso un programa en ensamblador. Primero necesitamos a˜ nadir un programa fuente al proyecto actual. Da click derecho sobre el nombre del proyecto y despu´es selecciona New Source File Adaptado del curso EE3376 de la UTEP 3 1123021 Microcontroladores Universidad Aut´onoma Metropolitana lo cual abrir´ a la ventana New Source File. En el campo Source file le asignar´as un nombre al archivo que contendr´ a el programa fuente, introduce el nombre demo_msp430.asm. En el campo Template elige None para crear un archivo en blanco. Da click sobre Finish para cerrar la ventana. Esto abrir´ a un editor con un archivo en blanco, en donde tendr´as que introducir el c´odigo listado en C´ odigo 1. Dicho programa suma cuatro pares de n´ umeros, los cuales pueden interpretarse como n´ umeros con o sin signo. Si se interpretan como n´ umeros sin signo, la bandera C indica la condici´ on de sobreflujo. Cuando se interpretan como n´ umeros con signo, es la bandera V la que indica dicha condici´on. Despu´es de cada suma, la bandera C se usa para modificar el estado del LED1 y la bandera V para modificar el estado del LED2. Si copias y pegas el c´ odigo, aseg´ urate de que los espacios y las tabulaciones se conserven tal cual aparecen, de otra forma obtendr´ as errores al compilar. Adaptado del curso EE3376 de la UTEP 4 1123021 Microcontroladores Universidad Aut´onoma Metropolitana C´ odigo 1 : demo msp430.asm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ;--------------------------------------------------------------------------------; EE3376 MSP430 Lab 1 ; The University of Texas at El Paso ; Autores: Victor Barraza y Eric MacDonald ; ; Un programa sencillo en ensamblador que suma cuatro pares de numeros, desplega ; ndo el estado de las banderas C y V en los LEDs 1 y 2 de la LaunchPad. ;--------------------------------------------------------------------------------; Las siguientes lineas deben incluirse en todos los programas en ensamblador. ;--------------------------------------------------------------------------------.cdecls C,LIST, "msp430G2553.h" ;Esta biblioteca debe cambiarse para que coincida ;con la matricula de tu MSP430 .text ;Marca el inico del programa .global _main ;Punto de arranque para el vector de reset ;------------------------------------------------------------------------------_main: mov.w #WDTPW|WDTHOLD, &WDTCTL ;detiene el temporizador "watchdog" clr.b &P1OUT ;inicia con los LEDs apagados mov.b #0x41, &P1DIR ;almacena el numero #01000001b en el registro P1DIR, ;lo cual configura P1.0 y P1.6 como salidas mov.w mov.w add.w mov.b mov.w rra.w #0xFFFF,r4 #0xFFFF,r5 r4,r5 sr, &P1OUT sr, r6 r6 ;carga r4 con 64532 (sin signo) o -1 (con signo) ;carga r5 con 64532 (sin signo) o -1 (con signo) ;suma r4 + r5 y almacena el resultado en r5 ;prende LED1 con base en el estado de la badera C ;carga el contenido de sr en r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 7 de r6 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 6 de r6 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V clr.b &P1OUT ;apaga ambos LEDs mov.w mov.w add.w mov.b mov.w rra.w #0x8000,r4 #0x8000,r5 r4,r5 sr, &P1OUT sr, r6 r6 mov.w mov.w add.w mov.b mov.w rra.w #0x0001,r4 #0x0001,r5 r4,r5 sr, &P1OUT sr, r6 r6 mov.w mov.w add.w mov.b mov.w rra.w #0x4000,r4 #0x4000,r5 r4,r5 sr, &P1OUT sr, r6 r6 ;carga r4 con 32252 (sin signo) o -32253 (con signo) ;carga r4 con 32252 (sin signo) o -32253 (con signo) ;suma r4 + r5 y almacena el resultado en r5 ;prende LED1 con base en el estado de la bandera C ;carga el contenido de sr en r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 7 de r6 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 6 de r6 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V clr.b &P1OUT ;apaga ambos LEDs ;carga r4 con 1 ;carag r5 con 1 ;suma r4 + r5 y almacena el resultado en r5 ;prende LED1 con base en el estado de la bandera C ;carga el contenido de sr en r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 7 de r6 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 6 de r6 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V clr.b &P1OUT ;apaga ambos LEDs ;carga r4 con 16182 ;carga r5 con 16182 ;suma r4 + r5 y almacena el resultado en r5 ;prende LED1 con base en el estado de la bandera C ;carga el contenido de sr en r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V Adaptado del curso EE3376 de la UTEP 5 1123021 Microcontroladores 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 Universidad Aut´onoma Metropolitana ;despues de la suma se encuentra en el bit 7 de r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V ;despues de la suma se encuentra en el bit 6 de r6 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V clr.b &P1OUT ;apaga ambos LEDs rra.w r6 infloop: jmp infloop ;--------------------------------------------------------------------------------; Las siguientes lineas definen lo que pasa cuando el boton de reset es presionado ; Estas lineas deben ser incluidas en todos los programas. ;--------------------------------------------------------------------------------.sect ".reset" .short_main Una ves capturado el c´ odigo fuente demo_msp430, tu ´area de trabajo debe lucir de la siguiente forma Ahora compilaremos nuestro proyecto. Existen dos formas de hacerlo: (1) Presionando las teclas ctrl + B , o (2) mediante el men´ u Project Build Project Adaptado del curso EE3376 de la UTEP 6 1123021 Microcontroladores Universidad Aut´onoma Metropolitana Antes de procede, aseg´ urate que tu LaunchPad se encuentra conectada a tu computadora a trav´es del puerto USB. Ahora indicaremos al CCS que entre a modo de depuraci´on. De nuevo, existen dos formas de iniciar el modo de depuraci´on: (1) Presionando la tecla F1 , o (2) mediante el men´ u Run Debug Inmediatamente CCS se comunicar´a con tu LaunchPad y descargar´a a memoria flash el contenido de tu programa, lo cual tomar´a unos cuantos segundos. Una ves que el programa ha sido descargado, podemos ejecutarlo paso a paso de dos formas: (1) Presionando la tecla F5 , o (2) dando click sobre el bot´ on Step Into o Step Over, lo cual ejecutar´ a la instrucci´ on actual e incrementar´a el PC de forma que apunte a la siguiente instrucci´ on. Conforme se ejecutan las instrucciones, nosotros seremos capaces de ver los cambios en los registros en la secci´on Registers, ubicada en la esquina superior derecha. La siguiente figura muestra el aspecto del CCS despu´es de haber presionado el bot´on Step Over cuatro veces. La siguiente instrucci´ on a ejecutarse se muestra sombreada en la ventana que muestra el c´odigo fuente. En la ventana de registros observar´as que dos registros cambiaron como resultado de la instrucci´ on previa: (1) el registro PC, que ahora apunta a la siguiente instrucci´ on y cambia continuamente durante la ejecuci´on del programa; (2) el registro r4 el cual se carg´ o con unos en la instrucci´on anterior. Ambos registros est´an resaltados en amarillo, indicando que cambiaron. Ejecuta todo el programa paso a paso, observa que en algunos casos los LEDs en tu LaunchPad se encender´an, lo cual corresponder´a al estado de Adaptado del curso EE3376 de la UTEP 7 1123021 Microcontroladores Universidad Aut´onoma Metropolitana las banderas C y V, modificadas por la instrucci´on de suma. En la linea 67 del C´ odigo 1, ambos LEDs se prenden al escribir al puerto P1, ¿puedes explicar por que?. Existen otras herramientas en el modo de depuraci´on como: Run Free Run . Corre todo el programa de una sola vez, deteni´ endose solo si encuentra un punto de paro. El c´ odigo en demo_msp430.asm fue espec´ıficamente dise˜ nado para correrse paso a paso. Intenta correrlo con esta herramienta y no podr´as ver nada debido a la velocidad del reloj principal. Run New Breakpoint . Crea un nuevo punto de paro, permitiendo a los usuarios correr el programa a toda velocidad y detener su ejecuci´on en ese punto para evaluar el estado del procesador. Tambi´en puedes crear un nuevo punto de paro dando click derecho sobre cualquier linea de c´odigo. View Memory Browser . Permite examinar el contenido de la memoria mientras el programa esta detenido. View Expressions . Permite examinar el contenido de localidades de memoria, registros, y/o expresiones que contengan ambos. Adaptado del curso EE3376 de la UTEP 8
© Copyright 2024