resultados de tiempo de procesamiento
4.5 Archivos de aplicación para la RF5 en el procesador DM6437
Los archivos de aplicación como lo son el código de tareas, células y los diferentes módulos (ALGRF, CHAN, SCOM, UTL, etc), se encuentran asociados a la carpeta de implementación de estructura de trabajo para el procesador TMS320DM6437. En la Figura 4.3 se muestran las carpetas que componen la estructura de trabajo exclusivas para el procesador TMS320DM6437, destacando los archivos más importantes contenidos en las carpetas.
Figura 4.3. Estructura de trabajo nivel cinco.
• app/rf5 es la carpeta raíz de la aplicación RF5.
• app/rf5/appConfig contiene las aplicaciones específicas de scripts para el uso de la DM6437, estos archivos crean y configuran objetos de propiedades globales, parámetros específicos, tareas y objetos DIO de la aplicación.
• app/rf5/cells contiene el código de implementación de las células, aquí el sistema se encarga de agregar el código interfaz para el entendimiento de
los algoritmos XDAIS con la aplicación. Debe existir una carpeta por cada algoritmo.
• app/rf5/projects es la carpeta contenedora de los archivos específicos para el procesador TMS320DM6437 con su aplicación RF5, aquí se incluye la configuración específica de la tarjeta. Así como los archivos Linker que son los encargados de llamar a las tareas que componen a la aplicación.
• app/rf5/threads contiene las carpetas con el código para el hardware independiente (configuración de tareas).
• Include contiene los archivos cabecera utilizados por la RF5.
• lib contiene las librerías relacionadas con las aplicaciones de la RF5, cada módulo cuenta con su librería.
• src contiene las carpetas con el código fuente de los módulos algrf, chan, scom, sscr, utl38 y la aplicación. La características de cada módulo se pueden consultar en [38]. 4.6 Adaptación de la RF5
Una adaptación a la RF5 puede ser desde cambiar los algoritmos XDAIS a sustituir completamente todas las tareas y el código de la célula. Para poder hacer una adaptación adecuada será necesario añadir nuevos algoritmos, células, canales, tareas, cambiar controladores de los dispositivos o implementar la comunicación de datos en los subprocesos que se ejecutan a velocidades diferentes, en las siguientes secciones se describirá como realizar todos estos cambios para generar la RF5 en el procesador DM6437, esto para poder implementar y probar los algoritmos desarrollados de procesamiento de video e imágenes en la SEPI ESIME Zacatenco.
4.6.1 Agregar nuevo código fuente para los módulos
Cuando la RF5 no es suficiente para la adaptación de una aplicación específica es necesario realizar la adaptación de todos los módulos (células, canales, proceso y tareas), para agregar nuevo código a la RF5, se puede comenzar agregando nuevas células y después la forma de trabajo de las tareas (método de abajo hacia arriba), o bien, se puede comenzar por la creación de las tareas que solo se comunican entre sí, y después añadir los canales y células (de arriba hacia abajo). En caso de que la aplicación sea muy parecida a la ya existente en la RF5, es mejor comenzar utilizando el método de abajo hacia arriba.
38
ALGRF: Encargado de utilizar el DSP/BIOS para la asignación de memoria dinámica. CHAN: Administra la ejecución en serie de los algoritmos XDAIS contenidos en una célula. SCOM: Encargado de la comunicación sincronizada que existe entre las áreas.
SSCR: Se encarga de la superposición de la memoria de datos solicitada por los algoritmos XDAIS. UTL: Se encarga de la depuración y diagnóstico del sistema.
4.6.1.1 Agregar nuevas células y algoritmos XDAIS
En la siguiente descripción se muestran los pasos para agregar una nueva célula o para realizar un cambio de algoritmo XDAIS a la RF5.
1. En la carpeta …\estructuradetrabajo5\apps\rf5\cells se crea una nueva carpeta con el nombre de la aplicación (myalg).
2. En la nueva carpeta se escribe en lenguaje C el nuevo algoritmo con el nombre imyalg.c.
3. Se escribe en la carpeta …\estructuradetrabajo5\include el archivo imyalg.h. 4. Se escriben las librerías compiladas de algoritmos en ...\
estructuradetrabajo5\lib.
5. En la carpeta ...\estructuradetrabajo5\apps\rf5\cells\myalg crear la librería cellMyalg.h.
6. Agregar el archivo cellMyalg al proyecto de aplicación en CCStdio.
7. Modificar el archivo link.cmd, quitar las librerías no utilizadas y agregar las nuevas.
8. Actualizar los setparamsAndStartChannels() en el archivo thrProcess ubicado en la dirección …\estructuradetrabajo5\apps\rf5\thread\process.
9. Realizar pruebas de operación con la nueva célula integrada a la RF5 [48].
4.6.1.2 Agregar nuevos canales a las tareas
Los canales a diferencia de las células, solo son contenedores, por lo que no es necesario realizar la programación de algún código en especial para la creación de uno o más canales. Solo será suficiente con ampliar la lista CHAN_Objs y escribir el nuevo número de canales y lo mismo para ICELL_Objs para el nuevo número de células. La ruta en donde se encuentran estos objetos es …\ estructuradetrabajo5\apps\rf5\threads\main\appResources.h con la instrucción #define NUMCHANNELS 2.
4.6.1.3 Agregar nuevas tareas a la aplicación
Si agregar nuevos canales y células para adaptar la aplicación no es suficiente (debido a que se necesita agregar una tarea totalmente diferente a la ya establecida en la estructura), la última parte para poder adaptar nuestra aplicación es agregar nuevas tareas, y a continuación se hace la descripción del procedimiento:
1. Si la nueva tarea utiliza algoritmos, canales o células, se realizará una copia de la carpeta process ubicada en la dirección …\ estructuradetrabajo5\apps\rf5\threads\process y nos funcionará como plantilla, si
la nueva tarea no utiliza algoritmos, canales o células, realizaremos una copia de la carpeta rxSplit o txJoin y la utilizaremos como plantilla.
2. Si la nueva tarea tiene comunicación con otra tarea (utilizando los mensajes SCOM), se agregará typedef en appThreads.h (ubicada en …\ estructuradetrabajo5\apps\rf5\threads\main).
3. Se agrega la llamada a la función para inicializar la nueva tarea y su puesta en
marcha en la appThreads.c (ubicada en …\
estructuradetrabajo5\apps\rf5\threads\main).
4. Agregar una tarea para llamar a la función de la tarea run() de la configuración del DSP/BIOS.
5. Si la tarea recibe mensajes de control, se deben enumerar los mensajes de comandos que corresponden al archivo cabecera de la tarea.
6. Si otra tarea necesita enviar un mensaje de control, se debe incluir el archivo en la cabecera de la tarea.
7. Si la nueva tarea tiene una prioridad diferente a las tareas ya creadas, se tienen que configurar en el DSP/BIOS [48].
4.7 Adaptación de un algoritmo de detección de bordes en la estructura