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.

dsp28377的USB做CDC的迷惑

1.DSP做CDC时设置双缓冲问题程序如下:

uint32_t FIFO_addr;
uint32_t *puiFIFOAddress;
uint32_t *puiFIFOSize;
FIFO_addr = USBFIFOAddrGet(0x40000,USB_EP_2); // 获取IN端点FIFO地址
USBDevEndpointConfigSet(0x40000,USB_EP_2,64,USB_EP_DEV_IN); // 设置IN端点最大包大小
USBFIFOConfigSet(0x40000,USB_EP_2,FIFO_addr,512,USB_EP_DEV_IN);// 设置IN端点FIFO

FIFO_addr = USBFIFOAddrGet(0x40000,USB_EP_1); // 获取OUT端点FIFO地址
USBDevEndpointConfigSet(0x40000,USB_EP_1,64,USB_EP_DEV_OUT); // 设置OUT端点最大包大小
USBFIFOConfigSet(0x40000,USB_EP_1,FIFO_addr,512,USB_EP_DEV_OUT);// 设置OUT端点FIFO

HWREGH(0x40000 + 0x00000342) = 0x0; // 开启双缓冲

USBFIFOConfigGet(0x40000,USB_EP_1,(uint32_t *)FIFO_addr, puiFIFOSize,USB_EP_DEV_OUT);

问题:我这里设置的双缓冲我没有检查到?出来的FIFOSIZE为 0   !

2. 我做的CDC通信,在不丢帧的情况下速度只有160KB/s。不知有没有提高的办法?

3.在USBDCDCPacketWrite内,我看到有如下写法:

MAP_USBEndpointDataPut(psInst->ui32USBBase,psInst->ui8BulkINEndpoint, pi8Data,ui32Length);

i32Retcode = MAP_USBEndpointDataSend(psInst->ui32USBBase,psInst->ui8BulkINEndpoint,    USB_TRANS_IN);

我是发送啊,为什么都是对IN的操作?