Practica 4
Practica 4
Practica 4
Facultad de Ingeniería
Ingeniería en Telecomunicaciones
Que el estudiante conocerá una de las formas de codificar las diferentes estructuras
de control de flujo en lenguaje ensamblador para el DSP C6713.
Que el estudiante conozca la manera de reservar memoria RAM usando directivas
del ensamblador.
Que el estudiante conozca las herramientas de graficación de señales discretas en
el dominio del tiempo y la frecuencia, mediante las herramientas de depuración que
contiene el Code Composer Studio.
Introducción:
Existen distintas instrucciones de comparación en la familia de dispositivos C67xx como
CMPEQ, CMPGT, CMPLT, CMPGTU, CMPLTU, entre muchas otras, las cuales puede hacer
comparaciones como igualdad que, mayor que y menor que, en los diferentes tipos de
datos: enteros con signo, enteros sin signo, flotantes de precisión simple y flotantes de
precisión doble. Además de estas existen instrucciones de salto, este tipo de familia solo
tiene una instrucción de salto la cual es B, esta permite interrumpir el flujo de ejecución y
saltar a donde se le indique con una etiqueta o un registro.
Dentro de esta familia se pueden trabajar con operaciones condicionales o sentencias de
control, la primera consiste en condicionar la ejecución de la mayoría de las instrucciones,
esto mediante la escritura de una condición previa, esta condición se realiza empleando
cualquiera de los registros A1, A2, B0, B1 y B2 encerrado entre corchetes cuadrados,
mientras que las sentencias de control son las ya conocidas en distintos lenguajes de
programación como las sentencias IF, FOR, WHILE y DO-WHILE.
El mapa de memoria muestra el espacio direcciones de memoria del procesador 6713 con
detalle específico de cómo está ubicada cada región. Por defecto, la memoria interna es
situada al comienzo del espacio de direcciones. Parte de la memoria interna puede ser
reconfigurable vía software como cache L2, en lugar de memoria RAM fija.
En el lenguaje ensamblador se pueden crear archivos objetos el formato de archivo es
COFF, estos tipos de archivos pueden ser ejecutados por los dispositivos TMS320C6000. El
formato COFF hace la programación modular fácil, porque se alienta a pensar en términos
de bloques de código y datos cuando se escribe un programa en ensamblador. A esos
bloques se les llama secciones, y son la unidad más pequeña del archivo objeto, una sección
es un bloque de código o datos que ocupa espacio contiguo, en el mapa de memoria, con
otra sección.
Por otro lado, el formato de imágenes RAW, es un formato en el cual se puede almacenar
una imagen sin compresión, tal cual es obtenida de los sensores CCD (*.raw).
Desarrollo:
1. Crear un nuevo proyecto para la tarjeta DSK C6713.
.data
dirY: .float 0.299, 0.587, 0.114 ;Vector de
proyeccion para la escala de grises
dirUmbral: .float 0.8836
.text
_main:
MVKL dirImg, A0
MVKH dirImg, A0
MVK 2, B0 ;Contador
INTSP B0, A12
ETIQ2:
MPYSP A9, A10, A11 ;V*Xi->A11
NOP 3
;Calculo
del umbral
MVKL dirUmbral, B1
MVKH dirUmbral, B1
LDW *B1, A12
NOP 4
LDW *A13++, B5
LDW *A13++, B6
LDW *A13++, B7
NOP 4
Loop: B Loop
NOP 5
Al buscar en memory browser donde está colocada la variable dirImg, se
observa la siguiente tabla:
Conclusión:
Para esta práctica se utilizó el software code composer studio y se logró realizar un código
en lenguaje ensamblador para poder realizar el procesamiento de una imagen que se
almacenaba en un espacio de memoria en formato .raw, en dicho procesamiento de la
imagen tomo solamente el color rojo por lo cual en las propiedades se configuro de tal
manera de que el rojo resaltara y los demás colores aparecieran en formato de escala de
grises. Además de esto se utilizaron otros dos códigos para el buen funcionamiento del
código principal y para que se ligaran se utilizó un programa en formato .cmd.
Con ayuda del software de Matlab se logró observar el buen funcionamiento del código
realizado en ccs, ya que matlab leía la imagen en formato .raw y la presentaba en una
pantalla de la manera que se podía guardar en formato .jpg y en dichas imágenes se
observa como el color rojo es el que resalta.
La práctica se realizó de buena manera, conocí más sobre el lenguaje ensamblador y
reforcé cosas realizadas en prácticas anteriores. Además, comprendí como funciono el
procesamiento de una imagen en ccs.
Referencias:
“TMS320C6000 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide”,
Literatura SPRU580G, Diciembre de 2006, Texas Instruments
“TLV320AIC23 Stereo Audio Codec, Data Manual”, Literatura SLWS106C, Julio de 2001,
Texas Instruments
“TMS320C67x/C67x+ DSP CPU and Instruction Set Reference Guide”, Texas Instruments,
Num. de literatura: SPRU733, Mayo de 2005.