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

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

?? hub_sl811hst.c

?? TI的DSP處理器連接USB芯片訪問U盤的代碼.有點挑盤,只支持FAT16的文件系統.
?? C
字號:
////////////////////////////////////////////////////////////////////////////////
// Cypress Semiconductor - Customer Design Center 
////////////////////////////////////////////////////////////////////////////////
// File:		hub_811.c
// Purpose:	    8051 firmware to master SL811 downstream hub (CY7C651xx). 
//              Contains hub-related control firmware. 
//              Based on SL811HST code written by cxn.
// H/W Target:  SL811HST(Rev 1.5) + EZUSB DEV KIT
// IMPORTANT :  Turn ON SW4 of S6-DIP-SWITCH 
//              to enable upper 32K memory on EZUSB Dev Kit
//
// $Header: /USB/ez811/firmware/Emb_Host/hub_811.c 7     5/17/02 6:09p Tpm $
// Copyright (c) 2002 Cypress Semiconductor. May not be reproduced without permission.
// See the license agreement for more details.
////////////////////////////////////////////////////////////////////////////////

#include "host_811.h"

extern xdata BYTE 			STATUS[8];		// for status data buffer
extern xdata BYTE 			HubChange[1];	// Hub port endpoint 1 data status
extern xdata BYTE 			pNumPort;		// Number of downstream ports on hub
extern xdata pHUBDEV		uHub;			// Struct for downstream device on HUB
extern xdata pPortStatus	pStat;			// HID ports status

