⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbh_storage_if.c

📁 epson usb2.0 控制芯片 S1R72V05 固件程序。
💻 C
📖 第 1 页 / 共 5 页
字号:

	/* 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 + -