?? test.lst
字號:
23 =1 unsigned int CSD_RdBlkMisAlign:1;
24 =1 unsigned int CSD_DSRImp:1;
25 =1 unsigned int CSD_DevResv:2;
26 =1 unsigned int CSD_DevSize:12;
27 =1 unsigned int CSD_MaxRdCurVmin:3;
28 =1 unsigned int CSD_MaxRdCurVmax:3;
29 =1 unsigned int CSD_MaxWrCurVmin:3;
30 =1 unsigned int CSD_MaxWrCurVmax:3;
31 =1 unsigned int CSD_DevSizeMult:3;
32 =1 unsigned int CSD_ErsSingBlk:1;
33 =1 unsigned int CSD_ErsSectSize:7;
34 =1 unsigned int CSD_WrProtGrpSize:7;
35 =1 unsigned char CSD_WrFmtGrpEn:1;
36 =1 unsigned char CSD_MMCResv:2;
37 =1 unsigned char CSD_WrSpeedFactor:3;
38 =1 unsigned char CSD_MaxWrLen:4;
39 =1 unsigned char CSD_PartBlkWr:1;
40 =1 unsigned char CSD_FileResv:5;
41 =1 unsigned char CSD_FileFmtGrp:1;
42 =1 unsigned char CSD_CopyFlag:1;
43 =1 unsigned char CSD_PermWrProt:1;
44 =1 unsigned char CSD_TempWrProt:1;
45 =1 unsigned char CSD_FileFmt:2;
46 =1 unsigned char CSD_Resv:2;
47 =1 unsigned char CSD_CRC:7;
48 =1 unsigned char CSD_EOB:1;
49 =1 } CSD_BLOCK, *pCSD_BLOCK;
50 =1
51 =1 // SD/MMC commands
52 =1 #define SD_RESET 0x40 + 0
53 =1 #define SD_INIT 0x40 + 1
54 =1 #define SD_READ_CSD 0x40 + 9
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 11
55 =1 #define SD_READ_CID 0x40 + 10
56 =1 //
57 =1 #define SD_STOP_TRANSMISSION 0x40 + 12
58 =1 #define SD_SEND_STATUS 0x40 + 13
59 =1 //
60 =1 #define SD_SET_BLOCKLEN 0x40 + 16
61 =1 #define SD_READ_BLOCK 0x40 + 17
62 =1 #define SD_READ_MULTI_BLOCK 0x40 + 18
63 =1 //
64 =1 #define SD_WRITE_BLOCK 0x40 + 24
65 =1 #define SD_WRITE_MULTI_BLOCK 0x40 + 25
66 =1
67 =1 //prototypes
68 =1 unsigned char GetDevInfo(void);
69 =1
70 =1 unsigned char SDCommand(unsigned char command, unsigned char *pAddr);
71 =1
72 =1 unsigned char SDReadSector(unsigned long sector);
73 =1
74 =1 unsigned char SDReadFat(unsigned long sector);
75 =1
76 =1 unsigned char SDReadRdir(unsigned long sector);
77 =1
78 =1 unsigned char SDWriteSector(unsigned long sector, unsigned char *pUsrBuf);
79 =1
80 =1 unsigned char SDIdentify(void);
81 =1
82 =1 unsigned char SDResp(unsigned char respLen);
83 =1
84 =1 unsigned char SDMp3Read(unsigned long sector);
85 =1
86 =1 unsigned char UartWaitCmd();
87 =1
88 =1 #endif
4 #include "tpbulk.h"
1 =1 #include "rbccmd.h"
1 =2 /*
2 =2 // RBC commands
3 =2 */
4 =2 #define RBC_CMD_FORMAT 0x04
5 =2 #define RBC_CMD_READ10 0x28
6 =2 #define RBC_CMD_READCAPACITY 0x25
7 =2 #define RBC_CMD_STARTSTOPUNIT 0x1B
8 =2 #define RBC_CMD_SYNCCACHE 0x35
9 =2 #define RBC_CMD_VERIFY10 0x2F
10 =2 #define RBC_CMD_WRITE10 0x2A
11 =2
12 =2 /*
13 =2 // SPC-2 commands
14 =2 */
15 =2 #define SPC_CMD_INQUIRY 0x12
16 =2 #define SPC_CMD_MODESELECT6 0x15
17 =2 #define SPC_CMD_MODESENSE6 0x1A
18 =2 #define SPC_CMD_PERSISTANTRESERVIN 0x5E
19 =2 #define SPC_CMD_PERSISTANTRESERVOUT 0x5F
20 =2 #define SPC_CMD_PRVENTALLOWMEDIUMREMOVAL 0x1E
21 =2 #define SPC_CMD_RELEASE6 0x17
22 =2 #define SPC_CMD_REQUESTSENSE 0x03
23 =2 #define SPC_CMD_RESERVE6 0x16
24 =2 #define SPC_CMD_TESTUNITREADY 0x00
25 =2 #define SPC_CMD_WRITEBUFFER 0x3B
26 =2 #define SPC_CMD_READLONG 0x23
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 12
27 =2
28 =2
29 =2 /*
30 =2 // ATAPI Command Descriptor Block - 13 Bytes
31 =2 */
32 =2
33 =2 typedef struct _READ_10 {
34 =2 UINT8 OperationCode;
35 =2 UINT8 Reserved1;
36 =2 UINT8 LBA_3;
37 =2 UINT8 LBA_2;
38 =2 UINT8 LBA_1;
39 =2 UINT8 LBA_0;
40 =2 UINT8 Reserved2;
41 =2 UINT8 XferLen_1;
42 =2 UINT8 XferLen_0;
43 =2 UINT8 Reserved3[3];
44 =2 } READ_10, *pREAD_10;
45 =2
46 =2 typedef struct _WRITE_10 {
47 =2 UINT8 OperationCode;
48 =2 UINT8 Reserved1;
49 =2 UINT8 LBA_3;
50 =2 UINT8 LBA_2;
51 =2 UINT8 LBA_1;
52 =2 UINT8 LBA_0;
53 =2 UINT8 Reserved2;
54 =2 UINT8 XferLen_1;
55 =2 UINT8 XferLen_0;
56 =2 UINT8 Reserved3[3];
57 =2 } WRITE_10, *pWRITE_10;
58 =2
59 =2 typedef struct _MODE_SENSE_10 {
60 =2 UINT8 OperationCode;
61 =2 UINT8 Reserved1;
62 =2 UINT8 PageCode : 6;
63 =2 UINT8 Pc : 2;
64 =2 UINT8 Reserved2[4];
65 =2 UINT8 ParameterListLengthMsb;
66 =2 UINT8 ParameterListLengthLsb;
67 =2 UINT8 Reserved3[3];
68 =2 } MODE_SENSE_10, *pMODE_SENSE_10;
69 =2
70 =2 typedef struct _MODE_SELECT_10 {
71 =2 UINT8 OperationCode;
72 =2 UINT8 Reserved1 : 4;
73 =2 UINT8 PFBit : 1;
74 =2 UINT8 Reserved2 : 3;
75 =2 UINT8 Reserved3[5];
76 =2 UINT8 ParameterListLengthMsb;
77 =2 UINT8 ParameterListLengthLsb;
78 =2 UINT8 Reserved4[3];
79 =2 } MODE_SELECT_10, *pMODE_SELECT_10;
80 =2 /*
81 =2 ////////////////////////////////////////////////////////////////////////////////////
82 =2 // Command Descriptor Block - max = 16 Bytes
83 =2 // _RBC : Reduced Block Command
84 =2 // _SPC : SPC-2 SCSI primary Command - 2
85 =2 ////////////////////////////////////////////////////////////////////////////////////
86 =2 */
87 =2
88 =2 /*
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 13
89 =2 // Generic
90 =2 */
91 =2 typedef struct _GENERIC_CDB {
92 =2 UINT8 OperationCode;
93 =2 UINT8 Reserved[15];
94 =2 } GENERIC_CDB,*pGENERIC_CDB;
95 =2
96 =2 typedef struct _GENERIC_RBC {
97 =2 UINT8 OperationCode;
98 =2 UINT8 Reserved[8];
99 =2 UINT8 Control;
100 =2 } GENERIC_RBC,*pGENERIC_RBC;
101 =2
102 =2 /*
103 =2 // format unit
104 =2 */
105 =2 typedef struct _FORMAT_RBC {
106 =2 UINT8 OperationCode; // 04H
107 =2 UINT8 VendorSpecific;
108 =2 UINT8 Increment : 1;
109 =2 UINT8 PercentorTime : 1;
110 =2 UINT8 Progress : 1;
111 =2 UINT8 Immediate : 1;
112 =2 UINT8 VendorSpecific1 : 4;
113 =2 UINT8 Reserved2[2];
114 =2 UINT8 Control;
115 =2 } FORMAT_RBC, *pFORMAT_RBC;
116 =2
117 =2
118 =2 /*
119 =2 // Read Command
120 =2 */
121 =2 typedef struct _READ_RBC {
122 =2 UINT8 OperationCode; // 10H
123 =2 UINT8 VendorSpecific;
124 =2 union{
125 =2 struct
126 =2 {
127 =2 UINT8 LBA_3;
128 =2 UINT8 LBA_2;
129 =2 UINT8 LBA_1;
130 =2 UINT8 LBA_0;
131 =2 } LBA_W8 ;
132 =2
133 =2 UINT32 LBA_W32;
134 =2 }LBA;
135 =2 UINT8 Reserved;
136 =2 //UINT8 XferLength_1;
137 =2 //UINT8 XferLength_0;
138 =2 UINT16 XferLength;
139 =2 UINT8 Control;
140 =2 //UINT8 Reserved1[3];
141 =2 } READ_RBC, *pREAD_RBC;
142 =2
143 =2
144 =2 /*
145 =2 // Read Capacity Data - returned in Big Endian format
146 =2 */
147 =2 typedef struct _READ_CAPACITY_DATA {
148 =2
149 =2 UINT8 LBA_3;
150 =2 UINT8 LBA_2;
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 14
151 =2 UINT8 LBA_1;
152 =2 UINT8 LBA_0;
153 =2
154 =2 UINT8 BlockLen_3;
155 =2 UINT8 BlockLen_2;
156 =2 UINT8 BlockLen_1;
157 =2 UINT8 BlockLen_0;
158 =2 } READ_CAPACITY_DATA, *pREAD_CAPACITY_DATA;
159 =2 //////////////////////////////////////////////////
160 =2 typedef struct _READ_LONG_CMD{
161 =2 UINT8 OperationCode;
162 =2 UINT8 LogicalUnitNum :3;
163 =2 UINT8 RES_1 :5;
164 =2 UINT8 RES_2;
165 =2 UINT8 RES_3;
166 =2 UINT8 RES_4;
167 =2 UINT8 RES_5;
168 =2 UINT8 RES_6;
169 =2 UINT16 AllocationLen;
170 =2 UINT8 RES_7;
171 =2 UINT8 RES_8;
172 =2 UINT8 RES_9;
173 =2 }READ_LONG_CMD, *pREAD_LONG_CMD;
174 =2
175 =2 typedef struct _READ_LONG {
176 =2
177 =2 UINT8 RES_1;
178 =2 UINT8 RES_2;
179 =2 UINT8 RES_3;
180 =2 UINT8 CAP_LIST_LEN;
181 =2
182 =2 UINT8 LBA_3;
183 =2 UINT8 LBA_2;
184 =2 UINT8 LBA_1;
185 =2 UINT8 LBA_0;
186 =2
187 =2 UINT8 Descripter;
188 =2 UINT8 BlockLen_2;
189 =2 UINT8 BlockLen_1;
190 =2 UINT8 BlockLen_0;
191 =2 } READ_LONG, *pREAD_LONG;
192 =2 /*
193 =2 // Read Capacity command
194 =2 */
195 =2 typedef struct _READ_CAPACITY_RBC {
196 =2 UINT8 OperationCode; /* 10H */
197 =2 union {
198 =2 FLEXI_INT32 l0[2];
199 =2 UINT32 l[2];
200 =2 READ_CAPACITY_DATA CapData; /* Reserved area, here is used as temp*/
201 =2 } tmpVar;
202 =2
203 =2 UINT8 Control;
204 =2 } READ_CAPACITY_RBC, *pREAD_CAPACITY_RBC;
205 =2
206 =2 typedef struct _READ_CAPACITY_RSP {
207 =2 UINT32 LastLBA;
208 =2 UINT32 BlockSize;
209 =2
210 =2 } READ_CAPACITY_RSP, *pREAD_CAPACITY_RSP;
211 =2 /*
212 =2 // START_STOP_UNIT
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 15
213 =2 */
214 =2 typedef struct _START_STOP_RBC {
215 =2 UINT8 OperationCode; /*1BH*/
216 =2 UINT8 Immediate: 1;
217 =2 UINT8 Reserved1 : 7;
218 =2 UINT8 Reserved2[2];
219 =2 union _START_STOP_FLAGS
220 =2 {
221 =2 struct
222 =2 {
223 =2 UINT8 Start : 1;
224 =2 UINT8 LoadEject : 1;
225 =2 UINT8 Reserved3 : 2;
226 =2 UINT8 PowerConditions: 4;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -