Practica_1 LENGUAJES de Interfaz

15
INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ Nombre: Daniel Eduardo Pérez Ramírez Matricula: 12270869 Catedrático: ING. Walter Torres Robledo Materia: Lenguajes de interfaz Fecha: 15 de febrero de 2015 Trabajo: Practica 1. Ensamblar primer circuito en lenguaje

description

als

Transcript of Practica_1 LENGUAJES de Interfaz

  • INSTITUTO TECNOLGICO DE TUXTLA

    GUTIRREZ

    Nombre:

    Daniel Eduardo Prez Ramrez

    Matricula:

    12270869

    Catedrtico:

    ING. Walter Torres Robledo

    Materia:

    Lenguajes de interfaz

    Fecha:

    15 de febrero de 2015

    Trabajo:

    Practica 1. Ensamblar primer circuito en

    lenguaje

  • 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

  • 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 informacin aqu.

    2. Crear un proyecto nuevo de lenguaje ensamblador

    Para crear un nuevo proyecto solo ve a File -> New -> CSS Project

  • 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 grabar tu proyecto.

    4. Escoge un lugar que te haga sentido a ti y da click en OK

  • 5. En la seccin Device, escoge el chip que tengas en la tablilla

    6. En la seccin Project templates and examples, selecciona Empty

    Assembly-only Project

  • 7. Da click en Finish

  • 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 ve

    a New -> Source File

  • 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 descrito

    en detalle en clase. Este programa sirve como una demostracin del depurador

    (debugger) y como una introduccin de lenguaje ensamblador. Esencialmente, el

    programa carga una variedad de nmeros de 16-bits en registros de propsito

    general R4 y R5 y suma los nmeros. Los nmeros fueron seleccionados

    intencionalmente para causar sobre-acarreo (overflow) con signo y sin signo, esto

    con el fin de explorar los lmites del procesador de 16-bits en trminos de un rango

    numrico binario.

  • CUANDO CORTES Y PEGUES ESTE CODIGO EN EL CCS, ASEGURATE QUE

    LAS LINEAS EN ENSAMBLADOR TENGAN TAB. CUALQUIER TEXTO QUE

    EST EN LA COLUMNA 1 O AL PRINCIPIO DE LA LINEA SER CONSIDERADA

    UNA 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 numbers and ; displays the C and V bits of the status register on the LEDS 1 / 2 of the Launchpad. ;------------------------------------------------------------------------------------ ; 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 WONT WORK) .global _main ;define entry pooint(CONVENTION MUST FOLLOW OR PROGRAM WONT WORK) ;------------------------------------------------------------------------------- ------ _main: mov.w #WDTPW|WDTHOLD, &WDTCTL ;stop watchdog timer clr.b &P1OUT ;make sure LEDs are off at the start mov.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.w r4,r5 ; add r4 + r5 and store result in r5 mov.b sr, &P1OUT ; turn on LED1 based on C bit in status register mov.w sr, r6 ; capture status into register r6 rra.w r6 ; roll r6 to the right so that V bit is in bit 7 rra.w r6 ; roll r6 to the right so that V bit is in bit 6 (LED2) mov.b r6, &P1OUT ; light up LED2 based on V bit clr.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.w r4,r5; add r4 and r5 and store in r5 mov.b sr, &P1OUT ; turn on LED1 based on C bit in status register mov.w sr, r6; capture status into register r6 rra.w r6; roll r6 to the right so that V bit is in bit 7 rra.w r6;

  • roll r6 to the right so that V bit is in bit 6 (LED2) mov.b r6, &P1OUT; light up LED2 based on V bit clr.b &P1OUT ; turn off LEDs mov.w #0x0001,r4; load r4 with 1 (unsigned and signed) mov.w #0x0001,r5; load r5 with 1 (unsigned and signed) add.w r4,r5; add r4 and r5 and store in r5 mov.b sr, &P1OUT ; turn on LED1 based on C bit in status register mov.w sr, r6; capture status into register r6 rra.w r6; roll r6 to the right so that V bit is in bit 7 rra.w r6; roll r6 to the right so that V bit is in bit 6 (LED2) mov.b r6, &P1OUT; light up LED2 based on V bit clr.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.w r4,r5; add r4 and r5 and store in r5 mov.b sr, &P1OUT ; turn on LED1 based on C bit in status register mov.w sr, r6; capture status into register r6 rra.w r6; roll r6 to the right so that V bit is in bit 7 rra.w r6; roll r6 to the right so that V bit is in bit 6 (LED2) mov.b r6, &P1OUT; light up LED2 based on V bit clr.b &P1OUT ; turn off LEDs infloop: jmp infloop ;---------------------------------------------------------------------------------- ; 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 sin

    signo. Cuando es sin signo, el bit C en el registro de status indica un

    sobreacarreo (overflow). Cuando es con signo, el bit V en el registro de

    status indica un sobre-acarreo. Despues de cada suma, primero el bit C es

    enviado 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.

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

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

  • 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 Over cuatro veces. En la venta de programar, la lnea que se ejecutar

    es sombreada. En la ventana de registros, vers cmo dos registros fueron cambiados por

    la previa instruccin 1) 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.

  • Haz click en Step through todo el programa, linea por linea y en algunos casos los LEDs en la tablilla se iluminarn lo cual debera corresponder a

    los bits C y V en el registro de status (status register) basados en la

    instruccin de suma hecha previamente como se muestra arriba.

    En la ltima escritura al Puerto 1, ambos LEDs se encienden cuando

    estamos evaluando el bit V.

    Preparate para explicar esto al maestro.

    Ahora que has terminado, explora algunas de las herramientas de

    depuracin como:

    Ejecuta el programa (running the program) (botn de play con triangulo

    verde) permite a los usuarios ejecutar el programa a toda velocidad o a un

    punto de interrupcin (breakpoint). En este laboratorio, el programa fue

    diseado para ir paso a paso. Trata de ejecutar el programa y no vers

    nada debido a la velocidad de ejecucin.

    Establecer puntos de interrupcin (setting break points) permite a los

    usuarios ejecutar el cdigo a toda velocidad y luego parar en un punto de

    interrupcin y evaluar el estado del procesador en ese punto. Establecer

    un punto de interrupcin se hace dando click derecho en cualquier lnea

    de cdigo.

  • Examinando Memoria (examining memory) permite la examinacin de

    cualquier lugar de memoria en el mapa de memoria cuando el programa

    este pausado.

    Examinando expresiones (examining expressions) permite la examinacin

    especfica de lista registros, lugares de memoria y expresiones que

    contengan ambos.