6

Tengo un beagleboard con TMS320C64x + DSP. Estoy trabajando en una aplicación de beagleboard de procesamiento de imágenes. Así es como va a funcionar:Beagleboard: ¿Cómo envío/recibo datos hacia/desde el DSP?

  1. El ARM lee una imagen de un archivo y coloca la imagen en una matriz 2D.
  2. El brazo envía la matriz al DSP. El DSP recibe la matriz.
  3. El DSP realiza el algoritmo de procesamiento de imagen en la matriz recibida (el código del algoritmo utiliza aproximadamente 5 MB de memoria asignada dinámicamente).
  4. El DSP envía la imagen procesada (matriz) al ARM. El brazo recibe la matriz.
  5. El brazo guarda la imagen procesada en un archivo.

Ya he escrito el código para los pasos 1,3,5. ¿Cuál es la forma más fácil de hacer los pasos 3 + 4 (envío de datos)? Ejemplos de código son bienvenidos

Respuesta

3

La forma más sencilla es utilizar la memoria compartida:

utilizar el módulo CMEM kernel para asignar una porción de memoria en el brazo que se puede acceder desde ARM y DSP. Luego pase el puntero al DSP usando el componente DspBios NOTIFY.

Una vez que el DSP se completa con el procesamiento, puede notificar al ARM mediante NOTIFY.

De esta manera no hay necesidad de copiar los datos del ARM al DSP o viceversa. Todo lo que debe asegurarse es que los datos provengan del componente CMEM. Esto asegura que la memoria sea contigua (el DSP no conoce el administrador de memoria ARM).

2

La memoria compartida es el enfoque correcto, pero aprender cómo hacerlo puede ser un problema. La herramienta C6Run puede resumir las comunicaciones ARM/DSP para que sea más fácil. Aunque NOTIFY es realmente la API correcta para usar, C6Run utiliza CMEM utilizando una API anterior.

Si quieres probar C6Run en el BeagleBoard, la forma más fácil es siguiendo el instructions on the eLinux wiki for setting up C6Run for the ECE597 course given by Mark Yoder at Rose-Hulman. Estas instrucciones dependen de ejecutar la imagen de demostración de Angstrom (2). También se documentó una versión estable que se usó para demostrar la funcionalidad del hardware (3).

(2): www.angstrom-distribution.org/demo/beagleboard (3): code.google.com/p/beagleboard/wiki/BeagleBoardDiagnosticsNext

Cuestiones relacionadas