📄 usbh_storage_if.c
字号:
/* Waiting for the completion of URB */
OS_WaiFlg(FLGID_USBH_SAMPLE, FLG_EVENT_URB_CMP_USBH_SAMPLE, OS_TWF_ORW, &flgPtn);
OS_ClrFlg(FLGID_USBH_SAMPLE, ~(FLG_EVENT_URB_CMP_USBH_SAMPLE));
return STATUS_SUCCESS;
}
/*=============================================================================================
// Function_Name: USBH_STRG_USBDInitCallback
//
// description : The CallBack function of the USBD initialize completion.
//
// Processing when the USBD initialization ends.
//
// argument : event (in)Message
// param1 Reserved
// *pParam Reserved
//
// return : None
===============================================================================================*/
void USBH_STRG_USBDInitCallback( ULONG event, ULONG param1, void *pParam )
{
OS_BOOL bCpuState;
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, lock it. */
if( OS_SnsCtx() == TRUE ){
OS_ILocCpu();
} else {
OS_LocCpu();
}
}
/* Set USBD Init flag */
callbackPara.flag |= EVENT_USBD_INIT;
if (bCpuState != OS_TRUE ){
if( OS_SnsCtx() == TRUE ){
OS_IUnlCpu();
} else {
OS_UnlCpu();
}
}
// Set CallBack parameter
callbackPara.event = event;
if (OS_SnsCtx() == TRUE ) {
OS_ISigSem(SEMID_USBH_STRGEVENT);
} else {
OS_SigSem(SEMID_USBH_STRGEVENT);
}
}
/*=============================================================================================
// Function_Name: USBH_STRG_DeviceCallback
//
// description : device connect /disconnect Callback function
//
// process the connect /disconnect of the device
//
// argument : event (in)Message
// param1 (in)The USB address of connected device
// *pParam (in)The pointer of connected device discriptor
//
// return : None
===============================================================================================*/
void USBH_STRG_DeviceCallback( ULONG event, ULONG param1, void *pParam )
{
OS_BOOL bCpuState;
if( event == USBH_USBD_MSG_ENTRYC_OK || event == USBH_USBD_MSG_ENTRYC_NG ){
/* Set class registration flag */
callbackPara.flag |= EVENT_ENTRY_CLASS;
// Set CallBack parameter
callbackPara.event = event;
} else if( event == USBH_USBD_MSG_CONNECT_OK || event == USBH_USBD_MSG_DISCONNECT_CMP ){
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, lock it. */
if( OS_SnsCtx() == TRUE ){
OS_ILocCpu();
} else {
OS_LocCpu();
}
}
/* Set the device connect/disconnect flag */
callbackPara.flag |= EVENT_DEVICE;
if (bCpuState != OS_TRUE ){
if( OS_SnsCtx() == TRUE ){
OS_IUnlCpu();
} else {
OS_UnlCpu();
}
}
// Set CallBack parameter
callbackPara.event = event;
callbackPara.param1 = param1;
callbackPara.pParam = pParam;
}
if (OS_SnsCtx() == TRUE ) {
OS_ISigSem(SEMID_USBH_STRGEVENT);
}
else {
OS_SigSem(SEMID_USBH_STRGEVENT);
}
}
/*
//=============================================================================================
// Function_Name: USBH_STRG_ReturnValueCallback
//
// description : EntryClass function return value callback function
//
// The return value of the EntryClass function is acquired.
//
// argument : event (in)Message
// param1 (in)Return value
// *pParam (in)NULL
//
// return : none
===============================================================================================*/
void USBH_STRG_ReturnValueCallback( ULONG event, ULONG param1, void *pParam )
{
OS_ILocCpu();
/* Return Value flag set */
callbackPara.flag |= EVENT_RETURN_VALUE;
OS_IUnlCpu();
/* CallBack parameter set */
callbackPara.event = event;
// OS_IWupTsk(TSKID_USBH_STRGEVENT);
OS_SigSem(SEMID_USBH_STRGEVENT);
}
/*=============================================================================================
// Function_Name: USBH_STRG_SetConfigCallback
//
// description : SetConfiguration completion CallBack function
//
// The SetConfiguration completion process
//
// argument : event (in)Message
// param1 Reserved
// *pParam Reserved
//
// return : None
===============================================================================================*/
void USBH_STRG_SetConfigCallback( ULONG event, ULONG param1, void *pParam )
{
OS_BOOL bCpuState;
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, lock it. */
if( OS_SnsCtx() == TRUE ){
OS_ILocCpu();
} else {
OS_LocCpu();
}
}
/* Set the SetConfiguration completion flag */
callbackPara.flag |= EVENT_SETCONFIG;
if (bCpuState != OS_TRUE ){
if( OS_SnsCtx() == TRUE ){
OS_IUnlCpu();
} else {
OS_UnlCpu();
}
}
// Set CallBack parameter
callbackPara.event = event;
if (OS_SnsCtx() == TRUE ) {
OS_ISigSem(SEMID_USBH_STRGEVENT);
} else {
OS_SigSem(SEMID_USBH_STRGEVENT);
}
}
/*=============================================================================================
// Function_Name: USBH_STRG_ResetCallback
//
// description : USB reset Callback function of device
//
// USB reset completion process of the device.
//
// argument : event (in)Message
// param1 Reserved
// *pParam Reserved
//
// return : None
===============================================================================================*/
void USBH_STRG_ResetCallback( ULONG event, ULONG param1, void *pParam )
{
OS_BOOL bCpuState;
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, lock it. */
if( OS_SnsCtx() == TRUE ){
OS_ILocCpu();
} else {
OS_LocCpu();
}
}
/* Set USB Reset completion flag */
callbackPara.flag |= EVENT_RESET;
if (bCpuState != OS_TRUE ){
if( OS_SnsCtx() == TRUE ){
OS_IUnlCpu();
} else {
OS_UnlCpu();
}
}
// Set CallBack parameter
callbackPara.event = event;
if (OS_SnsCtx() == TRUE ) {
OS_ISigSem(SEMID_USBH_STRGEVENT);
} else {
OS_SigSem(SEMID_USBH_STRGEVENT);
}
}
/*=============================================================================================
// Function_Name: USBH_STRG_SubmitURBCallback
//
// description : SubmitURB CallBack function.
//
// Process when the URB registration completed.
//
// argument : event (in)Message
// param1 Reserved
// *pParam Reserved
//
// return : None
===============================================================================================*/
void USBH_STRG_SubmitURBCallback( ULONG event, ULONG param1, void *pParam )
{
/* For speed-up */
if(cychdrPara.ctlPass == EVENT_NONE) {
OS_SetFlg(FLGID_USBH_SAMPLE, FLG_EVENT_SUBMITURB_CMP_USBH_SAMPLE);
return;
}
OS_BOOL bCpuState;
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, lock it. */
if( OS_SnsCtx() == TRUE ){
OS_ILocCpu();
} else {
OS_LocCpu();
}
}
/* Set the SubmitURB completion flag */
callbackPara.flag |= EVENT_SUBMIT_URB;
if (bCpuState != OS_TRUE ){
if( OS_SnsCtx() == TRUE ){
OS_IUnlCpu();
} else {
OS_UnlCpu();
}
}
// Set Callback parameter
callbackPara.event = event;
if (OS_SnsCtx() == TRUE ) {
OS_ISigSem(SEMID_USBH_STRGEVENT);
} else {
OS_SigSem(SEMID_USBH_STRGEVENT);
}
}
/*=============================================================================================
// Function_Name: USBH_STRG_UnlinkURBCallback
//
// description : UnlinkURB CallBack function
//
// The URB deletion termination is done.
//
// argument : event (in)Message
// param1 Reserved
// *pParam Reserved
//
// return : None
===============================================================================================*/
void USBH_STRG_UnlinkURBCallback( ULONG event, ULONG param1, void *pParam )
{
OS_BOOL bCpuState;
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, lock it. */
if( OS_SnsCtx() == TRUE ){
OS_ILocCpu();
} else {
OS_LocCpu();
}
}
/* Set the UnlinkURB completion flag */
callbackPara.flag |= EVENT_UNLINK_URB;
if (bCpuState != OS_TRUE ){
if( OS_SnsCtx() == TRUE ){
OS_IUnlCpu();
} else {
OS_UnlCpu();
}
}
// Set CallBack parameter
callbackPara.event = event;
if (OS_SnsCtx() == TRUE ) {
OS_ISigSem(SEMID_USBH_STRGEVENT);
} else {
OS_SigSem(SEMID_USBH_STRGEVENT);
}
}
/*=============================================================================================
// Function_Name: USBH_STRG_CBWCompCallback
//
// description : CBW tansfer completion CallBack function
//
// It is processed when the CBW transmission of the Bulk Only Transport transfer ends.
//
// argument : *pUrb (in)The pointer that points to the executed URB
//
// return : None
===============================================================================================*/
void USBH_STRG_CBWCompCallback( USBH_USBD_URB *pUrb )
{
OS_BOOL bCpuState;
bCpuState = OS_SnsLoc();
if (bCpuState != OS_TRUE ){
/* If CPU is not locked, loc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -