practica 1 lenguajes

Upload: daniel-eduardo-perez-ramirez

Post on 05-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 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-sw
  • 7/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.