大家好:
问题如上,关于在C6748硬件上的USB开启CPPI DMA,测试环境为将USB注册成CDC设备总线,CPPI DMA用于发送数据,将CPPI DMA注册为Linxu CDC模式。
问题1:通过指令发送1M数据缓存,经过多次指令后会发现通过串口调试注册接收的数据速度会明显变慢,导致在使能和去使能DMA之间加入的延时函数不能满足传输的时长需要,进而导致数据没有发现完成就关闭DMA造成数据堵塞。
问题2:在调试中加入端点进行测试,没法像完1M数据后再运行程序,当发送超过10M数据缓存后会出现卡死在代码while ((HWREGH(usbInstance->usbBaseAddress + ulRegister) & 0x2) == 0x02)里面,是因为判断位一直不能通过导致卡死的问题。
可能造成上述两个问题的原因会有哪些!!!!
最后我对STARTWARE源码中cppi41dma.c中关于DMA的接口函数中使用cache的相关操作存在疑问,通过查阅数据手册在USB章节中没有提到与cache相关的内容,主要使用的内存是RAM,但是源码 中为什么使用cache那???我查看了pdk库中关于USB 的cppi41dma.c源码与之是一样的。
祝好!!!!