This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6748: 关于TMS320C6748开发板上USB驱动开发的问题????

Part Number: TMS320C6748


大家好:

       我现在在做USB的驱动开发,USB注册的是CDC总线,使用FIFO模式进行数据通讯数据长度只能达到1024字节,不能满足设计需要,看数据手册了解到USB自带的DMA可以传输4M的数据,现在想实现USB的DMA功能,主要使用的是DMA的发送功能。

       代码场景,USB注册CDC总线,接收数据使用端点接收,也就是FIFO模式,发送使用DMA进行发送,参考USB_DEV_MSC例子中的DMA,感觉帮助比较小,例子中主要是针对DMA接收和DMA初始化的操作,仿照这个例子初始化DMA和DMA的发送,发现使用串口调试助手向开发板发送一条指令,不能正常接收响应,并且有的时候存在发送几条指令后出现死机的现象(主要表现在串口调试助手死机,代码中断点不能进入),我想问下USB注册CDC总线+DMA发送这种实现方式是否是不能实现的?如果可以实现的话需要一些操作吗?

       我参照的例子是STARTWARE中的例子,我在TI官网上也下载过PDK的源码包,在文件usb_musb.c中函数setupMusbDevMsc(USB_Params* params)里面有对BULK、CDC和MSC设备总线的注册,并且在第395行有一个宏DMA_MODE,开代码的设计如果打开这个宏,DMA是可以和上述三种总线都进行配合使用的,那样的话是不是就推翻我上面的疑惑CDC总线不能和DMA配合使用?

       我现在所遇到的问题主要集中在两点吧:

       问题1:USB注册CDC总线+使用DMA发送数据的实现,如果可以实现需要注意哪些问题?

       问题2:在调用函数doDmaTxTransfer()(这个函数是DMA的发送函数)时出现串口调试助手死机的现象的具体原因可能会有哪些???