?? avr_usb_disk.lst
字號(hào):
(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盤固件程序開發(fā)
(0177) **編譯器類型及版本:ICCAVR 6.26C
(0178) **日期:2004.4.30
(0179) **創(chuàng)建人:陳馳
(0180) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0181)
(0182) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0183) **時(shí)鐘頻率:8MHZ
(0184)
(0185) **函數(shù)功能:PC輸入數(shù)據(jù)處理
(0186) **函數(shù)輸入?yún)?shù)及說明:無
(0187)
(0188) **函數(shù)返回值:無
(0189) **在本函數(shù)以外定義的變量:
(0190) **調(diào)用的函數(shù)說明:無
(0191)
(0192) **修改人:陳馳
(0193) **修改日期:2004.4.30
(0194) **修改說明:創(chuàng)建
(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盤固件程序開發(fā)
(0204) **編譯器類型及版本:ICCAVR 6.26C
(0205) **日期:2004.4.30
(0206) **創(chuàng)建人:陳馳
(0207) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0208)
(0209) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0210) **時(shí)鐘頻率:8MHZ
(0211)
(0212) **函數(shù)功能:回應(yīng)批量傳輸包
(0213) **函數(shù)輸入?yún)?shù)及說明:無
(0214)
(0215) **函數(shù)返回值:無
(0216) **在本函數(shù)以外定義的變量:
(0217) **調(diào)用的函數(shù)說明:無
(0218)
(0219) **修改人:陳馳
(0220) **修改日期:2004.4.30
(0221) **修改說明:創(chuàng)建
(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盤固件程序開發(fā)
(0237) **編譯器類型及版本:ICCAVR 6.26C
(0238) **日期:2004.4.30
(0239) **創(chuàng)建人:陳馳
(0240) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0241)
(0242) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0243) **時(shí)鐘頻率:8MHZ
(0244)
(0245) **函數(shù)功能:SCSI命令
(0246) **函數(shù)輸入?yún)?shù)及說明:無
(0247)
(0248) **函數(shù)返回值:無
(0249) **在本函數(shù)以外定義的變量:
(0250) **調(diào)用的函數(shù)說明:無
(0251)
(0252) **修改人:陳馳
(0253) **修改日期:2004.4.30
(0254) **修改說明:創(chuàng)建
(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盤固件程序開發(fā)
(0268) **編譯器類型及版本:ICCAVR 6.26C
(0269) **日期:2004.4.30
(0270) **創(chuàng)建人:陳馳
(0271) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0272)
(0273) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0274) **時(shí)鐘頻率:8MHZ
(0275)
(0276) **函數(shù)功能:創(chuàng)建CSW數(shù)據(jù)塊
(0277) **函數(shù)輸入?yún)?shù)及說明:無
(0278)
(0279) **函數(shù)返回值:無
(0280) **在本函數(shù)以外定義的變量:
(0281) **調(diào)用的函數(shù)說明:無
(0282)
(0283) **修改人:陳馳
(0284) **修改日期:2004.4.30
(0285) **修改說明:創(chuàng)建
(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盤固件程序開發(fā)
(0300) **編譯器類型及版本:ICCAVR 6.26C
(0301) **日期:2004.4.30
(0302) **創(chuàng)建人:陳馳
(0303) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0304)
(0305) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0306) **時(shí)鐘頻率:8MHZ
(0307)
(0308) **函數(shù)功能:SCSI命令
(0309) **函數(shù)輸入?yún)?shù)及說明:無
(0310)
(0311) **函數(shù)返回值:無
(0312) **在本函數(shù)以外定義的變量:
(0313) **調(diào)用的函數(shù)說明:無
(0314)
(0315) **修改人:陳馳
(0316) **修改日期:2004.4.30
(0317) **修改說明:創(chuàng)建
(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盤固件程序開發(fā)
(0331) **編譯器類型及版本:ICCAVR 6.26C
(0332) **日期:2004.4.30
(0333) **創(chuàng)建人:陳馳
(0334) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0335)
(0336) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0337) **時(shí)鐘頻率:8MHZ
(0338)
(0339) **函數(shù)功能:SCSI命令
(0340) **函數(shù)輸入?yún)?shù)及說明:無
(0341)
(0342) **函數(shù)返回值:無
(0343) **在本函數(shù)以外定義的變量:
(0344) **調(diào)用的函數(shù)說明:無
(0345)
(0346) **修改人:陳馳
(0347) **修改日期:2004.4.30
(0348) **修改說明:創(chuàng)建
(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盤固件程序開發(fā)
(0362) **編譯器類型及版本:ICCAVR 6.26C
(0363) **日期:2004.4.30
(0364) **創(chuàng)建人:陳馳
(0365) **所屬單位:湖南大學(xué)計(jì)算機(jī)與通信學(xué)院
(0366)
(0367) **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
(0368) **時(shí)鐘頻率:8MHZ
(0369)
(0370) **函數(shù)功能:SCSI命令
(0371) **函數(shù)輸入?yún)?shù)及說明:無
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -