Sie sind auf Seite 1von 8

1123021 Microcontroladores Universidad Autonoma Metropolitana

Tutorial de Code Composer Studio


El objetivo de esta practica es introducirte al uso del IDE (Integrated Development
Environment) Code Composer Studio (CCS), desde donde podras compilar, ensamblar
y depurar c odigo fuente. Las computadoras del laboratorio tienen instalada la version
mas reciente de CCS, sin embargo para poderlo instalar en tu computadora deberas 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
a descargar un sin numero de documentacion util 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 ti-
po de MSP430 est a conectado a tu LaunchPad. Localiza en tu LaunchPad la montura
etiquetada como IC1 y toma nota de la matrcula 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 version del CCS se obtiene del
menu 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 version 6.1.0 del CCS.

(a) Matrcula del MSP430 (b) Version 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 debera 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 Autonoma Metropolitana

Al seleccionar la opci
on CCS Project se abrira la ventana New CCS Project . Sigue los pasos
que a continuacion 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 Autonoma Metropolitana

6. En la secci
on Project templates and examples, selecciona la opcion 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 aprenderas como correr paso a paso un programa en ensamblador. Primero
necesitamos anadir un programa fuente al proyecto actual. Da click derecho sobre el nombre
del proyecto y despues selecciona New Source File

Adaptado del curso EE3376 de la UTEP 3


1123021 Microcontroladores Universidad Autonoma Metropolitana

lo cual abrir
a la ventana New Source File. En el campo Source file le asignaras un nom-
bre 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 abrira un editor con un archivo en blanco, en donde tendras que introducir el codigo
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 condicion de sobreflujo. Cuando se interpretan como n umeros con
signo, es la bandera V la que indica dicha condicion. Despues 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 Autonoma Metropolitana

C
odigo 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 Autonoma 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


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 Autonoma Metropolitana

Antes de procede, asegurate que tu LaunchPad se encuentra conectada a tu computadora


a traves del puerto USB. Ahora indicaremos al CCS que entre a modo de depuracion. De
nuevo, existen dos formas de iniciar el modo de depuracion: (1) Presionando la tecla F1 ,
o (2) mediante el menu Run Debug

Inmediatamente CCS se comunicara con tu LaunchPad y descargara a memoria flash el


contenido de tu programa, lo cual tomara 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 ejecutara la instrucci


on actual e incrementara 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 seccion Registers, ubicada en la esquina superior
derecha. La siguiente figura muestra el aspecto del CCS despues de haber presionado el
boton Step Over cuatro veces.

La siguiente instruccion a ejecutarse se muestra sombreada en la ventana que muestra


el codigo fuente. En la ventana de registros observaras que dos registros cambiaron co-
mo resultado de la instruccion previa: (1) el registro PC, que ahora apunta a la siguiente
instruccion y cambia continuamente durante la ejecucion del programa; (2) el registro r4
el cual se cargo con unos en la instruccion anterior. Ambos registros estan resaltados en
amarillo, indicando que cambiaron. Ejecuta todo el programa paso a paso, observa que en
algunos casos los LEDs en tu LaunchPad se encenderan, lo cual correspondera al estado de

Adaptado del curso EE3376 de la UTEP 7


1123021 Microcontroladores Universidad Autonoma Metropolitana

las banderas C y V, modificadas por la instruccion 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 depuracion como:
Run Free Run . Corre todo el programa de una sola vez, deteniendose solo si encuentra
un punto de paro. El codigo en demo_msp430.asm fue especficamente dise nado para
correrse paso a paso. Intenta correrlo con esta herramienta y no podras 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 ejecucion en ese punto para evaluar el
estado del procesador. Tambien puedes crear un nuevo punto de paro dando click
derecho sobre cualquier linea de codigo.
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

Das könnte Ihnen auch gefallen