📄 mss.c
字号:
// MassStorage.cpp: implementation of the MassStorage class.
//
//////////////////////////////////////////////////////////////////////
#define __OS_SOURCE_FILE__
#ifndef _WIN32
#include "Kernel.h"
#include "HAL.h"
#include "SCL.h"
#include "MSS.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
volatile UINT16 g_uExitMSS;
NU_DRIVER *pndUSB;
NU_DRIVER *DriverFindFromName(char *pDrvName)
{
NU_DRIVER *pNdTemp[16];
UINT32 dwDrivers, i;
dwDrivers = NU_Driver_Pointers(pNdTemp, 16);
for( i = 0; i < dwDrivers; i++ )
{
if( strncmp(pDrvName, pNdTemp[i]->nu_driver_name, NU_MAX_NAME) == 0 )
return pNdTemp[i];
}
return (NU_DRIVER*)NULL;
}
UINT MSS_Init(void)
{
UINT uRet;
NU_DRIVER_REQUEST ndrTemp;
//初始化USB驱动
g_uExitMSS = 0;
pndUSB =(NU_DRIVER *)DriverFindFromName(DRV_NAME_USB);
if(NULL == pndUSB)
return -1;
if (0 != (uRet = HAL_Init()))
return uRet;
uRet = SCSI_Init();
if(0 == uRet)
{
ndrTemp.nu_function = NU_STATUS;
ndrTemp.nu_supplemental = USB_IOCTL_CONNECT;
ndrTemp.nu_supplemental_ptr = (void*)(UINT32)USB_INIT_MASSSTORAGE;
#ifdef SYS_UPDATE
USBDriver_Func(NULL, &ndrTemp);
uRet = ndrTemp.nu_status;
#else
uRet = NU_Request_Driver(pndUSB, &ndrTemp);
#endif
}
return uRet;
}
UINT MSS_Stop(void)
{
NU_DRIVER_REQUEST ndrTemp;
UINT uKey = 0;
//stop USB
ndrTemp.nu_function = NU_STATUS;
ndrTemp.nu_supplemental = USB_IOCTL_DISCONNECT;
#ifdef SYS_UPDATE
USBDriver_Func(NULL, &ndrTemp);
uKey = ndrTemp.nu_status;
#else
FlashClose(NULL);
SCSI_UnInit();
uKey = NU_Request_Driver(pndUSB, &ndrTemp);
#endif
return uKey;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -