📄 tpbulk.lst
字号:
C51 COMPILER V7.00 TPBULK 09/22/2005 17:15:30 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE TPBULK
OBJECT MODULE PLACED IN .\out\TPBULK.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TPBULK.C LARGE BROWSE DEBUG OBJECTEXTEND OBJECT(.\out\TPBULK.obj)
stmt level source
1 #define TPBULK_FILE
2 #include "include.h"
3
4 //extern unsigned char xdata DBUF[BUFFER_LENGTH];
5 //extern XXGPKG usbstack;
6 //extern SYS_INFO_BLOCK xdata DeviceInfo;
7 //extern FILE_INFO xdata ThisFile;
8 //extern FREE_FAT_INFO xdata FreeFat;
9 //extern unsigned char xdata CurFatSector[512];
10
11 //TPBLK_STRUC idata TPBulk_Block;
12 //#define TPBulk_CBW TPBulk_Block.TPBulk_CommandBlock
13 //#define CBW_wXferLen TPBulk_CBW.dCBW_DataXferLen
14 //#define RBC_CDB TPBulk_CBW.cdbRBC
15 //#define RBC_LUN TPBulk_CBW.bCBW_LUN
16 //#define TPBulk_CSW TPBulk_Block.TPBulk_CommandStatus
17
18 unsigned char EnumMassDev(void)
19 {
20 1
21 1 // PMBR_BLOCK pMBR;
22 1 // PBPB_BLOCK_16 pBPB16;
23 1 // PBPB_BLOCK_32 pBPB32;
24 1
25 1 if(!SPC_Inquiry())
26 1 return FALSE;
27 1 //if(!SPC_READLONG())
28 1 // return FALSE;
29 1 if(!SPC_TestUnit())
30 1 return FALSE;
31 1 if(!SPC_LockMedia())
32 1 return FALSE;
33 1 if(!SPC_RequestSense())
34 1 return FALSE;
35 1 if(!SPC_TestUnit())
36 1 return FALSE;
37 1 if(!RBC_ReadCapacity())
38 1 return FALSE;
39 1
40 1 #ifdef ZLH_DEBUG
41 1 disp_data(2, "A1");
42 1 while(!getkey());
43 1 DelayMs(100);
44 1 #endif
45 1
46 1 if(!init_part()) return FALSE;
47 1 if(!init_file_system(1)) return FALSE;
48 1 return TRUE;
49 1 }
50
51 unsigned char TPBulk_GetMaxLUN(void)
52 {
53 1
54 1 usbstack.setup.bmRequest=0xa1;
55 1 usbstack.setup.bRequest=0xfe;
C51 COMPILER V7.00 TPBULK 09/22/2005 17:15:30 PAGE 2
56 1 usbstack.setup.wValue=0;
57 1 usbstack.setup.wIndex=0;
58 1 usbstack.setup.wLength=1;
59 1 usbstack.buffer=DBUF;
60 1 return ep0Xfer();
61 1
62 1 }
63
64 unsigned char SPC_Inquiry(void)
65 {
66 1 #define cdbInquirySPC RBC_CDB.SpcCdb_Inquiry
67 1 //unsigned char len;
68 1 //unsigned char retStatus=FALSE;
69 1 TPBulk_CBW.dCBW_Signature=CBW_SIGNATURE;
70 1 TPBulk_CBW.dCBW_Tag=0x60a624de;
71 1 TPBulk_CBW.dCBW_DataXferLen=0x24000000;
72 1 TPBulk_CBW.bCBW_Flag=0x80;
73 1 TPBulk_CBW.bCBW_LUN=0;
74 1 TPBulk_CBW.bCBW_CDBLen=sizeof(INQUIRY_SPC);
75 1
76 1 /////////////////////////////////
77 1 cdbInquirySPC.OperationCode=SPC_CMD_INQUIRY;
78 1 cdbInquirySPC.EnableVPD=0;
79 1 cdbInquirySPC.CmdSupportData=0;
80 1 cdbInquirySPC.PageCode=0;
81 1 cdbInquirySPC.AllocationLen=0x24;
82 1 cdbInquirySPC.Control=0;
83 1 ////////////////////////////////
84 1 //if(!epBulkRcv(DBUF,5))
85 1 // return FALSE;
86 1 if(!epBulkSend((unsigned char *)&TPBulk_CBW,sizeof(TPBulk_CBW)))
87 1 return FALSE;
88 1
89 1 if(!epBulkRcv(DBUF,38))
90 1 return FALSE;
91 1 if(!epBulkRcv((unsigned char *)&TPBulk_CSW,13))
92 1 return FALSE;
93 1 ////////////////////////////////
94 1 return TRUE;
95 1 #undef cdbInquirySPC
96 1 }
97
98 unsigned char SPC_READLONG(void)
99 {
100 1 #define cdbReadLong RBC_CDB.SpcCdb_ReadLong
101 1 //nsigned char retStatus=FALSE;
102 1 TPBulk_CBW.dCBW_Signature=CBW_SIGNATURE;
103 1 TPBulk_CBW.dCBW_Tag=0x60a624de;
104 1 TPBulk_CBW.dCBW_DataXferLen=0xfc000000;
105 1 TPBulk_CBW.bCBW_Flag=0x80;
106 1 TPBulk_CBW.bCBW_LUN=0;
107 1 TPBulk_CBW.bCBW_CDBLen=sizeof(READ_LONG_CMD);
108 1
109 1 /////////////////////////////////////
110 1 cdbReadLong.OperationCode=SPC_CMD_READLONG;
111 1 cdbReadLong.LogicalUnitNum=0;
112 1 cdbReadLong.AllocationLen=0xfc;
113 1 //////////////////////////////////////
114 1 if(!epBulkSend((unsigned char *)&TPBulk_CBW,sizeof(TPBulk_CBW)))
115 1 return FALSE;
116 1
117 1 if(!epBulkRcv(DBUF,0xfc))
C51 COMPILER V7.00 TPBULK 09/22/2005 17:15:30 PAGE 3
118 1 return FALSE;
119 1
120 1 if(!epBulkRcv((unsigned char *)&TPBulk_CSW,13))
121 1 return FALSE;
122 1 ////////////////////////////
123 1 return TRUE;
124 1 #undef cdbReadLong
125 1 }
126 unsigned char SPC_RequestSense(void)
127 {
128 1 #define cdbRequestSenseSPC RBC_CDB.SpcCdb_RequestSense
129 1 //unsigned char retStatus=FALSE;
130 1 TPBulk_CBW.dCBW_Signature=CBW_SIGNATURE;
131 1 TPBulk_CBW.dCBW_Tag=0x60a624de;
132 1 TPBulk_CBW.dCBW_DataXferLen=0x0e000000;
133 1 TPBulk_CBW.bCBW_Flag=0x80;
134 1 TPBulk_CBW.bCBW_LUN=0;
135 1 TPBulk_CBW.bCBW_CDBLen=sizeof(REQUEST_SENSE_SPC);
136 1
137 1 /////////////////////////////////////
138 1 cdbRequestSenseSPC.OperationCode=SPC_CMD_REQUESTSENSE;
139 1 cdbRequestSenseSPC.AllocationLen=0x0e;
140 1 //////////////////////////////////////
141 1 if(!epBulkSend((unsigned char *)&TPBulk_CBW,sizeof(TPBulk_CBW)))
142 1 return FALSE;
143 1
144 1 if(!epBulkRcv(DBUF,18))
145 1 return FALSE;
146 1
147 1 if(!epBulkRcv((unsigned char *)&TPBulk_CSW,13))
148 1 return FALSE;
149 1 /////////////////////////////
150 1 return TRUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -