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

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

?? scsi.c.bak

?? USB通信程序開發(附源碼 精品)包括詳細論文說明
?? BAK
字號:
/*++

Module Name:

         Scsi.c

Abstract:

         Header file related to D12 module

Environment:

        ICCAVR 6.29

Revision History:

        04/23/2004      chenchi   created

--*/
/******************************************************************/

#include <macros.h>
#include "d12.h"
#include "scsi.h"
#include "scsi_data.h"
#include "nflash32.h"

unsigned char BulkPhase = 0;
unsigned char BulkStausPhase;
unsigned int dCBWDaTrLen;
unsigned char * WritePageBuff = "";
unsigned int WritePageBuffLen = 0;

CSW_STRUCT  Usb_Csw;
CBW_STRUCT  Usb_Cbw;

/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:處理PC發送的批量傳輸包
**函數輸入參數及說明:接收數據長度

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void Bulk_Out_Packet(unsigned char len){
	unsigned char i,j,*p;
	unsigned char Buff[64];
	if(BulkPhase == CommandPhase){
		j = D12_DATA;
		csram;
		p = XmtBuff.b;
		*(p++) = j;
		for(i=0;i<len;i++)
		{
	  		j = D12_DATA;
	   		csram;
	   		asm("st Z+,%j");
		}
		Usb_BoCommand();
	}
	else if(BulkPhase == OutDataPhase){
		j = D12_DATA;
		csram;
		p = Buff;
		*(p++) = j;
		for(i=0;i<len;i++)
		{
	  		j = D12_DATA;
	   		csram;
	   		asm("st Z+,%j");
		}
		for(i=0;i<len;i++){
			WritePageBuff[WritePageBuffLen+i] = Buff[i];
		}
		WritePageBuffLen += len;
		if(WritePageBuffLen == 512){
			Usb_BoBulkInData();
			WritePageBuffLen = 0;
		}
	}
	D12_COMMAND = 0x04;//選擇端點(指針指向0位置)
	cwait;
	D12_COMMAND = 0xf1;
	cwait;
	D12_COMMAND = 0xf2;//清端點緩沖區
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:SCSI命令處理
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void Usb_BoCommand(void){	
	XmtBuff.p_p=1;
	dCBWDaTrLen=((XmtBuff.b[11]<<8)+(XmtBuff.b[10]))<<15;
        dCBWDaTrLen=(dCBWDaTrLen<<1)+((XmtBuff.b[9]<<8)+(XmtBuff.b[8])) ;
	Usb_Cbw.CBWCB[0] = XmtBuff.b[15];
	switch(Usb_Cbw.CBWCB[0]){
		case 0x00:
			SCSICMD_TestUnitReady();
			BulkStausPhase = InCSWPhase;
			break;
		case 0x03:
			SCSICMD_RequestSense();
               		BulkStausPhase=InCSWPhase;
               		break;
		case 0x12:
			SCSICMD_Inquiry();
			BulkStausPhase = InCSWPhase;
			break;
		case 0x1a:
			SCSICMD_ModeSense06();
               		BulkStausPhase=InCSWPhase;
               		break;
		case 0x1e:
			SCSICMD_PreventAllowMediumRemoval();
               		BulkStausPhase=InCSWPhase;
               		break;
		case 0x23:
			SCSICMD_ReadFormatCapacities();
			BulkStausPhase = InCSWPhase;
			break;
		case 0x25:
			SCSICMD_ReadCapacity();
               		BulkStausPhase=InCSWPhase;
              		break;
		case 0x28:
			SCSICMD_Read10();
               		BulkStausPhase=InCSWPhase;
               		break;
		case 0x2a:
			SCSICMD_Write10();
               		BulkPhase =OutDataPhase;
               		break;
		case 0x2f:
			SCSICMD_Verify10();
               		BulkStausPhase=InCSWPhase;
               		break;
		case 0x5a:
			SCSICMD_ModeSense10();
               		BulkStausPhase=InCSWPhase;
               		break;
		default:
			BulkStausPhase=InCSWPhase;
			break;
	}
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:PC輸入數據處理
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void Usb_BoBulkInData(void){
	flashWrite(WritePageBuff);
	if(WriteResidueVal == 0){
		BulkPhase = CommandPhase;
	}
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:回應批量傳輸包
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void Bulk_In_Packet(void){
	if(XmtBuff.wrLength != 0)
		BULK_submit();
	else if(ReadResidueVal != 0)
		flashRead();
	else if(BulkStausPhase == InCSWPhase){
		XmtBuff.p_p=0;
		XmtBuff.p = (unsigned char *)&Usb_Csw;
		XmtBuff.wrLength = 13;
		BULK_submit();
	}
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:SCSI命令
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void SCSICMD_Inquiry(void){
	Usb_Set_Csw();
	Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	XmtBuff.pp = SCSI_INQUIRY;
	XmtBuff.wrLength = 36;
	BULK_submit();
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:創建CSW數據塊
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void Usb_Set_Csw(void){
	Usb_Csw.dCSWSignature[0] = 0x55;
	Usb_Csw.dCSWSignature[1] = 0x53;
	Usb_Csw.dCSWSignature[2] = 0x42;
	Usb_Csw.dCSWSignature[3] = 0x53;
	Usb_Csw.dCSWTag[0] = XmtBuff.b[4];
	Usb_Csw.dCSWTag[1] = XmtBuff.b[5];
	Usb_Csw.dCSWTag[2] = XmtBuff.b[6];
	Usb_Csw.dCSWTag[3] = XmtBuff.b[7];
	Usb_Csw.bCSWStatus = 0;
}
/************************************************************
**工程名稱:U盤固件程序開發
**編譯器類型及版本:ICCAVR 6.26C
**日期:2004.4.30
**創建人:陳馳
**所屬單位:湖南大學計算機與通信學院

**芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
**時鐘頻率:8MHZ

**函數功能:SCSI命令
**函數輸入參數及說明:無

**函數返回值:無
**在本函數以外定義的變量:
**調用的函數說明:無

**修改人:陳馳
**修改日期:2004.4.30
**修改說明:創建
*************************************************************/
void SCSICMD_ReadFormatCapacities(void){
	Usb_Set_Csw();
	Usb_Csw.dCSWDataResidue[0]=(unsigned char)(dCBWDaTrLen-0x0c);    
	Usb_Csw.dCSWDataResidue[1]=0;
	Usb_Csw.dCSWDataResidue[2]=0;
	Usb_Csw.dCSWDataResidue[3]=0;   
        XmtBuff.pp = SCSIDATA_ReadFormatCapacities;
	XmtBuff.wrLength = 12;
	BULK_submit();
}

void SCSICMD_ReadCapacity(void){
	Usb_Set_Csw();  
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;  
	XmtBuff.pp = SCSIDATA_ReadCapacity;
	XmtBuff.wrLength = 8; 
	BULK_submit();
}

void SCSICMD_Read10(void){
	Usb_Set_Csw(); 
	Usb_Csw.dCSWDataResidue[0]=0; 
      	Usb_Csw.dCSWDataResidue[1]=0;
      	Usb_Csw.dCSWDataResidue[2]=0;
      	Usb_Csw.dCSWDataResidue[3]=0;
	flashReadcmd();
	flashRead();
}

void SCSICMD_TestUnitReady(void){
	Usb_Set_Csw();  
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	XmtBuff.p_p=0;
	XmtBuff.p = (unsigned char *)&Usb_Csw;
	XmtBuff.wrLength = 13;
	BULK_submit();
}

void SCSICMD_RequestSense(void){
	Usb_Set_Csw();  
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	XmtBuff.pp = SCSIDATA_RequestSense;
	XmtBuff.wrLength = 18;
	BULK_submit();
}

void SCSICMD_ModeSense06(void){
	Usb_Set_Csw();
      	Usb_Csw.dCSWDataResidue[1]=(unsigned char)(dCBWDaTrLen-0x04);    
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
 	XmtBuff.pp = SCSIDATA_Sense;
	XmtBuff.wrLength = 4;
	BULK_submit();
}

void SCSICMD_PreventAllowMediumRemoval(void){
	Usb_Set_Csw();  
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	XmtBuff.p_p=0;
	XmtBuff.p = (unsigned char *)&Usb_Csw;
	XmtBuff.wrLength = 13;
	BULK_submit();
}

void SCSICMD_Write10(void){
	Usb_Set_Csw();
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	flashWritecmd();
	XmtBuff.p_p=0;
	XmtBuff.p = (unsigned char *)&Usb_Csw;
	XmtBuff.wrLength = 13;
	BULK_submit();
}

void SCSICMD_Verify10(void){
	Usb_Set_Csw();
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	XmtBuff.p_p=0;
	XmtBuff.p = (unsigned char *)&Usb_Csw;
	XmtBuff.wrLength = 13;
	BULK_submit();
}

void SCSICMD_ModeSense10(void){
	Usb_Set_Csw();
       Usb_Csw.dCSWDataResidue[1] = 0;
	Usb_Csw.dCSWDataResidue[2] = 0;
	Usb_Csw.dCSWDataResidue[3] = 0;
	Usb_Csw.dCSWDataResidue[4] = 0;
	XmtBuff.p_p=0;
	XmtBuff.p = (unsigned char *)&Usb_Csw;
	XmtBuff.wrLength = 13;
	BULK_submit();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九色|91porny| 欧美一区二区三区四区五区 | 日韩激情视频网站| 久久99精品久久久久久国产越南 | 一区二区三区精品| 久久成人久久爱| 欧美综合视频在线观看| 久久久久亚洲蜜桃| 日韩精品国产精品| av在线播放一区二区三区| 日韩欧美在线一区二区三区| 亚洲欧美日韩久久| 国产a精品视频| 日韩欧美aaaaaa| 亚洲丶国产丶欧美一区二区三区| 懂色av噜噜一区二区三区av| 欧美一区二区日韩| 亚洲小说欧美激情另类| 成人黄色片在线观看| 久久久久99精品国产片| 久久疯狂做爰流白浆xx| 欧美精品高清视频| 亚洲综合色成人| a亚洲天堂av| 中文字幕av一区二区三区高 | 欧美在线观看视频一区二区三区| 久久久www成人免费毛片麻豆 | 久久久久久久综合日本| 久久精品久久综合| 欧美成人乱码一区二区三区| 日日夜夜精品视频天天综合网| 在线观看亚洲a| 亚洲国产精品久久久男人的天堂| 色94色欧美sute亚洲线路二| 亚洲卡通欧美制服中文| 99re视频这里只有精品| 亚洲欧美自拍偷拍色图| av午夜精品一区二区三区| 中文字幕不卡在线| 99精品在线观看视频| 亚洲三级小视频| 色哟哟在线观看一区二区三区| 中文字幕日韩av资源站| 91福利在线观看| 婷婷六月综合亚洲| 精品国产sm最大网站免费看| 久草热8精品视频在线观看| 中文字幕在线一区| eeuss鲁片一区二区三区| 亚洲美女视频在线| 欧美美女bb生活片| 另类小说一区二区三区| 国产视频一区二区在线观看| 不卡一卡二卡三乱码免费网站| 《视频一区视频二区| 欧美在线观看视频在线| 日韩高清不卡一区二区| 久久精品夜色噜噜亚洲a∨| 成人午夜av影视| 一区二区三区**美女毛片| 欧美电影一区二区| 国产精品456| 亚洲青青青在线视频| 欧美一区二区三区不卡| 国产91在线观看丝袜| 亚洲午夜久久久久久久久久久| 欧美一区二区三区视频在线 | 老司机精品视频在线| 国产拍揄自揄精品视频麻豆| 色天使色偷偷av一区二区| 日本欧美肥老太交大片| 国产免费观看久久| 欧美撒尿777hd撒尿| 国产综合色精品一区二区三区| 亚洲人123区| 久久人人爽爽爽人久久久| 91视频国产资源| 国产在线一区观看| 亚洲午夜视频在线观看| 国产女人18水真多18精品一级做| 欧美日韩中文字幕一区| 国产一区二三区好的| 樱桃国产成人精品视频| 久久久久久久综合| 欧美精三区欧美精三区| 成人美女在线视频| 精品一区二区免费看| 亚洲一区二区三区四区五区中文| 久久午夜电影网| 欧美久久久久久久久久| 99久久精品情趣| 国产一区啦啦啦在线观看| 亚洲 欧美综合在线网络| 国产精品蜜臀av| 精品成人a区在线观看| 精品婷婷伊人一区三区三| 成人久久18免费网站麻豆| 激情五月激情综合网| 无码av免费一区二区三区试看| 亚洲视频一区二区在线观看| 国产视频视频一区| 欧美精品一区二区三区蜜臀| 7777精品伊人久久久大香线蕉最新版| av在线播放一区二区三区| 国产精品香蕉一区二区三区| 日本vs亚洲vs韩国一区三区二区| 亚洲精品乱码久久久久久久久| 国产精品视频一区二区三区不卡| 精品国产髙清在线看国产毛片| 欧美猛男超大videosgay| 欧美性极品少妇| 日本精品一区二区三区高清| www.色精品| 波多野结衣精品在线| 国产成人8x视频一区二区| 国产91精品免费| 成人高清在线视频| 91免费在线视频观看| 91色九色蝌蚪| 欧美性三三影院| 日韩一级免费一区| 久久日一线二线三线suv| 国产无一区二区| 国产精品网友自拍| 亚洲九九爱视频| 亚洲制服丝袜一区| 五月婷婷激情综合| 美美哒免费高清在线观看视频一区二区 | 欧美一区二区视频在线观看2020 | 7777精品伊人久久久大香线蕉| 欧美日韩高清一区二区三区| 欧美裸体bbwbbwbbw| 欧美一三区三区四区免费在线看| 欧美日韩一区不卡| 欧美日韩高清一区| 日韩无一区二区| 国产欧美1区2区3区| 国产精品区一区二区三| 中文字幕免费不卡在线| 91精品国产综合久久精品麻豆| 精品理论电影在线观看| 欧美精品一区二区三区很污很色的 | 欧美韩国日本综合| 欧美国产乱子伦| 国产精品女同一区二区三区| 一二三区精品视频| 亚洲一区自拍偷拍| 日本成人在线一区| 国产一区在线看| 欧美日韩中文另类| 日韩你懂的在线播放| 国产欧美综合色| 亚洲精品乱码久久久久久| 日韩高清不卡一区二区三区| 精品写真视频在线观看 | 日本一区二区久久| 亚欧色一区w666天堂| 六月丁香婷婷久久| av资源网一区| 欧美日韩国产大片| 亚洲欧洲在线观看av| 午夜精品一区二区三区免费视频| 日本视频一区二区三区| 国产伦精品一区二区三区视频青涩| 97精品国产露脸对白| 欧美日韩精品高清| 国产欧美一区二区精品性色超碰 | 成人激情综合网站| 欧美日韩精品专区| 国产日韩欧美综合一区| 亚洲精品一二三| 日韩电影在线观看网站| 国产盗摄视频一区二区三区| 欧美在线观看一区二区| 日本一区二区免费在线| 亚洲成a人片在线不卡一二三区| 久草这里只有精品视频| 91精品办公室少妇高潮对白| 国产欧美一区二区三区沐欲| 午夜精品aaa| 99re热视频精品| 欧美国产禁国产网站cc| 午夜激情综合网| 成人av在线一区二区三区| 欧美高清www午色夜在线视频| 欧美激情一区二区三区不卡| 国模娜娜一区二区三区| 欧美日本乱大交xxxxx| 国产精品美女久久久久av爽李琼| 日本视频免费一区| 欧美日韩1区2区| 亚洲黄一区二区三区| 国产成人av一区| 精品剧情v国产在线观看在线| 日韩av电影天堂| 日本久久一区二区三区| 1024成人网| 波多野结衣中文字幕一区| 国产精品第五页| 国产成a人无v码亚洲福利|