//*****************************************************************************************
// Hub's downstream ports enumeration routine
//*****************************************************************************************
int HubPortEnum(void)
{
	xdata BYTE 	DevAddr, PortNum=0, PortSel;
	xdata BYTE	j=0;
//	xdata BYTE	TempDevAddr;

	PortSel = 0x02;											// start with port 1 first
	while(j++ < pNumPort)									// loop for all 4 port, bit 1 to bit 4
	{
		if(!(HubChange[0]&PortSel))							// test if bit representing port is set
		{
			PortSel <<= 1;									// shift mask to test for next bit port
		}
		else
		{
			switch(HubChange[0]&PortSel)					// valid downstream port number #1..#4 only
			{
				case 0x02:	PortNum = 0x01;	break;			// Limit to onboard hub with 4 downstream ports
				case 0x04:	PortNum = 0x02; break;			//
				case 0x08:	PortNum = 0x03; break;			//
				case 0x10:	PortNum = 0x04; break;			//
				default:	PortNum = HubChange[0]; break;	// for debug purpose
			}
			break;											// found one port, exit while loop now
		}
	}

	// Always use USB address #1 for HUB communication
	pStat =(pPortStatus)STATUS;								// keep current wPortStatus & wPortChange
	if (!GetPortStatus(HUB_ADDR,PortNum,STATUS)) return 0;	// If the device is already attached to hub

	//------------------------------------------------------------------------------
	// Device is present on current downstream port
	//------------------------------------------------------------------------------
	if((pStat->wPortStatus_Lo)&0x01)						
	{	
		//------------------------------------------------
		// Search for unused USB address (#2..#5 valid)
		//------------------------------------------------
		for(DevAddr=HUB_ADDR + 1; DevAddr<MAX_DEV; DevAddr++)	
		{
			if(uHub.bPortPresent[DevAddr] == 0)
			  break;
		}
		if(DevAddr == MAX_DEV)
		{
          DevAddr = 0;                                  // open port not found (shouldn't happen)
		  return 0;
		}

		//------------------------------------------------
		// Reset current attached downstream port device
		//------------------------------------------------
		if (!PortFeature(HUB_ADDR,CLEAR_FEATURE,C_PORT_CONNECTION,PortNum)) return 0;
		do{ // Clear C_PORT_CONNECTION state
			if (!GetPortStatus(HUB_ADDR,PortNum,STATUS)) return 0;
        }
		while(((pStat->wPortChange_Lo)&USB_PORT_STAT_C_CONNECTION));

		
		if (!PortFeature(HUB_ADDR,SET_FEATURE,PORT_RESET,PortNum)) return 0;	// reset this port for at least 10ms
		EZUSB_Delay(10);
		do{ // Set PORT_RESET 
			if (!GetPortStatus(HUB_ADDR,PortNum,STATUS)) return 0;
        }
		while( !((pStat->wPortChange_Lo)&USB_PORT_STAT_C_RESET) );

				
		if (!PortFeature(HUB_ADDR,CLEAR_FEATURE,C_PORT_RESET,PortNum)) return 0;
		do{ // Clear C_PORT_RESET state
			if (!GetPortStatus(HUB_ADDR,PortNum,STATUS)) return 0;
        }
		while(((pStat->wPortChange_Lo)&USB_PORT_STAT_C_RESET));
	
		//------------------------------------------------
		// Determine attached downstream speed
		//------------------------------------------------
		if ((pStat->wPortStatus_Hi)&0x02)								// check bit 9 of wPortStatus for port speed
			uHub.bPortSpeed[0] = uHub.bPortSpeed[DevAddr] = 1;			// '1' - lowspeed, USB address 0 must also be set
		else								
			uHub.bPortSpeed[0] = uHub.bPortSpeed[DevAddr] = 0;			// '0' - fullspeed, USB address 0 must also be set
				
		//------------------------------------------------
		// Enumerate current attached device on hub
		//------------------------------------------------
		EZUSB_Delay(50);							// some device require a long delay before it can enumerate properly
		if (!EnumUsbDev(DevAddr))					// enumerate device attached to current hub downstream port
			return 0;

		uHub.bPortPresent[DevAddr] = 1;				// set USB device present on this address	
		uHub.bPortNumber[DevAddr] = PortNum;		// Save port number used in this address
		switch(PortNum)		     		            // Downstream port #
		{											//
		//	case 1:	OUTA &= ~PORT1_LED; break;		// Downstream Port #1
			case 1: LightLed(1,1);		break;
		//	case 2:	OUTA &= ~PORT2_LED; break;		// Downstream Port #2
			case 2: LightLed(2,1);		break;
		//	case 3:	OUTA &= ~PORT3_LED; break;		// Downstream Port #3
			case 3: LightLed(3,1);		break;
		//	case 4:	OUTA &= ~PORT4_LED; break;		// Downstream Port #4
			case 4: LightLed(4,1);		break;
			default: break;
		}				
	}

	//------------------------------------------------------------------------------
	// Device is not present on current downstream port
	//------------------------------------------------------------------------------
	else
	{
		do{	// Clear C_PORT_CONNECTION state
		    if (!PortFeature(HUB_ADDR,CLEAR_FEATURE,C_PORT_CONNECTION,PortNum)) return 0;
			if (!GetPortStatus(HUB_ADDR,PortNum,STATUS)) return 0;
        }						//
		while(((pStat->wPortChange_Lo)&USB_PORT_STAT_C_CONNECTION));

		do{	// Clear C_PORT_ENABLE state - PORT_ENABLE was set for some hub only
		    if (!PortFeature(HUB_ADDR,CLEAR_FEATURE,C_PORT_ENABLE,PortNum)) return 0;
			if (!GetPortStatus(HUB_ADDR,PortNum,STATUS)) return 0;
        }						//
		while(((pStat->wPortChange_Lo)&USB_PORT_STAT_C_ENABLE));

		//------------------------------------------------
		// Search Port Number that was detached
		//------------------------------------------------
		for(DevAddr=HUB_ADDR + 1; DevAddr<MAX_DEV; DevAddr++)	
		{                                               // find the device
			if(uHub.bPortNumber[DevAddr]==PortNum)
			  break;
		}
		if(DevAddr == MAX_DEV)
          DevAddr = 0;                                  // device not found
		if(DevAddr)
		{
		  uHub.bPortPresent[DevAddr] = 0;			    // clear USB device present on this address		
		  uHub.bPortNumber[DevAddr] = 0;			    // clear port number for this failed address
		  switch(uHub.bPortNumber[DevAddr])				// Downstream port #
		  {												//
		//	case 1:	OUTA |= PORT1_LED; break;			// Downstream Port #1
			case 1: LightLed(1,0);	   break;
		//	case 2:	OUTA |= PORT2_LED; break;			// Downstream Port #2
			case 2: LightLed(2,0);	   break;
		//	case 3:	OUTA |= PORT3_LED; break;			// Downstream Port #3
			case 3: LightLed(3,0);	   break;
		//	case 4:	OUTA |= PORT4_LED; break;			// Downstream Port #4
			case 4: LightLed(4,0);	   break;
			default: break;
		  }	
		}
	}
	return DevAddr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕第一区二区| 91在线小视频| 亚洲一区二区成人在线观看| 中文字幕成人在线观看| 国产日韩欧美在线一区| 日本一区二区三区四区| 欧美变态口味重另类| 日韩精品一区二区三区中文不卡| 欧美日本一区二区三区| 欧美日本一区二区| 欧美成人免费网站| 国产亚洲婷婷免费| 亚洲视频在线观看一区| 一区二区三区四区精品在线视频| 亚洲资源在线观看| 青青草91视频| 国产精品一区不卡| 91无套直看片红桃| 欧美手机在线视频| 欧美肥妇bbw| 久久久国产精品麻豆| 国产精品色婷婷久久58| 一区二区三区免费观看| 午夜欧美在线一二页| 美日韩一区二区| 不卡在线视频中文字幕| 欧日韩精品视频| 欧美一区二区三区小说| 国产片一区二区| 一区二区三区中文字幕电影| 美国十次了思思久久精品导航| 国产一区二区0| 在线观看日韩毛片| 精品国产乱码久久久久久夜甘婷婷| 国产精品免费av| 日韩电影在线免费看| 国产91精品精华液一区二区三区| 欧美视频在线一区二区三区| 久久婷婷国产综合国色天香 | 欧美日韩在线一区二区| 欧美一区二区三区在线观看| 国产精品女主播av| 国产精品 欧美精品| 欧洲亚洲国产日韩| 国产精品色在线| 久久精品国产亚洲aⅴ| 91麻豆国产精品久久| 精品国产乱码久久久久久老虎| 亚洲综合色丁香婷婷六月图片| 国产乱一区二区| 欧美日韩免费视频| 自拍偷自拍亚洲精品播放| 国产自产视频一区二区三区| 欧美日韩国产色站一区二区三区| 国产精品久久久久久久久图文区 | 国产一区二区久久| 欧美视频完全免费看| 国产精品视频观看| 国产精品系列在线观看| 日韩一二在线观看| 午夜精品久久久久久久| 91视频你懂的| 国产精品久久久一区麻豆最新章节| 裸体一区二区三区| 欧美精品一二三区| 伊人一区二区三区| 一本久久综合亚洲鲁鲁五月天| 国产精品视频线看| 成人免费视频视频| 欧美极品aⅴ影院| 国产不卡在线视频| 中文欧美字幕免费| 成人v精品蜜桃久久一区| 国产午夜精品一区二区三区四区| 激情小说欧美图片| 久久蜜桃av一区精品变态类天堂| 精品夜夜嗨av一区二区三区| 精品国产亚洲在线| 国产在线麻豆精品观看| 久久久久久久久久久黄色| 国产在线精品一区在线观看麻豆| 日韩三级视频在线看| 亚洲欧美日韩人成在线播放| 99热国产精品| 亚洲激情av在线| 欧美亚洲综合久久| 日韩 欧美一区二区三区| 欧美一区二区三区四区在线观看| 免费在线看一区| 欧美成人a∨高清免费观看| 99久久久免费精品国产一区二区| 国产精品乱码一区二区三区软件 | 亚洲国产欧美在线| 欧美人动与zoxxxx乱| 男男视频亚洲欧美| 国产日韩欧美精品一区| 91免费版在线| 午夜视频在线观看一区二区三区| 日韩一区二区三区在线| 国产大片一区二区| 伊人开心综合网| 日韩免费看的电影| 不卡一卡二卡三乱码免费网站| 亚洲综合一二区| 精品av综合导航| 99视频在线精品| 青青草精品视频| 国产日产欧美精品一区二区三区| 91蜜桃网址入口| 麻豆精品国产91久久久久久| 中文字幕va一区二区三区| 欧美色爱综合网| 国产成人免费视频网站| 亚洲欧美日韩国产另类专区| 欧美www视频| 在线观看视频91| 国产一区二区h| 亚洲国产一区在线观看| 一片黄亚洲嫩模| 99视频一区二区| 精品一区二区三区免费播放| 夜夜亚洲天天久久| 国产日韩成人精品| 91精品国产综合久久久久| 99久久综合狠狠综合久久| 久久99精品久久久| 亚洲一区成人在线| 国产精品成人在线观看| 精品国产一二三区| 欧美一级国产精品| 在线观看日韩高清av| 成人国产精品视频| 国产美女视频91| 久久精品国产99国产精品| 亚洲一区二区黄色| 亚洲欧美综合色| 日本一区二区免费在线观看视频| 欧美精品乱码久久久久久 | 美女视频第一区二区三区免费观看网站| 中文字幕欧美三区| 久久久久久电影| 日韩免费视频线观看| 777a∨成人精品桃花网| 欧美日韩亚洲另类| 91久久精品国产91性色tv| av亚洲产国偷v产偷v自拍| 国产九九视频一区二区三区| 九一久久久久久| 精品一区二区三区av| 麻豆免费看一区二区三区| 天天影视网天天综合色在线播放 | 久久综合999| 精品国产123| 2022国产精品视频| 久久婷婷一区二区三区| 亚洲电影欧美电影有声小说| 亚洲一区二区av电影| 亚洲图片有声小说| 亚洲大片精品永久免费| 亚洲国产精品久久久久婷婷884| 夜夜精品视频一区二区| 午夜精品爽啪视频| 日本欧美肥老太交大片| 美腿丝袜一区二区三区| 国产专区综合网| 国产精品18久久久久| 风间由美一区二区av101| 99久久精品费精品国产一区二区| fc2成人免费人成在线观看播放| jvid福利写真一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 在线成人高清不卡| 精品国产1区2区3区| 国产精品视频免费看| 一区二区三区欧美日韩| 日本午夜精品一区二区三区电影 | 欧美在线影院一区二区| 欧美乱熟臀69xxxxxx| 精品国产一区二区三区久久久蜜月 | 国产一区二区三区美女| 国产高清亚洲一区| 一本色道久久综合亚洲91| 欧美精品久久一区| 国产亚洲美州欧州综合国| 亚洲日本青草视频在线怡红院| 天使萌一区二区三区免费观看| 久久草av在线| av不卡一区二区三区| 欧美一区在线视频| 国产精品萝li| 免费欧美日韩国产三级电影| 成+人+亚洲+综合天堂| 制服丝袜激情欧洲亚洲| 国产精品久久久久久久久免费樱桃 | 国产色综合一区| 亚洲h在线观看| 成人免费av资源| 日韩欧美高清dvd碟片| 亚洲人成网站精品片在线观看| 久久99国内精品|