6

У меня есть beagleboard с TMS320C64x + DSP. Я работаю над обработкой изображений beagleboard. Вот как это будет работать:Beagleboard: Как отправлять/получать данные в/из DSP?

  1. ARM считывает изображение из файла и помещает изображение в 2D-массив.
  2. Рука посылает матрицу в ЦСП. DSP получает матрицу.
  3. DSP выполняет алгоритм обработки изображений на полученной матрице (код алгоритма использует около 5 МБ динамически распределенной памяти).
  4. DSP отправляет обработанное изображение (матрицу) в ARM. Плечо получает матрицу.
  5. Рука сохраняет обработанное изображение в файл.

Я уже написал код для шагов 1,3,5. Каков самый простой способ сделать шаги 3 + 4 (отправка данных)? Примеры кода приветствуются.

ответ

3

Самый простой способ заключается в использовании разделяемой памяти:

Используйте модуль CMEM ядра, чтобы выделить часть памяти на ARM, которые могут быть доступны с ARM и DSP. Затем передайте указатель вниз на DSP, используя компонент DspBios NOTIFY.

Как только DSP будет обработан, вы можете уведомить ARM через NOTIFY.

Таким образом, нет необходимости копировать данные из ARM в DSP или наоборот. Все, что вам нужно сделать, это то, что данные поступают из компонента CMEM. Это гарантирует, что память смежна (DSP не знает о диспетчере памяти ARM).

2

Общая память - это правильный подход, но обучение тому, как это сделать, может быть больно. Инструмент C6Run может абстрагировать связь ARM/DSP для упрощения. Хотя NOTIFY - действительно правильный API для использования, C6Run использует CMEM с использованием более старого API.

Если вы хотите попробовать C6Run на BeagleBoard, самый простой способ - следовать за instructions on the eLinux wiki for setting up C6Run for the ECE597 course given by Mark Yoder at Rose-Hulman. Эти инструкции зависят от запуска демонстрационного изображения Angstrom (2). Также подтверждена стабильная версия, которая была использована для демонстрации функциональности аппаратного обеспечения (3).

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

Смежные вопросы