Tutorial de Code Composer Studio - UAM...

8
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 as reciente de CCS, sin embargo para poderlo instalar en tu computadora deber´ as 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 n´ umero de documentaci´ on ´ 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 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´ 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

Transcript of Tutorial de Code Composer Studio - UAM...

Page 1: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

Tutorial de Code Composer Studio

El objetivo de esta practica es introducirte al uso del IDE (Integrated DevelopmentEnvironment) Code Composer Studio (CCS), desde donde podras compilar, ensamblary depurar codigo fuente. Las computadoras del laboratorio tienen instalada la versionmas 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 desdehttp://www.ti.com/tool/ccstudio. Es altamente recomendable que realices dicho regis-tro ya que esto te permitira descargar un sin numero de documentacion util desde el sitiode Texas Instruments.

Parte 1. Identificando el modelo del MSP430 y la version de CCS

Antes de empezar a trabajar con tu LaunchPad, es necesario que identifiques que ti-po de MSP430 esta conectado a tu LaunchPad. Localiza en tu LaunchPad la monturaetiquetada 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 elque se encuentra montado es el modelo MSP430G2553. La version del CCS se obtiene delmenu Help About Code Composer Studio . Para el caso de las Figuras 1a y 1b podemos ver quetenemos el modelo MSP430G2452 del MSP430 y la version 6.1.0 del CCS.

(a) Matrıcula 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 diseno en elCCS. Para crear un nuevo proyecto, solo ve al menu File New CCS Project .

Adaptado del curso EE3376 de la UTEP 1

Page 2: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

Al seleccionar la opcion CCS Project se abrira la ventana New CCS Project . Sigue los pasosque a continuacion se listan:

1. Nombra el proyecto actual. En este caso nombraremos el proyecto actual comodemo_msp430.

2. Asegurate que la casilla use default location este deshabilitada.

3. Da click sobre el boton Browse.

4. Elige una ubicacion para el proyecto actual y da click en OK.

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

Adaptado del curso EE3376 de la UTEP 2

Page 3: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

6. En la seccion 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. Primeronecesitamos anadir un programa fuente al proyecto actual. Da click derecho sobre el nombredel proyecto y despues selecciona New Source File

Adaptado del curso EE3376 de la UTEP 3

Page 4: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

lo cual abrira la ventana New Source File. En el campo Source file le asignaras un nom-bre al archivo que contendra 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 codigolistado en Codigo 1. Dicho programa suma cuatro pares de numeros, los cuales puedeninterpretarse como numeros con o sin signo. Si se interpretan como numeros sin signo,la bandera C indica la condicion de sobreflujo. Cuando se interpretan como numeros consigno, 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 codigo, asegurate de que los espacios y las tabulaciones seconserven tal cual aparecen, de otra forma obtendras errores al compilar.

Adaptado del curso EE3376 de la UTEP 4

Page 5: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

Codigo 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

2122 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

3334 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

4546 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

5758 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

Page 6: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

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

6970 infloop:

71 jmp infloop

7273 ;---------------------------------------------------------------------------------

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 codigo fuente demo_msp430, tu area de trabajo debe lucir de lasiguiente forma

Ahora compilaremos nuestro proyecto. Existen dos formas de hacerlo: (1) Presionando lasteclas ctrl + B , o (2) mediante el menu Project Build Project

Adaptado del curso EE3376 de la UTEP 6

Page 7: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

Antes de procede, asegurate que tu LaunchPad se encuentra conectada a tu computadoraa traves del puerto USB. Ahora indicaremos al CCS que entre a modo de depuracion. Denuevo, 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 elcontenido de tu programa, lo cual tomara unos cuantos segundos. Una ves que el programaha sido descargado, podemos ejecutarlo paso a paso de dos formas: (1) Presionando la teclaF5 , o (2) dando click sobre el boton Step Into o Step Over,

lo cual ejecutara la instruccion actual e incrementara el PC de forma que apunte a lasiguiente instruccion. Conforme se ejecutan las instrucciones, nosotros seremos capaces dever los cambios en los registros en la seccion Registers, ubicada en la esquina superiorderecha. La siguiente figura muestra el aspecto del CCS despues de haber presionado elboton Step Over cuatro veces.

La siguiente instruccion a ejecutarse se muestra sombreada en la ventana que muestrael 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 siguienteinstruccion 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 enamarillo, indicando que cambiaron. Ejecuta todo el programa paso a paso, observa que enalgunos casos los LEDs en tu LaunchPad se encenderan, lo cual correspondera al estado de

Adaptado del curso EE3376 de la UTEP 7

Page 8: Tutorial de Code Composer Studio - UAM Azcapotzalcokali.azc.uam.mx/erm/Media/Practicas/1123021/lab00.pdf · 1123021 Microcontroladores Universidad Aut onoma Metropolitana 6.En la

1123021 Microcontroladores Universidad Autonoma Metropolitana

las banderas C y V, modificadas por la instruccion de suma. En la linea 67 del Codigo1, 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 encuentraun punto de paro. El codigo en demo_msp430.asm fue especıficamente disenado paracorrerse paso a paso. Intenta correrlo con esta herramienta y no podras ver nadadebido a la velocidad del reloj principal.Run New Breakpoint . Crea un nuevo punto de paro, permitiendo a los usuarios correrel programa a toda velocidad y detener su ejecucion en ese punto para evaluar elestado del procesador. Tambien puedes crear un nuevo punto de paro dando clickderecho 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