⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avr_usb_disk.lst

📁 USB通信程序开发(附源码 精品)包括详细论文说明
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0132)                		BulkStausPhase=InCSWPhase;
    0263 E088      LDI	R24,0x8
    0264 93800114  STS	R24,_BulkStausPhase
(0133)                		break;
    0266 C030      RJMP	0x0297
(0134) 		case 0x12:
(0135) 			SCSICMD_Inquiry();
    0267 D073      RCALL	_SCSICMD_Inquiry
(0136) 			BulkStausPhase = InCSWPhase;
    0268 E088      LDI	R24,0x8
    0269 93800114  STS	R24,_BulkStausPhase
(0137) 			break;
    026B C02B      RJMP	0x0297
(0138) 		case 0x1a:
(0139) 			SCSICMD_ModeSense06();
    026C D11A      RCALL	_SCSICMD_ModeSense06
(0140)                		BulkStausPhase=InCSWPhase;
    026D E088      LDI	R24,0x8
    026E 93800114  STS	R24,_BulkStausPhase
(0141)                		break;
    0270 C026      RJMP	0x0297
(0142) 		case 0x1e:
(0143) 			SCSICMD_PreventAllowMediumRemoval();
    0271 D132      RCALL	_SCSICMD_PreventAllowMediumRemoval
(0144)                		BulkStausPhase=InCSWPhase;
    0272 E088      LDI	R24,0x8
    0273 93800114  STS	R24,_BulkStausPhase
(0145)                		break;
    0275 C021      RJMP	0x0297
(0146) 		case 0x23:
(0147) 			SCSICMD_ReadFormatCapacities();
    0276 D09C      RCALL	_SCSICMD_ReadFormatCapacities
(0148) 			BulkStausPhase = InCSWPhase;
    0277 E088      LDI	R24,0x8
    0278 93800114  STS	R24,_BulkStausPhase
(0149) 			break;
    027A C01C      RJMP	0x0297
(0150) 		case 0x25:
(0151) 			SCSICMD_ReadCapacity();
    027B D0B4      RCALL	_SCSICMD_ReadCapacity
(0152)                		BulkStausPhase=InCSWPhase;
    027C E088      LDI	R24,0x8
    027D 93800114  STS	R24,_BulkStausPhase
(0153)               		break;
    027F C017      RJMP	0x0297
(0154) 		case 0x28:
(0155) 			SCSICMD_Read10();
    0280 D0C7      RCALL	_SCSICMD_Read10
(0156)                		BulkStausPhase=InCSWPhase;
    0281 E088      LDI	R24,0x8
    0282 93800114  STS	R24,_BulkStausPhase
(0157)                		break;
    0284 C012      RJMP	0x0297
(0158) 		case 0x2a:
(0159) 			SCSICMD_Write10();
    0285 D138      RCALL	_SCSICMD_Write10
(0160)                		BulkPhase =OutDataPhase;
    0286 E081      LDI	R24,1
    0287 93800060  STS	R24,0x60
(0161)                		break;
    0289 C00D      RJMP	0x0297
(0162) 		case 0x2f:
(0163) 			SCSICMD_Verify10();
    028A D14F      RCALL	_SCSICMD_Verify10
(0164)                		BulkStausPhase=InCSWPhase;
    028B E088      LDI	R24,0x8
    028C 93800114  STS	R24,_BulkStausPhase
(0165)                		break;
    028E C008      RJMP	0x0297
(0166) 		case 0x5a:
(0167) 			SCSICMD_ModeSense10();
    028F D164      RCALL	_SCSICMD_ModeSense10
(0168)                		BulkStausPhase=InCSWPhase;
    0290 E088      LDI	R24,0x8
    0291 93800114  STS	R24,_BulkStausPhase
(0169)                		break;
    0293 C003      RJMP	0x0297
(0170) 		default:
(0171) 			BulkStausPhase=InCSWPhase;
    0294 E088      LDI	R24,0x8
    0295 93800114  STS	R24,_BulkStausPhase
(0172) 			break;
(0173) 	}
(0174) }
    0297 D83B      RCALL	pop_gset1
    0298 9508      RET
(0175) /************************************************************
(0176) **工程名称:U盘固件程序开发
(0177) **编译器类型及版本:ICCAVR 6.26C
(0178) **日期:2004.4.30
(0179) **创建人:陈驰
(0180) **所属单位:湖南大学计算机与通信学院
(0181) 
(0182) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0183) **时钟频率:8MHZ
(0184) 
(0185) **函数功能:PC输入数据处理
(0186) **函数输入参数及说明:无
(0187) 
(0188) **函数返回值:无
(0189) **在本函数以外定义的变量:
(0190) **调用的函数说明:无
(0191) 
(0192) **修改人:陈驰
(0193) **修改日期:2004.4.30
(0194) **修改说明:创建
(0195) *************************************************************/
(0196) void Usb_BoBulkInData(void){
(0197) 	flashWrite(WritePageBuff);
_Usb_BoBulkInData:
    0299 91100062  LDS	R17,0x62
    029B 91000061  LDS	R16,0x61
    029D D655      RCALL	_flashWrite
(0198) 	if(WriteResidueVal == 0){
    029E 90300081  LDS	R3,0x81
    02A0 90200080  LDS	R2,0x80
    02A2 2022      TST	R2
    02A3 F429      BNE	0x02A9
    02A4 2033      TST	R3
    02A5 F419      BNE	0x02A9
(0199) 		BulkPhase = CommandPhase;
    02A6 2422      CLR	R2
    02A7 92200060  STS	R2,0x60
(0200) 	}
(0201) }
    02A9 9508      RET
(0202) /************************************************************
(0203) **工程名称:U盘固件程序开发
(0204) **编译器类型及版本:ICCAVR 6.26C
(0205) **日期:2004.4.30
(0206) **创建人:陈驰
(0207) **所属单位:湖南大学计算机与通信学院
(0208) 
(0209) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0210) **时钟频率:8MHZ
(0211) 
(0212) **函数功能:回应批量传输包
(0213) **函数输入参数及说明:无
(0214) 
(0215) **函数返回值:无
(0216) **在本函数以外定义的变量:
(0217) **调用的函数说明:无
(0218) 
(0219) **修改人:陈驰
(0220) **修改日期:2004.4.30
(0221) **修改说明:创建
(0222) *************************************************************/
(0223) void Bulk_In_Packet(void){
(0224) 	if(XmtBuff.wrLength != 0)
_Bulk_In_Packet:
    02AA 90300156  LDS	R3,0x156
    02AC 90200155  LDS	R2,0x155
    02AE 2022      TST	R2
    02AF F411      BNE	0x02B2
    02B0 2033      TST	R3
    02B1 F011      BEQ	0x02B4
(0225) 		BULK_submit();
    02B2 D217      RCALL	_BULK_submit
    02B3 C026      RJMP	0x02DA
(0226) 	else if(ReadResidueVal != 0)
    02B4 EA08      LDI	R16,0xA8
    02B5 E010      LDI	R17,0
    02B6 DA8A      RCALL	lpm32
    02B7 90500089  LDS	R5,0x89
    02B9 90400088  LDS	R4,0x88
    02BB 90300087  LDS	R3,0x87
    02BD 90200086  LDS	R2,0x86
    02BF 1620      CP	R2,R16
    02C0 0631      CPC	R3,R17
    02C1 0642      CPC	R4,R18
    02C2 0653      CPC	R5,R19
    02C3 F011      BEQ	0x02C6
(0227) 		flashRead();
    02C4 D6F4      RCALL	_flashRead
    02C5 C014      RJMP	0x02DA
(0228) 	else if(BulkStausPhase == InCSWPhase){
    02C6 91800114  LDS	R24,_BulkStausPhase
    02C8 3088      CPI	R24,0x8
    02C9 F481      BNE	0x02DA
(0229) 		XmtBuff.p_p=0;
    02CA 2422      CLR	R2
    02CB 9220015B  STS	R2,0x15B
(0230) 		XmtBuff.p = (unsigned char *)&Usb_Csw;
    02CD E085      LDI	R24,5
    02CE E091      LDI	R25,1
    02CF 9390015A  STS	R25,0x15A
    02D1 93800159  STS	R24,0x159
(0231) 		XmtBuff.wrLength = 13;
    02D3 E08D      LDI	R24,0xD
    02D4 E090      LDI	R25,0
    02D5 93900156  STS	R25,0x156
    02D7 93800155  STS	R24,0x155
(0232) 		BULK_submit();
    02D9 D1F0      RCALL	_BULK_submit
(0233) 	}
(0234) }
    02DA 9508      RET
