Upload
daniel-eduardo-perez-ramirez
View
215
Download
0
Embed Size (px)
Citation preview
7/21/2019 Practica 1 LENGUAJES
1/14
Tutorial LaunchPad y CCS
1. Identificar el modelo del chip y la versin del CCS (Code Composer
Studio)
Necesitaras identificar qu tipo de chip MSP430 est conectado a tu tablilla
Launchpad, as como tambin que versin de CCS (Code Composer Studio) est
instalado. El modelo del chip MSP430 est encima del chip. Como se muestra a
continuacin en la figura 1. La versin de CCS se puede obtener a travs del men
de ayuda (help menu) y es mostrado para este tutorial en la figura 2.
Figura 1 La tablilla Launchpad de TI
7/21/2019 Practica 1 LENGUAJES
2/14
Figura 2 - Versin de CCS como se muestra en el men de ayuda (help
menu).
En este caso el chip MSP430G2553 y el CCS versin V5.5.0 estn instalados. Se
necesitar saber en un futuro el nmero de parte de un chip en especfico del
MSP430 en este tutorial y utilizar otras versiones del CCS podra requerir pasos
alternativos de los cuales no podran ser incluidos en este tutorial.
TI tiene extensa documentacin del CCS (Code Composer Studio). Puedes
encontrar esa informacinaqu.
2. Crear un proyecto nuevo de lenguaje ensamblador
Para crear un nuevo proyecto solo ve a File -> New -> CSS Project
http://www.ti.com/tool/ccstudio?DCMP=dsp-ccs5-110705&HQS=dsp-ccs5-b-swhttp://www.ti.com/tool/ccstudio?DCMP=dsp-ccs5-110705&HQS=dsp-ccs5-b-swhttp://www.ti.com/tool/ccstudio?DCMP=dsp-ccs5-110705&HQS=dsp-ccs5-b-swhttp://www.ti.com/tool/ccstudio?DCMP=dsp-ccs5-110705&HQS=dsp-ccs5-b-sw7/21/2019 Practica 1 LENGUAJES
3/14
El dialogo New CSS Project aparecer.
1. Nombra el proyecto demo_msp430
2. Quita la palomita de la caja use default location
3. Da click en el botn Browse para buscar la carpeta donde quieres grabartu proyecto.
4. Escoge un lugar que te haga sentido a ti y da click en OK
7/21/2019 Practica 1 LENGUAJES
4/14
5. En la seccin Device, escoge el chip que tengas en la tablilla
6. En la seccin Project templates and examples, selecciona EmptyAssembly-only Project
7/21/2019 Practica 1 LENGUAJES
5/14
7. Da click en Finish
7/21/2019 Practica 1 LENGUAJES
6/14
3. Ejecutar un programa ensamblador paso a paso
Ahora que hemos creado un nuevo proyecto en lenguaje ensamblador,
aprenderemos como ejecutarlo paso a paso. Primero, necesitaremos agregar un
archivo fuente nuevo al proyecto. Da click derecho en el nombre del proyecto y vea New -> Source File
7/21/2019 Practica 1 LENGUAJES
7/14
En el dialogo "New Source File", nombra el archive "demo_msp430.asm",
selecciona "None" para el Template y da click en "Finish"
Programa Demostracin
Para propositos de este tutorial usaremos el siguiente programa el cual ser descritoen detalle en clase. Este programa sirve como una demostracin del depurador(debugger) y como una introduccin de lenguaje ensamblador. Esencialmente, elprograma carga una variedad de nmeros de 16-bits en registros de propsitogeneral R4 y R5 y suma los nmeros. Los nmeros fueron seleccionadosintencionalmente para causar sobre-acarreo (overflow) con signo y sin signo, estocon el fin de explorar los lmites del procesador de 16-bits en trminos de un rango
numrico binario.
7/21/2019 Practica 1 LENGUAJES
8/14
CUANDO CORTES Y PEGUES ESTE CODIGO EN EL CCS, ASEGURATE QUELAS LINEAS EN ENSAMBLADOR TENGAN TAB. CUALQUIER TEXTO QUEEST EN LA COLUMNA 1 O AL PRINCIPIO DE LA LINEA SER CONSIDERADAUNA ETIQUETA (LABEL) ASI COMO (_main)
;------------------------------------------------------------------------------------; EE3376 MSP430 Lab 1; The University of Texas at El Paso; Authors: Victor Barraza and Eric MacDonald;; A simple Code Composer Studio assembly program that adds four pairs of numbersand; displays the C and V bits of the status register on the LEDS 1 / 2 of theLaunchpad.;-------------------------------------------------------------------------------------; The following lines are conventions that must be followed for the code to work ; in CCS. Thus, they have to be included in all of your assembly programs;-------------------------------------------------------------------------------------
.cdecls C,LIST, "msp430G2553.h";CHANGE ACCORDINGLY FOR YOUR CHIP VARIANT
.text;mark beginning of program(CONVENTION MUST FOLLOW OR PROGRAM WONTWORK)
.global_main ;define entry pooint(CONVENTION MUST FOLLOW OR PROGRAM WONTWORK);-------------------------------------------------------------------------------------_main:
mov.w#WDTPW|WDTHOLD, &WDTCTL ;stop watchdog timerclr.b&P1OUT ;make sure LEDs are off at the startmov.b#0x41, &P1DIR ; moves the values #01000001b to P1DIR, making
the two; pins that control the LEDs output
mov.w#0xFFFF,r4 ; load r4 with 64532 (unsigned) or -1 (signed)mov.w#0xFFFF,r5 ; load r5 with 64532 (unsigned) or -1 (signed)add.wr4,r5 ; add r4 + r5 and store result in r5mov.bsr, &P1OUT ; turn on LED1 based on C bit in status registermov.wsr, r6 ; capture status into register r6rra.wr6 ; roll r6 to the right so that V bit is in bit 7rra.wr6 ; roll r6 to the right so that V bit is in bit 6 (LED2) mov.br6, &P1OUT ; light up LED2 based on V bitclr.b&P1OUT ; turn off LEDs
mov.w#0x8000,r4; load r4 with 32252 (unsigned) or -32253 (signed)mov.w#0x8000,r5; load r4 with 32252 (unsigned) or -32253 (signed)add.wr4,r5; add r4 and r5 and store in r5mov.bsr, &P1OUT ; turn on LED1 based on C bit in status registermov.wsr, r6; capture status into register r6rra.wr6; roll r6 to the right so that V bit is in bit 7rra.wr6; roll r6 to the right so that V bit is in bit 6 (LED2)mov.br6, &P1OUT; light up LED2 based on V bitclr.b&P1OUT ; turn off LEDs
7/21/2019 Practica 1 LENGUAJES
9/14
mov.w#0x0001,r4; load r4 with 1 (unsigned and signed)mov.w#0x0001,r5; load r5 with 1 (unsigned and signed)add.wr4,r5; add r4 and r5 and store in r5mov.bsr, &P1OUT ; turn on LED1 based on C bit in status registermov.wsr, r6; capture status into register r6rra.wr6; roll r6 to the right so that V bit is in bit 7rra.wr6; roll r6 to the right so that V bit is in bit 6 (LED2)mov.br6, &P1OUT; light up LED2 based on V bitclr.b&P1OUT ; turn off LEDs
mov.w#0x4000,r4; load r4 with 16182 (signed and unsigned)mov.w#0x4000,r5; load r5 with 16182 (signed and unsigned)add.wr4,r5; add r4 and r5 and store in r5mov.bsr, &P1OUT ; turn on LED1 based on C bit in status registermov.wsr, r6; capture status into register r6rra.wr6; roll r6 to the right so that V bit is in bit 7rra.wr6; roll r6 to the right so that V bit is in bit 6 (LED2)mov.br6, &P1OUT; light up LED2 based on V bitclr.b&P1OUT ; turn off LEDs
infloop:jmpinfloop
;-----------------------------------------------------------------------------------; The following lines define what happens when the reset button is pressed.Again these; lines are a CCS convention and must always be included;-----------------------------------------------------------------------------------
.sect ".reset"
.short_main
Este cdigo desarrolla cuatro operaciones que pueden ser con signo o sinsigno. Cuando es sin signo, el bit C en el registro de status indica un sobre-acarreo (overflow). Cuando es con signo, el bit V en el registro de statusindica un sobre-acarreo. Despues de cada suma, primero el bit C esenviado al puerto P1.0 e ilumina el LED1 si es afirmado.Subsecuentemente, el bit V es usado para controlar el puerto P1.6 el cual
est conectado al LED2 y el LED afirma si el bit V es activo.
7/21/2019 Practica 1 LENGUAJES
10/14
Tu cdigo debera verse como la figura que se muestra a continuacin:
Una vez que tengas esto, es tiempo de ensamblar (build) el proyecto. Hay dos maneras
de hacer esto:
-- Puedes teclear CTRL + B en el teclado or
--Puedes dar click en Project->Build Project.
7/21/2019 Practica 1 LENGUAJES
11/14
Ahora necesitas entrar en modo de depuracin (debug mode). Existen dos maneras de
hacer esto:
--Teclear "F11" en el teclado o
-- Ir a Run->Debug.
7/21/2019 Practica 1 LENGUAJES
12/14
Tomar un tiempo breve cargar el programa en la tablilla y la tablilla debe conectarse a la
computadora con el cable USB. Una vez que el programa cargue, podemos empezar
ejecutar el programa paso a paso. Hay dos maneras de hacer esto:
--Teclear "F5" en el teclado o
--Dar click en "Step Into" o Step Over button
Esto ejecutar la instruccin actual y cambiar el registro PC (Program Counter) para
apuntar a la siguiente instruccin. Mediante las instrucciones se ejecuten, se podrn ver los
cambios en los registros en la seccin del contenido de registro, los cuales son localizados
en la parte derecha superior. La figura de abajo ilustra que CCS debera mostrar despus
de presionar Step Overcuatro veces. En la venta de programar, la lnea que se ejecutar
es sombreada. En la ventana de registros, vers cmo dos registros fueron cambiados porla previa instruccin1) El registro PC, el cual est apuntando a la siguiente instruccin y
continuamente cambia durante la ejecucin de un programa y 2) el registro R4 fue cargado
con 1s en la instruccin previa. Ambos registros estn en amarillo, lo cual indica que han
cambiado.
7/21/2019 Practica 1 LENGUAJES
13/14
Haz click en Step throughtodo el programa, linea por linea y en algunoscasos los LEDs en la tablilla se iluminarn lo cual debera corresponder alos bits C y V en el registro de status (status register) basados en lainstruccin de suma hecha previamente como se muestra arriba.
En la ltima escritura al Puerto 1, ambos LEDs se encienden cuandoestamos evaluando el bit V.
Preparate para explicar esto al maestro.
Ahora que has terminado, explora algunas de las herramientas dedepuracin como:
Ejecuta el programa (running the program) (botn de play con trianguloverde) permite a los usuarios ejecutar el programa a toda velocidad o a unpunto de interrupcin (breakpoint). En este laboratorio, el programa fuediseado para ir paso a paso. Trata de ejecutar el programa y no versnada debido a la velocidad de ejecucin.
Establecer puntos de interrupcin (setting break points) permite a losusuarios ejecutar el cdigo a toda velocidad y luego parar en un punto deinterrupcin y evaluar el estado del procesador en ese punto. Establecerun punto de interrupcin se hace dando click derecho en cualquier lneade cdigo.
7/21/2019 Practica 1 LENGUAJES
14/14
Examinando Memoria (examining memory) permite la examinacin decualquier lugar de memoria en el mapa de memoria cuando el programaeste pausado.
Examinando expresiones (examining expressions) permite la examinacin
especfica de lista registros, lugares de memoria y expresiones quecontengan ambos.