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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ep0req.c

?? 1、該PERIPHERAL文件夾包含五個有關(guān)系統(tǒng)外設(shè)的程序:DEC5502_USB、DEC5502_LED和DEC5502_UART程序。 2、DEC5502_USB程序主要實現(xiàn)了與PC機應(yīng)用程
?? C
?? 第 1 頁 / 共 2 頁
字號:
							break;
						/*寫操作*/	
						case VR_BULK_WRITE:
							/*清空節(jié)點6與8*/
							/*Write_SX2reg(SX2_INPKTEND, 0xc0);*/
							switch (setupBuff[2])
							{
								case ENDPOINT6:
									/*寫入節(jié)點6*/
									for(i = 0;i<0x100;i++)
									{
										epdataw1[i] = i*2;	
									}
									for(i = 0;i<0x50;i=i+2)
									{
										epdataw[i/2] = epdataw1[i]+(epdataw1[i+1]<<8);
									}
									/*如果發(fā)送小于整數(shù)據(jù)包的數(shù)據(jù)時,設(shè)置RecievedDataLongth*/
									RecievedDataLongth = 0x3f;
									/*讀當前FIFO的狀態(tài),是否已滿*/
									regValue = sysreg_read(sysstat0);
									FifoWriteCnt = 0;
									SX2_FifoWrite(ENDPOINT6,&epdataw[0],Fifolong);
									/*if(hshostlink ==TRUE)
									{
										Write_SX2reg(SX2_INPKTEND, 0x06);
									}*/
									setupBuff[1] = 0;
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;
								case  ENDPOINT8:
									/*寫入節(jié)點6*/
									for(i = 0;i<0x200;i++)
									{
										epdataw1[i] = i*2+1;
									}
									for(i = 0;i<0x50;i=i+2)
									{
										epdataw[i/2] = epdataw1[i]+(epdataw1[i+1]<<8);
									}
									i = 0;
									/*如果發(fā)送小于整數(shù)據(jù)包的數(shù)據(jù)時,設(shè)置RecievedDataLongth*/
									RecievedDataLongth = 0x1f;
									/*讀當前FIFO的狀態(tài),是否已滿*/
									regValue = sysreg_read(sysstat0);
									SX2_FifoWrite(ENDPOINT8,&epdataw[0],Fifolong);
									/*if(hshostlink ==TRUE)
									{
										Write_SX2reg(SX2_INPKTEND, 0x06);
									}*/
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;
								default:
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;	
							}	
							break;
						/*LED燈D3的操作*/	
						case VR_LED_OPTION:
							switch(setupBuff[2])
							{
								case LED_ON:
									/*點亮LED*/
									asm(" SSBX XF");
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;
								case LED_OFF:
									/*關(guān)掉LED*/
									asm(" RSBX XF");
									/*關(guān)掉定時器*/
									timer_stop();
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;
								case LED_BLINK:
									/*使XF閃爍*/
									timer_start(LED_PERIOD);
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;
								default:
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
									break;
							}
							break;
						/*CODEC 寄存器的設(shè)置*/
						case VR_CODEC_SET:
							/*讀寄存器的設(shè)置值*/
							if (setupBuff[6] > 0 || setupBuff[7] > 0)
							{	
								/*等待EP0數(shù)據(jù)包準備好的標志*/
								while(!sx2EP0Buf);
								/* 清除EP0數(shù)據(jù)包準備好的標志*/
								sx2EP0Buf = FALSE;
								/*讀數(shù)據(jù)相的數(shù)據(jù)長度*/
								Read_SX2reg(SX2_EP0BC, &endpoint0count);
								/*讀數(shù)據(jù)相的數(shù)據(jù)*/
								for(i = 0; i<endpoint0count;i++)
								{
									Read_SX2reg(SX2_EP0BUF,&endpoint0data[i]);
								}
							}
							codec_regvalue = ((endpoint0data[1]& 0x1)<<8) + endpoint0data[0];
							codec_write_reg(codec_command,setupBuff[4],codec_regvalue);
							break;
						/*CODEC 試聽*/
						case VR_CODEC_CIRCLE:
							codec_runing = TRUE;
							/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
							Write_SX2reg(SX2_EP0BC, 0);
							break;
						case VR_CODEC_HALT:
							codec_halt = TRUE;
							codec_play = FALSE;
							DMA_DISABLE(0);
							Write_SX2reg(SX2_INPKTEND, SX2_CLEARALL);
							/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
							Write_SX2reg(SX2_EP0BC, 0);
							break;
						case VR_CODEC_FREQ:
							switch(setupBuff[2])
							{
								case CODEC_FREQ_8K:
									codec_sample = ADSAMPL8K;
									codec_sample_rate(codec_command,codec_sample);
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								break;
								case CODEC_FREQ_44k:
									codec_sample = ADSAMPL44K;
									codec_sample_rate(codec_command,codec_sample);
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								break;
								case CODEC_FREQ_96k:
									codec_sample = ADSAMPL96K;
									codec_sample_rate(codec_command,codec_sample);
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								break;
								default:
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								break;
							}
							break;
						/*CODEC的錄音*/
						case VR_CODEC_REV:
							codec_halt =FALSE;
							codec_rev = TRUE;
							if(setupBuff[2] == 1)
							{
								codec_back = TRUE;
							}
							Write_SX2reg(SX2_INPKTEND, SX2_CLEARALL);
							/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
							Write_SX2reg(SX2_EP0BC, 0);
							break;
						case VR_CODEC_PLAY:
							codec_play = TRUE;
							if(hshostlink ==TRUE)
							{
								/*使能DMA*/
								DMA_ENABLE(0);
								/*啟動dma*/
								/* Read sample from and write back to handset codec */
								audiodata = *(volatile u16*)DRR1_ADDR(CODEC_DATA);
					  			*(volatile u16*)DXR1_ADDR(CODEC_DATA) = audiodata;
							}
							/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
							Write_SX2reg(SX2_EP0BC, 0);
							break;
						case VR_CODEC_DATA:	
							if(codec_horfull == TRUE)
								{
									codec_horfull = FALSE;
									/*寫buffer的上半部分*/
									while(!buffer_halffull){}	
									buffer_halffull = FALSE;
									for(i = 0;i<Fifolong;i++)
									{
										codecdat[i] = SX2_FifoReadSingle(ENDPOINT2);
									}
									for(i = 0;i<Fifolong;i++)
									{
										codecdat[i+Fifolong] = SX2_FifoReadSingle(ENDPOINT4);
									}
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								}
								else
								{
									codec_horfull = TRUE;
									/*寫buffer的下半部分*/
									while(!buffer_full){}
									buffer_full = FALSE;
									for(i = 0;i<Fifolong;i++)
									{
										codecdat[i+(Fifolong *2)] = SX2_FifoReadSingle(ENDPOINT2);
									}
									for(i = 0;i<Fifolong;i++)
									{
										codecdat[i+(Fifolong *3)] = SX2_FifoReadSingle(ENDPOINT4);
									}
									/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								}
							break;
						/*Endpoint0內(nèi)容的讀操作*/	
						case VR_ENDPOINT0READ:
							/*確定Endpoint0的長度*/
							if (setupBuff[6] > 0 || setupBuff[7] > 0)
							{	
								/*等待EP0數(shù)據(jù)包準備好的標志*/
								while(!sx2EP0Buf);
								/* 清除EP0數(shù)據(jù)包準備好的標志*/
								sx2EP0Buf = FALSE;
								/*讀數(shù)據(jù)相的數(shù)據(jù)長度*/
								Read_SX2reg(SX2_EP0BC, &endpoint0count);
								/*讀數(shù)據(jù)相的數(shù)據(jù)*/
								for(i = 0; i<endpoint0count;i++)
								{
									Read_SX2reg(SX2_EP0BUF,&endpoint0data[i]);
								}
							}
							break;
						
						case VR_REGWRITE:
							/* write the actual value to the register */
							Write_SX2reg(setupBuff[4], setupBuff[2]);
							/*寫0到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
							Write_SX2reg(SX2_EP0BC, 0);
							break;

						default:
							/*不支持的請求*/
							/*寫非零數(shù)到SX2_SETUP,取消此請求*/
							Write_SX2reg(SX2_SETUP, 0xff);
							break;	
					}/*分析命令類型*/
				}
				else
				{
					/*解析IN類型的命令申請*/
					if(setupBuff[0] == VR_TYPE_IN)
					{
						/*分析命令類型*/
						switch(setupBuff[1])
						{
							
							/*USB工作的標準*/
							case VR_USB_VERION:
								if(hshostlink ==TRUE)
								{
									DataToEndpoint0 = 0x55;
								}
								else
								{
									DataToEndpoint0 = 0x54;
								}
								Write_SX2reg(SX2_EP0BUF, DataToEndpoint0);
								/*寫入要傳回的數(shù)據(jù)的長度*/
								Write_SX2reg(SX2_EP0BC, 1);
								break;
							/*FLASH擦除*/	
							case VR_FLASH_ERASE:
								flasherr = 0;
								for(flashbaddr = 0x410000; flashbaddr<0x440000; flashbaddr=flashbaddr+0x8000)
								{
									if(flash_erase(flashbaddr,BLOCK_ERASE) == 0)
									{
										flasherr = 1;
										break;	
				   					}
								}
								if (setupBuff[6] > 0 || setupBuff[7] > 0)
								{
									/*等待EP0數(shù)據(jù)包準備好的標志*/
									while(!sx2EP0Buf);
									/* 清除EP0數(shù)據(jù)包準備好的標志*/
									sx2EP0Buf = FALSE;
									/*寫入FLASH的操作狀態(tài)*/
									Write_SX2reg(SX2_EP0BUF, flasherr);
									flashbaddr = FLASH_ADDR;
									for(i = 0; i<(setupBuff[6]-1);i++)
									{
										flashdata = flash_reads(flashbaddr++);
										Write_SX2reg(SX2_EP0BUF, flashdata);
									}
									/*寫0x20到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, setupBuff[6]);	
								}
								else
								{
									/*寫0x20到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
									Write_SX2reg(SX2_EP0BC, 0);
								}
								break;
							case VR_FLASH_WRITE:
								flasherr = 0;
								flashbaddr = FLASH_ADDR;
								for(flashlong = 0 ;flashlong<FLash_ADDR_MAX-FLASH_ADDR;flashlong++)
								{
									/*
									if(flash_writes(flashbaddr++,flashlong)==0)
				   					{
				   						//FLash無法寫入
										flasherr = 1;
										break;		
				   					}
				   					*/
								}
								/*等待EP0數(shù)據(jù)包準備好的標志*/
								while(!sx2EP0Buf);
								/* 清除EP0數(shù)據(jù)包準備好的標志*/
								sx2EP0Buf = FALSE;
								/*寫入FLASH的操作狀態(tài)*/
								Write_SX2reg(SX2_EP0BUF, flasherr);
								flashbaddr = FLASH_ADDR;
								for(i = 0; i<0x3f;i++)
								{
									flashdata = flash_reads(flashbaddr++);
									Write_SX2reg(SX2_EP0BUF, flashdata);
								}
								/*寫0x20到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
								Write_SX2reg(SX2_EP0BC, 0x40);
								break;
							/*FLASH的讀*/	
							case VR_FLASH_READ:
								/*等待EP0數(shù)據(jù)包準備好的標志*/
								while(!sx2EP0Buf);
								/* 清除EP0數(shù)據(jù)包準備好的標志*/
								sx2EP0Buf = FALSE;
								flashbaddr = FLASH_ADDR+(setupBuff[2]+(setupBuff[3]<<8));
								for(i = 0; i<0x40;i++)
								{
									flashdata = flash_reads(flashbaddr++);
									Write_SX2reg(SX2_EP0BUF, flashdata);
								}
								/*寫0x20到EP0的計數(shù)寄存器,結(jié)束本次控制握手*/
								Write_SX2reg(SX2_EP0BC, 0x40);
								break;	
							/* SX2REGRD request */
							case VR_REGREAD:
								/* read the requested register */									
								Read_SX2reg(setupBuff[4], &regValue);
								break;
							
							case VR_ENDPOINT0WRITE:
								/*確定是否有數(shù)據(jù)相*/
								if (setupBuff[6] > 0 || setupBuff[7] > 0)
								{
									/*等待EP0數(shù)據(jù)包準備好的標志*/
									while(!sx2EP0Buf);
									/* 清除EP0數(shù)據(jù)包準備好的標志*/
									sx2EP0Buf = FALSE;
									/* write the data to the EP0 data buffer */
									Write_SX2reg(SX2_EP0BUF, regValue);

								   /* write the byte count so the SX2 sends one byte; */
								   /* ignore requests for more than one byte  */
									Write_SX2reg(SX2_EP0BC, 1);
								}
								else
								{
									/*無數(shù)據(jù)相*/
									Write_SX2reg(SX2_EP0BC, 0);
								}
								break;
							
							default:
								/* unsupported request */
								/* write any non-zero value to the setup register
						   		to stall the request. */
								Write_SX2reg(SX2_SETUP, 0xff);
							break;
						}
					}
					else
					{
						/*不支持的請求,寫非零數(shù)到SX2_SETUP,取消此請求*/
						Write_SX2reg(SX2_SETUP, 0xff);
					}			
				}/*解析IN類型的命令申請*/						
			}/*關(guān)于setup中斷的處理*/
		}/*自舉后進行主程序的循環(huán)*/
	}/*自舉循環(huán)*/
}
void delay()
{
	int j = 0;
	int i = 0;
	for(i = 0; i <0x80;i++)
	{
		for(j = 0;j<0xfffe;j++)
		{
			asm("NOP");
		}	
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲在线观看av| 欧美日韩免费观看一区三区| 久久亚洲一区二区三区四区| 久久99精品一区二区三区三区| 日韩三级.com| 精品一区二区三区在线观看| 久久久久久综合| 不卡av免费在线观看| 中文字幕一区二区三区精华液| 91视频国产资源| 亚洲韩国一区二区三区| 5月丁香婷婷综合| 精品一区二区三区av| 久久精品在线免费观看| 成人成人成人在线视频| 亚洲自拍欧美精品| 日韩欧美国产综合在线一区二区三区| 久久99精品国产91久久来源| 国产亚洲午夜高清国产拍精品| 国产不卡高清在线观看视频| 成人免费在线观看入口| 欧美乱妇20p| 国产.欧美.日韩| 亚洲小少妇裸体bbw| 亚洲精品在线电影| av亚洲产国偷v产偷v自拍| 亚洲国产精品久久久久婷婷884| 日韩欧美国产精品一区| 成人免费电影视频| 日韩av中文字幕一区二区| 久久久久久夜精品精品免费| 色综合天天综合网天天狠天天| 日韩av一区二区三区四区| 国产欧美在线观看一区| 欧美日韩激情在线| 国产乱人伦精品一区二区在线观看| 亚洲欧洲日韩综合一区二区| 91精品黄色片免费大全| 99久久精品免费精品国产| 日韩中文字幕麻豆| 亚洲色欲色欲www| 日韩一区二区三| 91丨九色丨蝌蚪丨老版| 麻豆精品久久久| 亚洲综合av网| 国产精品国产三级国产aⅴ入口 | 久久精品夜夜夜夜久久| 欧美亚洲动漫另类| 高清国产一区二区三区| 日韩国产欧美三级| 亚洲黄色av一区| 国产欧美日韩在线| 久久夜色精品国产欧美乱极品| 欧美性猛交一区二区三区精品| 成人免费va视频| 国产揄拍国内精品对白| 视频一区二区国产| 亚洲永久精品国产| 国产精品国模大尺度视频| 精品国产欧美一区二区| 欧美精选一区二区| 欧美性猛交xxxxxxxx| 91美女片黄在线观看| 成人综合在线网站| 国产麻豆日韩欧美久久| 男人的j进女人的j一区| 视频在线在亚洲| 亚洲h动漫在线| 天天操天天色综合| 亚洲资源在线观看| 亚洲一区二区三区在线| 亚洲精品日韩一| 亚洲精品日产精品乱码不卡| 日韩理论电影院| 亚洲天堂av一区| 亚洲最大的成人av| 一区二区三区不卡视频在线观看 | 欧美精品一区二区三区视频| 欧美精品黑人性xxxx| 欧美日韩高清在线| 制服.丝袜.亚洲.中文.综合| 欧美丰满一区二区免费视频| 欧美日韩和欧美的一区二区| 精品视频一区二区三区免费| 在线视频亚洲一区| 欧美剧情电影在线观看完整版免费励志电影| 欧美色中文字幕| 欧美日韩高清影院| 精品少妇一区二区三区在线播放 | 国产色一区二区| 国产日韩精品久久久| 国产精品丝袜91| 综合久久给合久久狠狠狠97色| 中文字幕色av一区二区三区| 中文字幕在线不卡一区二区三区| 1024精品合集| 亚洲一本大道在线| 精品一区在线看| av在线一区二区三区| 欧美亚洲一区二区在线| 欧美一级艳片视频免费观看| 精品国产91亚洲一区二区三区婷婷 | 国产另类ts人妖一区二区| 国产成人精品亚洲777人妖 | 欧美日韩在线播放| 日韩一级二级三级| 国产肉丝袜一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 成人激情av网| 欧美亚洲综合一区| 久久久噜噜噜久久中文字幕色伊伊 | 色综合久久综合网欧美综合网 | 久久精品国产精品亚洲精品| 国产一区三区三区| 99精品黄色片免费大全| 69堂精品视频| 国产日韩av一区| 偷拍一区二区三区四区| 国产精品一区二区男女羞羞无遮挡| 色综合天天狠狠| 精品国产露脸精彩对白| 亚洲曰韩产成在线| 国产成人在线观看| 欧美男人的天堂一二区| 中文字幕欧美日韩一区| 亚洲成人tv网| 成人午夜免费视频| 欧美一区二区三区精品| 综合久久给合久久狠狠狠97色| 美女一区二区三区| 欧美日韩在线电影| 亚洲少妇最新在线视频| 国产高清在线观看免费不卡| 在线一区二区观看| 国产精品福利一区二区| 精品在线一区二区| 欧美日韩aaa| 亚洲欧美一区二区三区久本道91| 看片的网站亚洲| 欧美日韩不卡在线| 亚洲欧美一区二区久久| 国产成人在线视频网址| 日韩精品一区二区三区swag| 亚洲国产精品麻豆| 色综合久久综合| 国产精品乱人伦| 国产不卡免费视频| 亚洲精品在线电影| 人人爽香蕉精品| 欧美精品一二三| 亚洲国产成人tv| 91激情五月电影| 亚洲欧洲色图综合| 91日韩精品一区| 国产精品九色蝌蚪自拍| 国产福利一区二区三区在线视频| 欧美一区二区三区免费观看视频 | 亚洲国产日产av| 91国偷自产一区二区三区成为亚洲经典 | 国产高清成人在线| 久久夜色精品一区| 国产毛片精品国产一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 日韩和欧美一区二区| 在线不卡中文字幕播放| 亚洲午夜一区二区三区| 欧美午夜精品一区二区三区| 一区二区三区在线免费| 色天使色偷偷av一区二区| 自拍偷拍欧美激情| 91久久久免费一区二区| 亚洲一区二区三区美女| 欧美日韩视频在线观看一区二区三区| 亚洲三级电影网站| 在线观看成人免费视频| 亚洲精品国产成人久久av盗摄 | 亚洲欧洲日韩在线| 91蝌蚪porny| 一区二区不卡在线视频 午夜欧美不卡在| av网站免费线看精品| 一区二区三区四区视频精品免费 | 欧美一级一级性生活免费录像| 日本欧美一区二区| 久久综合久久鬼色中文字| 国产在线国偷精品产拍免费yy| 中文欧美字幕免费| 日本大香伊一区二区三区| 亚洲国产综合视频在线观看| 欧美一区二区三区系列电影| 精品影视av免费| 中文字幕视频一区二区三区久| 一本到高清视频免费精品| 亚洲影院理伦片| 久久综合九色综合欧美98| 成人美女在线视频| 亚洲成a人v欧美综合天堂下载 | 日韩欧美国产系列| 国产凹凸在线观看一区二区| 亚洲免费观看高清完整版在线观看| 欧美性受xxxx黑人xyx性爽|