研究有关Stellaris / Tiva USB库的TI文档,我无法找到该库是否可用于DMA传输。特别是,批量传输设备似乎不提供DMA的配置选项。 (整个手册仅提到主机音频的DMA,并提到大容量存储的DMA,但警告不要使用它。)
有人知道吗?
注意:我指的是USB驱动程序库,而不是外设驱动程序库。后者确实允许使用DMA,但不提供器件编号功能。
编辑:正如Ralf所述(下文),有一些关于DMA与Mass Storage Class一起使用的文档,但是这个类意图与DMA一起使用 - 它似乎有很多管理DMA访问的内部功能,但奇怪的是,Bulk Transfer类没有这种功能(即使Mass Storage在内部使用批量传输)。
我不认为大容量存储对我来说是一种解决方案 - 将数据存储为文件的额外工作似乎与ADC获取的样本的流媒体特性兼容。
答案 0 :(得分: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页上列出了内置USB DMA功能,它们的实现在 https://github.com/yuvadm/tiva-c/blob/master/usblib/usbdma.c 和 https://github.com/yuvadm/tiva-c/blob/master/usblib/usblibpriv.h 强>