初级会员

- 积分
- 52
- 金钱
- 52
- 注册时间
- 2015-6-5
- 在线时间
- 1 小时
|
1金钱
在官方的U盘例子下想增加USB的一个interface,增加两个端点,结果用来测试的时候这个interface下的端点只能接收一次数据,有没有比较熟悉的朋友帮忙看下是不是哪里配置有问题?1.
/* Endpoints used by the device */
#define EP_NUM (3) /* EP0 + EP1 for MSC IN + EP2 for MSC OUT */
/* Buffer table base address */
#define BTABLE_ADDRESS (0x00)
/* EP0, RX/TX buffers base address */
#define ENDP0_RX_ADDRESS (0x18)
#define ENDP0_TX_ADDRESS (0x58)
/* EP1, TX buffer base address */
#define MSC_IN_TX_ADDRESS (0x98)
/* EP1, Rx buffer base address */
#define MSC_OUT_RX_ADDRESS (0xD8)
/* EP1, TX buffer base address */
#define MSC_IN_TX_ADDRESS1 ((0xD8)+0x40)
/* EP1, Rx buffer base address */
#define MSC_OUT_RX_ADDRESS1 ((0xD8)+0x80)
2.
/* Class Layer Parameter */
#define MSC_IN_EP 0x81
#define MSC_OUT_EP 0x01
#define MSC_IN_EP1 0x82
#define MSC_OUT_EP1 0x02
#define MSC_MAX_PACKET 64
#define MSC_MEDIA_PACKET 64
3.
uint8_t USBD_MSC_Init (void *pdev,
uint8_t cfgidx)
{
DCD_PMA_Config(pdev , MSC_IN_EP,USB_SNG_BUF,MSC_IN_TX_ADDRESS);
DCD_PMA_Config(pdev , MSC_OUT_EP,USB_SNG_BUF,MSC_OUT_RX_ADDRESS);
DCD_PMA_Config(pdev , MSC_IN_EP1,USB_SNG_BUF,MSC_IN_TX_ADDRESS1);
DCD_PMA_Config(pdev , MSC_OUT_EP1,USB_SNG_BUF,MSC_OUT_RX_ADDRESS1);
/* Open EP IN */
DCD_EP_Open(pdev,
MSC_IN_EP,
MSC_EPIN_SIZE,
USB_EP_BULK);
/* Open EP OUT */
DCD_EP_Open(pdev,
MSC_OUT_EP,
MSC_EPOUT_SIZE,
USB_EP_BULK);
/* Open EP IN */
DCD_EP_Open(pdev,
MSC_IN_EP1,
MSC_EPIN_SIZE,
USB_EP_BULK);
/* Open EP OUT */
DCD_EP_Open(pdev,
MSC_OUT_EP1,
MSC_EPOUT_SIZE,
USB_EP_BULK);
/* Init the BOT layer */
MSC_BOT_Init(pdev);
DCD_EP_PrepareRx(pdev, MSC_OUT_EP, BulkBuff,64);
DCD_EP_PrepareRx(pdev, MSC_OUT_EP1, DataBulkBuff,64);
return USBD_OK;
}
修改了以上三处
|
|