/** * @brief USBD_HID_MSC_Init * Initialize the HID interface * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t USBD_HID_MSC_Init (void *pdev, uint8_t cfgidx) { USBD_HID_MSC_DeInit(pdev , cfgidx ); /* HID */ /* Open EP IN */ DCD_EP_Open(pdev, HID_IN_EP, HID_IN_PACKET, USB_OTG_EP_INT); /* Open EP OUT */ DCD_EP_Open(pdev, HID_OUT_EP, HID_OUT_PACKET, USB_OTG_EP_INT); /* MSC */ /* Open EP IN */ DCD_EP_Open(pdev, MSC_IN_EP, MSC_EPIN_SIZE, USB_OTG_EP_BULK); /* Open EP OUT */ DCD_EP_Open(pdev, MSC_OUT_EP, MSC_EPOUT_SIZE, USB_OTG_EP_BULK); /* Init the BOT layer */ MSC_BOT_Init(pdev); return USBD_OK; }
/** * @brief usbd_cdc_Init * Initilaize the CDC interface * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t usbd_cdc_msc_Init (void *pdev, uint8_t cfgidx) { // uint8_t *pbuf; // MSC_BOT_Data = (filerBuf + 60*1024); MSC_BOT_Data = filerBuf; /* Open EP IN */ DCD_EP_Open(pdev, CDC_IN_EP, CDC_DATA_IN_PACKET_SIZE, USB_OTG_EP_BULK); /* Open EP OUT */ DCD_EP_Open(pdev, CDC_OUT_EP, CDC_DATA_OUT_PACKET_SIZE, USB_OTG_EP_BULK); /* Open Command IN EP */ DCD_EP_Open(pdev, CDC_CMD_EP, CDC_CMD_PACKET_SZE, USB_OTG_EP_INT); /* Open EP IN */ DCD_EP_Open(pdev, MSC_IN_EP, MSC_EPIN_SIZE, USB_OTG_EP_BULK); /* Open EP OUT */ DCD_EP_Open(pdev, MSC_OUT_EP, MSC_EPOUT_SIZE, USB_OTG_EP_BULK); // pbuf = (uint8_t *)USBD_DeviceDesc; // pbuf[4] = DEVICE_CLASS_CDC; // pbuf[5] = DEVICE_SUBCLASS_CDC; /* Initialize the Interface physical components */ APP_FOPS.pIf_Init(); // usbd_cdc_msc_DeInit(pdev , cfgidx ); /* Init the BOT layer */ MSC_BOT_Init(pdev); /* Prepare Out endpoint to receive next packet */ DCD_EP_PrepareRx(pdev, CDC_OUT_EP, (uint8_t*)(USB_Rx_Buffer), CDC_DATA_OUT_PACKET_SIZE); return USBD_OK; }
/** * @brief USBD_MSC_Init * Initialize the mass storage configuration * @param pdev: device instance * @param cfgidx: configuration index * @retval status */ uint8_t USBD_MSC_Init (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { int16_t ret = 0; if(pdev->dev_speed == USBD_SPEED_HIGH ) { /* Open EP OUT */ USBD_LL_OpenEP(pdev, MSC_EPOUT_ADDR, USBD_EP_TYPE_BULK, MSC_MAX_HS_PACKET); /* Open EP IN */ USBD_LL_OpenEP(pdev, MSC_EPIN_ADDR, USBD_EP_TYPE_BULK, MSC_MAX_HS_PACKET); } else { /* Open EP OUT */ USBD_LL_OpenEP(pdev, MSC_EPOUT_ADDR, USBD_EP_TYPE_BULK, MSC_MAX_FS_PACKET); /* Open EP IN */ USBD_LL_OpenEP(pdev, MSC_EPIN_ADDR, USBD_EP_TYPE_BULK, MSC_MAX_FS_PACKET); } //JD pdev->pClassData = USBD_malloc(sizeof (USBD_MSC_BOT_HandleTypeDef)); pdev->pClassData = &hUSBD_MSC; if(pdev->pClassData == NULL) { ret = 1; } else { /* Init the BOT layer */ MSC_BOT_Init(pdev); ret = 0; } return ret; }
/** * @brief USBD_MSC_Init * Initialize the mass storage configuration * @param pdev: device instance * @param cfgidx: configuration index * @retval status */ uint8_t USBD_MSC_Init (void *pdev, uint8_t cfgidx) { USBD_MSC_DeInit(pdev , cfgidx ); /* Open EP IN */ DCD_EP_Open(pdev, MSC_IN_EP, MSC_EPIN_SIZE, USB_OTG_EP_BULK); /* Open EP OUT */ DCD_EP_Open(pdev, MSC_OUT_EP, MSC_EPOUT_SIZE, USB_OTG_EP_BULK); /* Init the BOT layer */ MSC_BOT_Init(pdev); return USBD_OK; }