Используете USB-библиотеку Stellaris/Tiva с uDMA?
Изучая документы TI о библиотеке Stellaris/Tiva USB, я не могу найти, может ли эта библиотека использоваться для передачи DMA. В частности, устройство Bulk Transfer, похоже, не предлагает параметров конфигурации для DMA. (Во всем руководстве упоминается только DMA для Host Audio и упоминается DMA для Mass Storage, но при этом не рекомендуется его использовать).
Кто-нибудь знает об этом?
Примечание. Я имею в виду библиотеку драйверов USB, а не библиотеку периферийных драйверов. Последний разрешает использование DMA, но не предлагает функций для нумерации устройств.
Редактировать: Как говорит Ральф (ниже), есть некоторая документация по использованию DMA с классом Mass Storage, но этот класс предназначен для использования с DMA - у него, кажется, есть много внутренних функций, которые управляют доступом к DMA, но странно достаточно, чтобы класс Bulk Transfer не имел этой возможности (даже несмотря на то, что Mass Storage использует внутреннюю передачу данных).
Я не думаю, что Mass Storage - это решение для меня - дополнительная работа по сохранению данных в виде файлов не кажется совместимой с потоковой природой полученных образцов ADC.
1 ответ
Есть несколько примеров в сети, которые используют driverlib/udma.h
( https://github.com/yuvadm/tiva-c/blob/master/driverlib/udma.h), т.е. https://github.com/Emeryth/Stellaris-mass-storage-bootloader/blob/master/boot_usb_msc.c
На странице 313 документа TIVA перечислены встроенные функции USB DMA, их реализация находится по https://github.com/yuvadm/tiva-c/blob/master/usblib/usbdma.c и https://github.com/yuvadm/tiva-c/blob/master/usblib/usblibpriv.h