亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mass_storage.c

?? 君正早期ucos系統(tǒng)(只有早期的才不沒有打包成庫),MPLAYER,文件系統(tǒng),圖片解碼,瀏覽,電子書,錄音,想學ucos,識貨的人就下吧 russblock fmradio explore set
?? C
?? 第 1 頁 / 共 3 頁
字號:
		sense[2] = 0x02;		sense[12] = 0x3a;		iscardin = 1;	}	else	{		sense[2] = 0x06;		sense[12] = 0x28;		iscardin = 0;	}	pBus->StartTransfer(handle,pipe[1].ep,(unsigned char *)sense,sizeof(sense));		return 1;	}static inline unsigned int Handle_UFI_READ_CAPACITY(unsigned handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	DEVINFO devinfo;	PUDC_LUN pdev = pDev[cbw.bCBWLUN]; 	static u32 resp[2];	pdev->GetDevInfo((unsigned int)pdev,&devinfo);	resp[0] = swap32(devinfo.partsize-1); /* last sector */	resp[1] = swap32(512);		/* sector size */	if ( !(pdev->CheckDevState(handle)) ) {  		csw.dCSWDataResidue = cbw.dCBWDataXferLength;		csw.bCSWStatus = CSWSTATUS_FAILED;		//if sd out,shall send stall!!		pBus->StartTransfer(handle,0xff,(unsigned char *)resp, sizeof(resp));		return 0;	}	else	{		pBus->StartTransfer(handle,pipe[1].ep,(unsigned char *)resp, sizeof(resp));	}	return 1;	}static inline unsigned int Handle_CSW(unsigned int handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	PUDC_LUN pdev = pDev[cbw.bCBWLUN];	pBus->StartTransfer(handle,pipe[1].ep,(unsigned char *)&csw, sizeof(CSW));	return 1;	}static inline unsigned int Handle_UFI_TEST_UNIT_READY(unsigned int handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	PUDC_LUN pdev = pDev[cbw.bCBWLUN]; 		if ( cbw.bCBWLUN > 0 )	{		if ( iscardin == 0 ) {			if ( !(pdev->CheckDevState(handle)) ) {				csw.bCSWStatus = CSWSTATUS_FAILED;			}		}		else			csw.bCSWStatus = iscardin;	}	else 		csw.bCSWStatus = CSWSTATUS_GOOD;    Handle_CSW(handle);	mass_state = SENDED_CSW;	if(pdev->FlushDev)		pdev->FlushDev(handle);	return 1;}static inline unsigned int Handle_UFI_READ_10(unsigned handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	PUDC_LUN pdev = pDev[cbw.bCBWLUN];	unsigned int sectors;	g_start_sector =		((unsigned int)cbw.CBWCB[2] << 24) |		((unsigned int)cbw.CBWCB[3] << 16) |		((unsigned int)cbw.CBWCB[4] << 8) |		(unsigned int) cbw.CBWCB[5];		g_nr_sectors =		((unsigned short)cbw.CBWCB[7] << 8) | (unsigned short)cbw.CBWCB[8];	sectors = UDC_FRAME_SIZE / g_sector_size;	if(sectors > g_nr_sectors)		sectors = g_nr_sectors;	#ifdef MUTI_THREAD	massbuf = (unsigned char *)((unsigned int)massBuf0 | 0xa0000000);	dprintf("read g_start_sector = %x\n g_nr_sectors = %x sectors = %x\n",g_start_sector,g_nr_sectors,sectors);	OSSemPend(sem_device, 0, &err);#endif	pdev->ReadDevSector((unsigned int)pdev,massbuf_ptr,g_start_sector,sectors);#ifdef MUTI_THREAD	OSSemPost(sem_device);#endif	pBus->StartTransfer(handle,pipe[1].ep, (unsigned char *)massbuf_ptr,						sectors * g_sector_size);	g_start_sector += sectors;	g_nr_sectors -= sectors;	mass_state = SEND_DATA;	return 1;	}static inline unsigned int Handle_UFI_WRITE_10(unsigned handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	PUDC_LUN pdev = pDev[cbw.bCBWLUN]; 	unsigned int sendcount;	unsigned int sectors;		g_start_sector =		((u32)cbw.CBWCB[2] << 24) |		((u32)cbw.CBWCB[3] << 16) |		((u32)cbw.CBWCB[4] << 8) |		(u32)cbw.CBWCB[5];	g_nr_sectors   =		((u16)cbw.CBWCB[7] << 8) | (u16)cbw.CBWCB[8];	sendcount = g_nr_sectors * g_sector_size;	sectors = g_nr_sectors;		if(sendcount > UDC_FRAME_SIZE)	{		sendcount = UDC_FRAME_SIZE;		sectors = sendcount / g_sector_size;			}		dprintf("write s:%x n:%x c:%x\n", g_start_sector, g_nr_sectors,sectors);#ifdef MUTI_THREAD	if ( udc_trigger == 1 )	{		massbuf = (unsigned char *)((unsigned int)massBuf1 | 0xa0000000);		OSSemPend(sem_buf1, 0, &err);	}	else 	{		massbuf = (unsigned char *)((unsigned int)massBuf0 | 0xa0000000);		OSSemPend(sem_buf0, 0, &err);	}//	printf("get here? \n");#endif		pBus->StartTransfer(handle,pipe[2].ep, massbuf_ptr,sendcount);	if(g_nr_sectors)		mass_state = RECEIVE_DATA;	else	{		mass_state = SENDED_CSW;		Handle_CSW(handle);	}		return 1;	}static inline unsigned int Handle_UFI_READ_FORMAT_CAPACITY(unsigned handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	DEVINFO devinfo;	PUDC_LUN pdev = pDev[cbw.bCBWLUN]; 	READ_FORMAT_CAPACITY_DATA readfcd;	if(pdev->CheckDevState(handle) == 0)	{		csw.dCSWDataResidue = cbw.dCBWDataXferLength;		csw.bCSWStatus = CSWSTATUS_FAILED;		pBus->StartTransfer(handle,0xff,0, 0);		return 0;	}	 #if 0  		csw.dCSWDataResidue = cbw.dCBWDataXferLength;		csw.bCSWStatus = CSWSTATUS_FAILED;		//if sd out,shall send stall!!		pBus->StartTransfer(handle,0xff,0, 0);		return 0;#endif		memset(&readfcd,0,sizeof(readfcd));	readfcd.CapacityListLen = 0x8;                 //M by yliu	pdev->GetDevInfo((unsigned int)pdev,&devinfo);	readfcd.CapacityData[0].Blocks = devinfo.partsize-1;	readfcd.CapacityData[0].BlockLen = devinfo.sectorsize;	readfcd.CurMaxCapacity.Blocks = devinfo.partsize-1;	g_sector_size = devinfo.sectorsize;	readfcd.CurMaxCapacity.BlockLen = g_sector_size;	readfcd.CurMaxCapacity.BlockLen = (readfcd.CurMaxCapacity.BlockLen << 8) | 0x2;    	int size = cbw.bCBWCBLength;	if(size > sizeof(READ_FORMAT_CAPACITY_DATA))		size = sizeof(READ_FORMAT_CAPACITY_DATA);	csw.bCSWStatus = CSWSTATUS_GOOD;	csw.dCSWDataResidue = 0x0;	csw.dCSWTag = cbw.dCBWTag;		pBus->StartTransfer(handle,pipe[1].ep,(u8 *) &readfcd, cbw.dCBWDataXferLength);	return 1;	}static inline unsigned int Handle_UFI_MODE_SENSE_6(unsigned handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	static unsigned char sensedata[8] = {		0x00,0x06, // lenght		0x00,      // default media		0x00,      // bit 7 is write protect        0x00,0x00,0x00,0x00 //reserved	};	pBus->StartTransfer(handle,pipe[1].ep,sensedata, sizeof(sensedata));    return 1;}static inline unsigned int USB_HandleCBW(unsigned int handle){	if (cbw.dCBWSignature != CBWSIGNATURE)		return 0;    	csw.dCSWSignature = CSWSIGNATURE;	csw.bCSWStatus = CSWSTATUS_GOOD;	csw.dCSWTag = cbw.dCBWTag;	csw.dCSWDataResidue = 0;//	if (cbw.bCBWLUN != 0 || (cbw.CBWCB[1] & 0xe0 ) != 0 )//		printf("AAAAAAAAAAAAA %d \n",cbw.bCBWLUN);	//printf("cbw.Signature:%08x\n", cbw.dCBWSignature);	//printf("cbw.dCBWTag:%08x\n", cbw.dCBWTag);	//printf("cbw.dCBWDataXferLength:%x\n", cbw.dCBWDataXferLength);	//printf("cbw.bmCBWFlags:%08x\n", cbw.bmCBWFlags);	//printf("cbw.bCBWLUN:%d\n", cbw.bCBWLUN);	//printf("cbw.bCBWCBLength:%d\n", cbw.bCBWCBLength);	//printf("cbw.CBWCB[0]:%02x\n", cbw.CBWCB[0]);	mass_state = SENDING_CSW;		switch (cbw.CBWCB[0]) {	case UFI_INQUIRY:		Handle_UFI_INQUIRY(handle);		break;	case UFI_REQUEST_SENSE:		Handle_UFI_REQUEST_SENSE(handle);		break;	case UFI_READ_CAPACITY:		if ( !Handle_UFI_READ_CAPACITY(handle))		{			Handle_CSW(handle);			mass_state = SENDED_CSW;			csw.bCSWStatus = CSWSTATUS_GOOD;		}		break;	case UFI_READ_10:		Handle_UFI_READ_10(handle);		break;			case UFI_WRITE_10:	case UFI_WRITE_AND_VERIFY:		dprintf("UFI_WRITE_10\r\n");				Handle_UFI_WRITE_10(handle);		break;	case UFI_READ_FORMAT_CAPACITY:		if(!Handle_UFI_READ_FORMAT_CAPACITY(handle))		{			Handle_CSW(handle);			mass_state = SENDED_CSW;			csw.bCSWStatus = CSWSTATUS_GOOD;		}	//		Handle_CSW(handle);//		mass_state = SENDED_CSW;		break;	case UFI_MODE_SENSE_10:	case UFI_MODE_SENSE_6:		Handle_UFI_MODE_SENSE_6(handle);		break;	case UFI_TEST_UNIT_READY:		Handle_UFI_TEST_UNIT_READY(handle);		break;	default:		Handle_CSW(handle);		mass_state = SENDED_CSW;				break;	}}static unsigned int mass_detect(unsigned int handle,unsigned int stat){	PUDC_BUS pBus = (PUDC_BUS)handle;	unsigned char i;    // udc gpio detect insert	dprintf("mass_detect udc_device_state = %x\n",udc_device_state);	if(stat == UDC_JUDGE)	{	if((udc_device_state & UDC_HW_CONNECT) == 0)		{						pBus->EnableDevice(handle);			udc_device_state |= UDC_HW_CONNECT;					}	}else if(stat == UDC_REMOVE) //udc gpio detect remove 	{				if(udc_device_state & UDC_HW_CONNECT)		{			pBus->DisableDevice(handle);			udc_device_state &= ~UDC_HW_CONNECT;		}				if(udc_device_state & UDC_SW_CONNECT)		{			for(i = 0;i < curLunCount; i++)			{				if(pDev[i])					pDev[i]->DeinitDev((unsigned int)pDev[i]);			}						udc_device_state &= ~UDC_SW_CONNECT;		}			}	else		return 0;	return 1;	}static unsigned int mass_reset(unsigned int handle){	PUDC_BUS pBus = (PUDC_BUS)handle;	unsigned char ret = 1, i = 0;	printf("mass reset \r\n");	init_thread();#ifdef MUTI_THREAD	unsigned char err;	OSSemPend(sem_device,0,&err);#endif	pBus->InitEndpointSuppost(handle,&(pipe[0].ep),pipe[0].ep_type,&(pipe[0].max_pkg));	pBus->InitEndpointSuppost(handle,&(pipe[1].ep),pipe[1].ep_type,&(pipe[1].max_pkg));	pBus->InitEndpointSuppost(handle,&(pipe[2].ep),pipe[2].ep_type,&(pipe[2].max_pkg));	devDesc.bMaxPacketSize0 = pipe[0].max_pkg;	confDesc.endpoint_descriptor[0].bEndpointAddress = pipe[1].ep;	confDesc.endpoint_descriptor[0].wMaxPacketSize = pipe[1].max_pkg;		confDesc.endpoint_descriptor[1].bEndpointAddress = pipe[2].ep;	confDesc.endpoint_descriptor[1].wMaxPacketSize = pipe[2].max_pkg;#ifndef MUTI_THREAD	massbuf_ptr = (unsigned char *)((unsigned int)massBuf_ptr | 0xa0000000);#else//	udc_trigger = 0;//	mass_trigger = 0;/*	sem_buf0 = OSSemCreate(1);	sem_buf1 = OSSemCreate(1);	sem_mass = OSSemCreate(0);	sem_device = OSSemCreate(1);*/#endif	if(curLunCount == 0)		return;	ret = curLunCount;		if(ret)	{		for(i = 0;i < curLunCount; i++)		{			if(pDev[i])				pDev[i]->InitDev((unsigned int)pDev[i]);					}				devDesc.iSerialNumber = 3;				}	udc_device_state |= UDC_SW_CONNECT;	mass_state = RECEIVE_CBW;	pBus->StartTransfer(handle,pipe[2].ep,(unsigned char *)&cbw,sizeof(cbw));		dprintf("iSerialNumber = %d\n",devDesc.iSerialNumber);#if MUTI_THREAD	OSSemPost(sem_device);#endif	return (unsigned int )ret;	}static unsigned int mass_suspend(unsigned int handle){	unsigned char i;	printf("mass_suspend!\n");	deinit_thread();	if(udc_device_state & UDC_SW_CONNECT)	{		for(i = 0;i < curLunCount; i++)			if(pDev[i])				pDev[i]->DeinitDev((unsigned int)pDev[i]);		udc_device_state &= ~UDC_SW_CONNECT;	}	return 1;}static unsigned int set_udc_speed(unsigned stat){	switch(stat)	{	case UDC_HIGHSPEED:		printf("UDC HIGHSPEED\r\n");		break;			case UDC_FULLSPEED:		printf("UDC FULLSPEED\r\n");		break;			}	return 1;}static inline void get_dev_descriptor(unsigned int handle,USB_DeviceRequest *dreq){    PUDC_BUS pBus = (PUDC_BUS)handle;    unsigned short size = dreq->wLength;		if(size < sizeof(devDesc))	{		devDesc.bLength = size;		pBus->StartTransfer(handle,pipe[0].ep,(unsigned char *)&devDesc, size);	}		else	{		devDesc.bLength = sizeof(devDesc);		pBus->StartTransfer(handle,pipe[0].ep,(unsigned char *)&devDesc, sizeof(devDesc));	}	}static inline void get_dev_configuration(unsigned int handle,USB_DeviceRequest *dreq){	PUDC_BUS pBus = (PUDC_BUS)handle;	switch (dreq->wLength) {	case 9:		pBus->StartTransfer(handle,pipe[0].ep, (unsigned char *)&confDesc, 9);		break;	case 8:		pBus->StartTransfer(handle,pipe[0].ep, (unsigned char *)&confDesc, 8);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美日韩黄色大片| 久久国产精品72免费观看| 国产成人在线电影| 国产日产精品一区| 成人精品视频一区二区三区尤物| 国产女主播一区| 99久久精品国产麻豆演员表| 亚洲欧美一区二区不卡| 91国产丝袜在线播放| 天天影视色香欲综合网老头| 日韩欧美国产一区在线观看| 麻豆精品视频在线观看免费 | 日韩精品亚洲专区| 91精品国产综合久久婷婷香蕉| 日本亚洲一区二区| 久久青草欧美一区二区三区| 成人精品免费网站| 亚洲成年人网站在线观看| 国产精品毛片大码女人| 国产精品国产成人国产三级| 久久久久国产精品厨房| 麻豆精品久久精品色综合| 久久男人中文字幕资源站| 成人午夜视频福利| 亚洲综合一区二区| 日韩欧美国产午夜精品| 99久久综合色| 日韩精品福利网| 欧美韩国日本综合| 欧美日韩亚州综合| 丰满少妇久久久久久久| 亚洲一区二区三区国产| 欧美电影免费提供在线观看| www.亚洲人| 欧美a级理论片| 亚洲视频图片小说| 精品日韩一区二区三区免费视频| av高清不卡在线| 青青草国产成人av片免费| 中文字幕在线视频一区| 丝袜a∨在线一区二区三区不卡 | 欧美色图片你懂的| 国产麻豆成人传媒免费观看| 一区二区三区欧美激情| 久久久不卡影院| 欧美福利电影网| 99在线精品一区二区三区| 日本成人中文字幕在线视频| 亚洲天堂久久久久久久| 久久影视一区二区| 日韩三级视频在线观看| 在线精品视频免费播放| 成人免费三级在线| 久久99精品久久久久久| 亚洲电影你懂得| 亚洲欧洲日韩在线| 久久精品欧美一区二区三区不卡 | www日韩大片| 91麻豆精品国产91久久久更新时间| 国产jizzjizz一区二区| 精品一区二区三区在线播放| 午夜精品久久久久久| 亚洲人123区| 久久精品亚洲乱码伦伦中文| 精品福利在线导航| 日韩欧美电影一二三| 欧美福利视频一区| 538在线一区二区精品国产| 欧美日韩国产精品成人| 在线精品视频小说1| 91久久香蕉国产日韩欧美9色| 成人免费毛片app| 粗大黑人巨茎大战欧美成人| 国产成人在线视频网址| 国产一区视频在线看| 久久99久久久欧美国产| 久久精品噜噜噜成人av农村| 日韩主播视频在线| 免费观看久久久4p| 精品一区二区三区在线观看国产| 六月丁香综合在线视频| 激情深爱一区二区| 麻豆精品一二三| 久久爱www久久做| 国产精品无遮挡| 国产精品不卡在线| 国产精品视频一二三| 国产欧美日韩激情| 久久男人中文字幕资源站| 欧美少妇xxx| 欧美日韩亚洲综合一区| 欧美日韩精品专区| 欧美私人免费视频| 欧美日韩国产大片| 欧美日韩三级一区| 欧美性生活一区| 99国产麻豆精品| 在线免费观看成人短视频| 色狠狠桃花综合| 91久久国产最好的精华液| 日本道在线观看一区二区| 在线亚洲人成电影网站色www| 97aⅴ精品视频一二三区| 93久久精品日日躁夜夜躁欧美| 一本色道久久综合亚洲精品按摩| 91视视频在线直接观看在线看网页在线看| 国产大陆a不卡| 成人国产精品免费观看动漫| 成人av午夜电影| 色综合av在线| 欧美日韩1234| 精品国产免费久久| 国产精品欧美一区二区三区| 亚洲同性gay激情无套| 日韩高清国产一区在线| 美女视频免费一区| 国产精品1024| 色综合一个色综合亚洲| 欧美日韩五月天| 2024国产精品| 中文字幕在线观看不卡视频| 性做久久久久久免费观看| 国产成人在线看| 欧美自拍偷拍一区| 日韩欧美国产一二三区| 亚洲国产精品黑人久久久| 丝袜美腿亚洲色图| 福利电影一区二区| 欧美视频一二三区| 欧美精品一区二区三区高清aⅴ| 国产亚洲精品7777| 亚洲一区视频在线观看视频| 国内久久婷婷综合| 色综合久久六月婷婷中文字幕| 555www色欧美视频| 中文字幕日本不卡| 蜜臀av在线播放一区二区三区| 国产91综合一区在线观看| 国产精品中文字幕欧美| 欧美精品一卡二卡| 国产精品二三区| 日本伊人精品一区二区三区观看方式| 国产成人av一区二区三区在线观看| 色婷婷精品久久二区二区蜜臀av| 欧美一区二区三区日韩视频| 亚洲精品老司机| 狠狠色丁香久久婷婷综合丁香| 一本久久综合亚洲鲁鲁五月天 | 欧美日韩免费高清一区色橹橹 | 一区二区三区日本| 成人免费毛片a| 欧美一级艳片视频免费观看| 亚洲女与黑人做爰| 韩国欧美国产1区| 欧美日韩国产在线观看| 中文在线一区二区| 国产在线看一区| 欧美片在线播放| 中文字幕日韩av资源站| 国产在线乱码一区二区三区| 6080午夜不卡| 一区二区三区蜜桃| 欧美性大战久久久久久久蜜臀| 国产欧美日韩三级| 激情五月婷婷综合网| 日韩一区二区三区视频在线观看| 亚洲日本在线观看| 蜜臀国产一区二区三区在线播放| 欧美日韩一级二级| 亚洲综合免费观看高清完整版| 成人性视频免费网站| 久久婷婷成人综合色| 日本成人在线看| 91精品国产高清一区二区三区蜜臀 | 一区二区三区精品| 国产美女视频一区| 国产欧美精品一区| 国产精品88av| 精品美女一区二区三区| 麻豆精品在线观看| 日韩丝袜情趣美女图片| 婷婷开心久久网| 555夜色666亚洲国产免| 天天色 色综合| 欧美夫妻性生活| 男人的天堂亚洲一区| 91浏览器入口在线观看| 一区二区三区欧美| 欧美午夜精品久久久久久超碰| 亚洲免费观看高清完整| 在线看日本不卡| 天堂资源在线中文精品| 欧美mv日韩mv亚洲| 国产中文一区二区三区| 久久亚洲捆绑美女| 成人免费视频视频在线观看免费 | 91麻豆精品国产| 久久国产精品99久久人人澡| 精品国产污网站| 国产精品一区二区三区网站|