Está en la página 1de 8

1123021 Microcontroladores Universidad Autónoma Metropolitana

Tutorial de Code Composer Studio


El objetivo de esta práctica es introducirte al uso del IDE (Integrated Development
Environment) Code Composer Studio (CCS), desde donde podrás compilar, ensamblar
y depurar código fuente. Las computadoras del laboratorio tienen instalada la versión
más reciente de CCS, sin embargo para poderlo instalar en tu computadora deberás re-
gistrarte 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 regis-
tro ya que esto te permitirá descargar un sin número de documentación útil desde el sitio
de Texas Instruments.

Parte 1. Identificando el modelo del MSP430 y la versión de CCS

Antes de empezar a trabajar con tu LaunchPad, es necesario que identifiques que ti-
po de MSP430 está 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 circui-
to integrado. El LaunchPad viene con dos microprocesadores, y es muy probable que el
que se encuentra montado es el modelo MSP430G2553. La versión del CCS se obtiene del
menú 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ón 6.1.0 del CCS.

(a) Matrı́cula del MSP430 (b) Versión 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á crear un nuevo proyecto de diseño en el


CCS. Para crear un nuevo proyecto, solo ve al menú File New CCS Project .

Adaptado del curso EE3376 de la UTEP 1


1123021 Microcontroladores Universidad Autónoma Metropolitana

Al seleccionar la opción CCS Project se abrirá la ventana New CCS Project . Sigue los pasos
que a continuación 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ón Browse.

4. Elige una ubicación para el proyecto actual y da click en OK.

5. En la sección Device, elige el modelo que se encuentra montado en tu LaunchPad.

Adaptado del curso EE3376 de la UTEP 2


1123021 Microcontroladores Universidad Autónoma Metropolitana

6. En la sección Project templates and examples, selecciona la opción 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ás como correr paso a paso un programa en ensamblador. Primero
necesitamos añadir un programa fuente al proyecto actual. Da click derecho sobre el nombre
del proyecto y después selecciona New Source File

Adaptado del curso EE3376 de la UTEP 3


1123021 Microcontroladores Universidad Autónoma Metropolitana

lo cual abrirá la ventana New Source File. En el campo Source file le asignarás un nom-
bre al archivo que contendrá 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á un editor con un archivo en blanco, en donde tendrás que introducir el código
listado en Código 1. Dicho programa suma cuatro pares de números, los cuales pueden
interpretarse como números con o sin signo. Si se interpretan como números sin signo,
la bandera C indica la condición de sobreflujo. Cuando se interpretan como números con
signo, es la bandera V la que indica dicha condición. Después 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ódigo, asegúrate de que los espacios y las tabulaciones se
conserven tal cual aparecen, de otra forma obtendrás errores al compilar.

Adaptado del curso EE3376 de la UTEP 4


1123021 Microcontroladores Universidad Autónoma Metropolitana

Código 1 : demo msp430.asm


1 ;---------------------------------------------------------------------------------
2 ; EE3376 MSP430 Lab 1
3 ; The University of Texas at El Paso
4 ; Autores: Victor Barraza y Eric MacDonald
5 ;
6 ; Un programa sencillo en ensamblador que suma cuatro pares de numeros, desplega
7 ; ndo el estado de las banderas C y V en los LEDs 1 y 2 de la LaunchPad.
8 ;---------------------------------------------------------------------------------
9 ; Las siguientes lineas deben incluirse en todos los programas en ensamblador.
10 ;---------------------------------------------------------------------------------
11 .cdecls C,LIST, "msp430G2553.h" ;Esta biblioteca debe cambiarse para que coincida
12 ;con la matricula de tu MSP430
13 .text ;Marca el inico del programa
14 .global _main ;Punto de arranque para el vector de reset
15 ;-------------------------------------------------------------------------------
16 _main:
17 mov.w #WDTPW|WDTHOLD, &WDTCTL ;detiene el temporizador "watchdog"
18 clr.b &P1OUT ;inicia con los LEDs apagados
19 mov.b #0x41, &P1DIR ;almacena el numero #01000001b en el registro P1DIR,
20 ;lo cual configura P1.0 y P1.6 como salidas
21
22 mov.w #0xFFFF,r4
;carga r4 con 64532 (sin signo) o -1 (con signo)
23 mov.w #0xFFFF,r5
;carga r5 con 64532 (sin signo) o -1 (con signo)
24 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
25 mov.b sr, &P1OUT
;prende LED1 con base en el estado de la badera C
26 mov.w sr, r6 ;carga el contenido de sr en r6
27 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
28 ;despues de la suma se encuentra en el bit 7 de r6
29 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
30 ;despues de la suma se encuentra en el bit 6 de r6
31 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
32 clr.b &P1OUT ;apaga ambos LEDs
33
34 mov.w #0x8000,r4
;carga r4 con 32252 (sin signo) o -32253 (con signo)
35 mov.w #0x8000,r5
;carga r4 con 32252 (sin signo) o -32253 (con signo)
36 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
37 mov.b sr, &P1OUT
;prende LED1 con base en el estado de la bandera C
38 mov.w sr, r6 ;carga el contenido de sr en r6
39 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
40 ;despues de la suma se encuentra en el bit 7 de r6
41 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
42 ;despues de la suma se encuentra en el bit 6 de r6
43 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
44 clr.b &P1OUT ;apaga ambos LEDs
45
46 mov.w #0x0001,r4
;carga r4 con 1
47 mov.w #0x0001,r5
;carag r5 con 1
48 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
49 mov.b sr, &P1OUT
;prende LED1 con base en el estado de la bandera C
50 mov.w sr, r6 ;carga el contenido de sr en r6
51 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
52 ;despues de la suma se encuentra en el bit 7 de r6
53 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
54 ;despues de la suma se encuentra en el bit 6 de r6
55 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
56 clr.b &P1OUT ;apaga ambos LEDs
57
58 mov.w #0x4000,r4 ;carga r4 con 16182
59 mov.w #0x4000,r5 ;carga r5 con 16182
60 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
61 mov.b sr, &P1OUT ;prende LED1 con base en el estado de la bandera C
62 mov.w sr, r6 ;carga el contenido de sr en r6
63 rra.w 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 Universidad Autónoma Metropolitana

64 ;despues de la suma se encuentra en el bit 7 de r6


65 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
66 ;despues de la suma se encuentra en el bit 6 de r6
67 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
68 clr.b &P1OUT ;apaga ambos LEDs
69
70 infloop:
71 jmp infloop
72
73 ;---------------------------------------------------------------------------------
74 ; Las siguientes lineas definen lo que pasa cuando el boton de reset es presionado
75 ; Estas lineas deben ser incluidas en todos los programas.
76 ;---------------------------------------------------------------------------------
77 .sect ".reset"
78 .short_main

Una ves capturado el código fuente demo_msp430, tu área 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ú Project Build Project

Adaptado del curso EE3376 de la UTEP 6


1123021 Microcontroladores Universidad Autónoma Metropolitana

Antes de procede, asegúrate que tu LaunchPad se encuentra conectada a tu computadora


a través del puerto USB. Ahora indicaremos al CCS que entre a modo de depuración. De
nuevo, existen dos formas de iniciar el modo de depuración: (1) Presionando la tecla F1 ,
o (2) mediante el menú Run Debug

Inmediatamente CCS se comunicará con tu LaunchPad y descargará a memoria flash el


contenido de tu programa, lo cual tomará 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ón Step Into o Step Over,

lo cual ejecutará la instrucción actual e incrementará el PC de forma que apunte a la


siguiente instrucción. Conforme se ejecutan las instrucciones, nosotros seremos capaces de
ver los cambios en los registros en la sección Registers, ubicada en la esquina superior
derecha. La siguiente figura muestra el aspecto del CCS después de haber presionado el
botón Step Over cuatro veces.

La siguiente instrucción a ejecutarse se muestra sombreada en la ventana que muestra


el código fuente. En la ventana de registros observarás que dos registros cambiaron co-
mo resultado de la instrucción previa: (1) el registro PC, que ahora apunta a la siguiente
instrucción y cambia continuamente durante la ejecución del programa; (2) el registro r4
el cual se cargó con unos en la instrucción anterior. Ambos registros están 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án, lo cual corresponderá al estado de

Adaptado del curso EE3376 de la UTEP 7


1123021 Microcontroladores Universidad Autónoma Metropolitana

las banderas C y V, modificadas por la instrucción de suma. En la linea 67 del Código


1, ambos LEDs se prenden al escribir al puerto P1, ¿puedes explicar por que?.
Existen otras herramientas en el modo de depuración como:
Run Free Run . Corre todo el programa de una sola vez, deteniéndose solo si encuentra
un punto de paro. El código en demo_msp430.asm fue especı́ficamente diseñado para
correrse paso a paso. Intenta correrlo con esta herramienta y no podrás 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ón en ese punto para evaluar el
estado del procesador. También puedes crear un nuevo punto de paro dando click
derecho sobre cualquier linea de código.
View Memory Browser . Permite examinar el contenido de la memoria mientras el pro-
grama 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

También podría gustarte