(0235) /************************************************************
(0236) **工程名称:U盘固件程序开发
(0237) **编译器类型及版本:ICCAVR 6.26C
(0238) **日期:2004.4.30
(0239) **创建人:陈驰
(0240) **所属单位:湖南大学计算机与通信学院
(0241) 
(0242) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0243) **时钟频率:8MHZ
(0244) 
(0245) **函数功能:SCSI命令
(0246) **函数输入参数及说明:无
(0247) 
(0248) **函数返回值:无
(0249) **在本函数以外定义的变量:
(0250) **调用的函数说明:无
(0251) 
(0252) **修改人:陈驰
(0253) **修改日期:2004.4.30
(0254) **修改说明:创建
(0255) *************************************************************/
(0256) void SCSICMD_Inquiry(void){
(0257) 	Usb_Set_Csw();
_SCSICMD_Inquiry:
    02DB D017      RCALL	_Usb_Set_Csw
(0258) 	Usb_Csw.dCSWDataResidue[1] = 0;
    02DC 2422      CLR	R2
    02DD 9220010E  STS	R2,0x10E
(0259) 	Usb_Csw.dCSWDataResidue[2] = 0;
    02DF 9220010F  STS	R2,0x10F
(0260) 	Usb_Csw.dCSWDataResidue[3] = 0;
    02E1 92200110  STS	R2,0x110
(0261) 	Usb_Csw.dCSWDataResidue[4] = 0;
    02E3 92200111  STS	R2,0x111
(0262) 	XmtBuff.pp = SCSI_INQUIRY;
    02E5 E28E      LDI	R24,0x2E
    02E6 E090      LDI	R25,0
    02E7 93900158  STS	R25,0x158
    02E9 93800157  STS	R24,0x157
(0263) 	XmtBuff.wrLength = 36;
    02EB E284      LDI	R24,0x24
    02EC E090      LDI	R25,0
    02ED 93900156  STS	R25,0x156
    02EF 93800155  STS	R24,0x155
(0264) 	BULK_submit();
    02F1 D1D8      RCALL	_BULK_submit
(0265) }
    02F2 9508      RET
(0266) /************************************************************
(0267) **工程名称:U盘固件程序开发
(0268) **编译器类型及版本:ICCAVR 6.26C
(0269) **日期:2004.4.30
(0270) **创建人:陈驰
(0271) **所属单位:湖南大学计算机与通信学院
(0272) 
(0273) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0274) **时钟频率:8MHZ
(0275) 
(0276) **函数功能:创建CSW数据块
(0277) **函数输入参数及说明:无
(0278) 
(0279) **函数返回值:无
(0280) **在本函数以外定义的变量:
(0281) **调用的函数说明:无
(0282) 
(0283) **修改人:陈驰
(0284) **修改日期:2004.4.30
(0285) **修改说明:创建
(0286) *************************************************************/
(0287) void Usb_Set_Csw(void){
(0288) 	Usb_Csw.dCSWSignature[0] = 0x55;
_Usb_Set_Csw:
    02F3 E585      LDI	R24,0x55
    02F4 93800105  STS	R24,_Usb_Csw
(0289) 	Usb_Csw.dCSWSignature[1] = 0x53;
    02F6 E583      LDI	R24,0x53
    02F7 93800106  STS	R24,_Usb_Csw+1
(0290) 	Usb_Csw.dCSWSignature[2] = 0x42;
    02F9 E482      LDI	R24,0x42
    02FA 93800107  STS	R24,_Usb_Csw+2
(0291) 	Usb_Csw.dCSWSignature[3] = 0x53;
    02FC E583      LDI	R24,0x53
    02FD 93800108  STS	R24,_Usb_Csw+3
(0292) 	Usb_Csw.dCSWTag[0] = XmtBuff.b[4];
    02FF 90200119  LDS	R2,0x119
    0301 92200109  STS	R2,0x109
(0293) 	Usb_Csw.dCSWTag[1] = XmtBuff.b[5];
    0303 9020011A  LDS	R2,0x11A
    0305 9220010A  STS	R2,0x10A
(0294) 	Usb_Csw.dCSWTag[2] = XmtBuff.b[6];
    0307 9020011B  LDS	R2,0x11B
    0309 9220010B  STS	R2,0x10B
(0295) 	Usb_Csw.dCSWTag[3] = XmtBuff.b[7];
    030B 9020011C  LDS	R2,0x11C
    030D 9220010C  STS	R2,0x10C
(0296) 	Usb_Csw.bCSWStatus = 0;
    030F 2422      CLR	R2
    0310 92200111  STS	R2,0x111
(0297) }
    0312 9508      RET
