Hello Mandred,
Have you registered an endpoint handler for bulk in endpoint? How did you configure mscDisk_init function?
If you checked mscDisk_init function you will notice that callback for writing is already set:
msc_param.MSC_Write = translate_wr;
but also, you will need to add an endpoint handler for IN transactions:
if (USBD_API->version > 0x01111101) { /* New ROM stack version */
default_bulk_in_hdlr = pCtrl->ep_event_hdlr[((((USB_MSC_CTRL_T *) g_pMscCtrl)->epin_num & 0x0F) << 1) + 1];
default_bulk_out_hdlr = pCtrl->ep_event_hdlr[(((USB_MSC_CTRL_T *) g_pMscCtrl)->epout_num & 0x0F) << 1];
USBD_API->core->RegisterEpHandler(hUsb,(((USB_MSC_CTRL_T *) g_pMscCtrl)->epout_num & 0x0F) << 1, app_bulk_out_hdlr, g_pMscCtrl);
USBD_API->core->RegisterEpHandler(hUsb,((((USB_OLD_MSC_CTRL_T *) g_pMscCtrl)->epin_num & 0x0F) << 1) + 1, app_bulk_in_hdlr, g_pMscCtrl);
} else { /* Old ROM stack version */
default_bulk_in_hdlr = pCtrl->ep_event_hdlr[((((USB_MSC_CTRL_T *) g_pMscCtrl)->epin_num & 0x0F) << 1) + 1];
default_bulk_out_hdlr = pCtrl->ep_event_hdlr[(((USB_OLD_MSC_CTRL_T *) g_pMscCtrl)->epout_num & 0x0F) << 1];
USBD_API->core->RegisterEpHandler(hUsb, (((USB_OLD_MSC_CTRL_T *) g_pMscCtrl)->epout_num & 0x0F) << 1, app_bulk_out_hdlr, g_pMscCtrl);
USBD_API->core->RegisterEpHandler(hUsb, ((((USB_OLD_MSC_CTRL_T *) g_pMscCtrl)->epin_num & 0x0F) << 1) + 1, app_bulk_in_hdlr, g_pMscCtrl);
}
And, in app_bulk_in_hdlr, you can replicate what it is done for app_bulk_out_hdlr only replacing the OUT endpoint reference for IN endpoint reference.
How are you handling these callbacks?
Regards,
Isaac