(0298) /************************************************************
(0299) **工程名称:U盘固件程序开发
(0300) **编译器类型及版本:ICCAVR 6.26C
(0301) **日期:2004.4.30
(0302) **创建人:陈驰
(0303) **所属单位:湖南大学计算机与通信学院
(0304) 
(0305) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0306) **时钟频率:8MHZ
(0307) 
(0308) **函数功能:SCSI命令
(0309) **函数输入参数及说明:无
(0310) 
(0311) **函数返回值:无
(0312) **在本函数以外定义的变量:
(0313) **调用的函数说明:无
(0314) 
(0315) **修改人:陈驰
(0316) **修改日期:2004.4.30
(0317) **修改说明:创建
(0318) *************************************************************/
(0319) void SCSICMD_ReadFormatCapacities(void){
(0320) 	Usb_Set_Csw();
_SCSICMD_ReadFormatCapacities:
    0313 DFDF      RCALL	_Usb_Set_Csw
(0321) 	Usb_Csw.dCSWDataResidue[0]=(unsigned char)(dCBWDaTrLen-0x0c);    
    0314 91900113  LDS	R25,_dCBWDaTrLen+1
    0316 91800112  LDS	R24,_dCBWDaTrLen
    0318 970C      SBIW	R24,0xC
    0319 9380010D  STS	R24,0x10D
(0322) 	Usb_Csw.dCSWDataResidue[1]=0;
    031B 2422      CLR	R2
    031C 9220010E  STS	R2,0x10E
(0323) 	Usb_Csw.dCSWDataResidue[2]=0;
    031E 9220010F  STS	R2,0x10F
(0324) 	Usb_Csw.dCSWDataResidue[3]=0;   
    0320 92200110  STS	R2,0x110
(0325)         XmtBuff.pp = SCSIDATA_ReadFormatCapacities;
    0322 E582      LDI	R24,0x52
    0323 E090      LDI	R25,0
    0324 93900158  STS	R25,0x158
    0326 93800157  STS	R24,0x157
(0326) 	XmtBuff.wrLength = 12;
    0328 E08C      LDI	R24,0xC
    0329 E090      LDI	R25,0
    032A 93900156  STS	R25,0x156
    032C 93800155  STS	R24,0x155
(0327) 	BULK_submit();
    032E D19B      RCALL	_BULK_submit
(0328) }
    032F 9508      RET
(0329) /************************************************************
(0330) **工程名称:U盘固件程序开发
(0331) **编译器类型及版本:ICCAVR 6.26C
(0332) **日期:2004.4.30
(0333) **创建人:陈驰
(0334) **所属单位:湖南大学计算机与通信学院
(0335) 
(0336) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0337) **时钟频率:8MHZ
(0338) 
(0339) **函数功能:SCSI命令
(0340) **函数输入参数及说明:无
(0341) 
(0342) **函数返回值:无
(0343) **在本函数以外定义的变量:
(0344) **调用的函数说明:无
(0345) 
(0346) **修改人:陈驰
(0347) **修改日期:2004.4.30
(0348) **修改说明:创建
(0349) *************************************************************/
(0350) void SCSICMD_ReadCapacity(void){
(0351) 	Usb_Set_Csw();  
_SCSICMD_ReadCapacity:
    0330 DFC2      RCALL	_Usb_Set_Csw
(0352)        Usb_Csw.dCSWDataResidue[1] = 0;
    0331 2422      CLR	R2
    0332 9220010E  STS	R2,0x10E
(0353) 	Usb_Csw.dCSWDataResidue[2] = 0;
    0334 9220010F  STS	R2,0x10F
(0354) 	Usb_Csw.dCSWDataResidue[3] = 0;
    0336 92200110  STS	R2,0x110
(0355) 	Usb_Csw.dCSWDataResidue[4] = 0;  
    0338 92200111  STS	R2,0x111
(0356) 	XmtBuff.pp = SCSIDATA_ReadCapacity;
    033A E58E      LDI	R24,0x5E
    033B E090      LDI	R25,0
    033C 93900158  STS	R25,0x158
    033E 93800157  STS	R24,0x157
(0357) 	XmtBuff.wrLength = 8; 
    0340 E088      LDI	R24,0x8
    0341 E090      LDI	R25,0
    0342 93900156  STS	R25,0x156
    0344 93800155  STS	R24,0x155
(0358) 	BULK_submit();
    0346 D183      RCALL	_BULK_submit
(0359) }
    0347 9508      RET
(0360) /************************************************************
(0361) **工程名称:U盘固件程序开发
(0362) **编译器类型及版本:ICCAVR 6.26C
(0363) **日期:2004.4.30
(0364) **创建人:陈驰
(0365) **所属单位:湖南大学计算机与通信学院
(0366) 
(0367) **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0368) **时钟频率:8MHZ
(0369) 
(0370) **函数功能:SCSI命令
(0371) **函数输入参数及说明:无

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -