📄 sd.lst
字号:
1131 1 SdMediaStatus = STATUS_SUCCESS;
1132 1 }
1133
1134 //----------------------------------------------------------------------------
1135 // Description:
1136 // use to change STATUS when device "eject"
1137 //----------------------------------------------------------------------------
1138 void SdEject()
1139 {
1140 1 SdMediaStatus = STATUS_NO_MEDIA;
1141 1 }
1142
1143 //----------------------------------------------------------------------------
1144 // Description:
1145 // Query the current device information
1146 // *NumScsiBlocks = 0 means that the device does not exist now
1147 //----------------------------------------------------------------------------
1148 STATUS SdQueryDevice()
1149 {
1150 1 STATUS OrgStatus = SdMediaStatus;
1151 1
1152 1 // DebugPrint("<SdQueryDevice> Status = %bu\r\n", SdMediaStatus);
1153 1 if (SdMediaStatus == STATUS_NO_MEDIA)
1154 1 return SdMediaStatus;
1155 1
1156 1 if (SdMediaStatus == STATUS_MEDIA_CHANGE)
1157 1 SdMediaStatus = STATUS_SUCCESS;
1158 1 DeviceInfo.TotalBlocks = SdAvailableBlocks;
1159 1 DeviceInfo.BlockSize = BYTES_PER_SECTOR;
1160 1 if (CardType == CARD_SD)
1161 1 DeviceInfo.WriteProtect = SdWriteProtect();
1162 1 else
1163 1 DeviceInfo.WriteProtect = false;
1164 1
1165 1 return OrgStatus;
1166 1 }
1167
1168 //----------------------------------------------------------------------------
1169 // Description:
1170 // The SD interrupt handler
C51 COMPILER V7.02b SD 07/18/2006 15:32:57 PAGE 20
1171 //----------------------------------------------------------------------------
1172 /*void SdIntHandler(BYTE Event)
1173 {
1174 Event=Event;
1175 SdGetFlashInfoTimer = GET_FLASH_INFO_DELAY;
1176 }*/
1177
1178 //----------------------------------------------------------------------------
1179 // Description:
1180 // Make the SD device into suspend mode
1181 //----------------------------------------------------------------------------
1182 void SdSuspend()
1183 {
1184 1 SdStopClk();
1185 1 SdPowerOff();
1186 1 }
1187
1188 //----------------------------------------------------------------------------
1189 // Description:
1190 // Make the CF device resume
1191 //----------------------------------------------------------------------------
1192 void SdResume()
1193 {
1194 1 if (SdCardExist())
1195 1 {
1196 2 SdPowerOn();
1197 2 SdReadFlashInfo();
1198 2 }
1199 1 }
1200
1201 //----------------------------------------------------------------------------
1202 // Description:
1203 // Initiate the SD device
1204 //----------------------------------------------------------------------------
1205 void SdInit()
1206 {
1207 1 //DebugShow("<SdInit>\r\n");
1208 1
1209 1 if (SdCardExist())
1210 1 {
1211 2 SdMediaChange();
1212 2 #ifdef DEBUG_FLASH_ERASE
#if (defined(DEBUG_UART) || !defined(DEBUG))
if (DEBUG_BIT_RESET == 0)
#endif
{
SdMediaStatus = SdReadFlashInfo();
/*
if (SdEraseDevice() == STATUS_SUCCESS)
DebugShow("Erase done.\r\n");
else
DebugShow("Erase Fail!\r\n");
*/
}
#endif
1227 2 }
1228 1 }
1229
1230 //----------------------------------------------------------------------------
1231 /*void DumpCIDInfo()
1232 {
C51 COMPILER V7.02b SD 07/18/2006 15:32:57 PAGE 21
1233 BYTE Year = 0;
1234
1235 DebugPrint("<CID Register>\r\n");
1236 DebugPrint("Manufacture ID = %02bx\r\n", SdRespBuf[1]);
1237 DebugPrint("OEM ID = %02bx%02bx\r\n", SdRespBuf[2], SdRespBuf[3]);
1238 DebugPrint("Product Name = %c%c%c%c%c\r\n", \
1239 SdRespBuf[4], SdRespBuf[5], SdRespBuf[6], SdRespBuf[7], SdRespBuf[8]);
1240 DebugPrint("Product Version = %bd.%bd\r\n", \
1241 (SdRespBuf[9] >> 4), (SdRespBuf[9] & 0x0f));
1242 DebugPrint("Product S/N = %02bx%02bx%02bx%02bx\r\n", \
1243 SdRespBuf[10], SdRespBuf[11], SdRespBuf[12], SdRespBuf[13]);
1244 Year = SdRespBuf[14];
1245 Year <<= 4;
1246 Year |= (SdRespBuf[15] >> 4);
1247 DebugPrint("Manufacturing Date = %d/%bd \r\n", (UINT16)Year + 2000, (SdRespBuf[15] & 0x0f));
1248 }
1249 */
1250
C51 COMPILER V7.02b SD 07/18/2006 15:32:57 PAGE 22
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _SdGetRespType (BEGIN)
; SOURCE LINE # 164
;---- Variable 'CmdIndex' assigned to Register 'R7' ----
; SOURCE LINE # 165
; SOURCE LINE # 166
0000 EF MOV A,R7
0001 B4030C CJNE A,#03H,?C0001
; SOURCE LINE # 167
; SOURCE LINE # 168
0004 900000 R MOV DPTR,#CardType
0007 E0 MOVX A,@DPTR
0008 7003 JNZ ?C0002
; SOURCE LINE # 169
000A 7F06 MOV R7,#06H
000C 22 RET
000D ?C0002:
; SOURCE LINE # 171
000D 7F01 MOV R7,#01H
000F 22 RET
; SOURCE LINE # 172
0010 ?C0001:
; SOURCE LINE # 173
0010 EF MOV A,R7
0011 120000 E LCALL ?C?CCASE
0014 0000 R DW ?C0018
0016 00 DB 00H
0017 0000 R DW ?C0007
0019 01 DB 01H
001A 0000 R DW ?C0008
001C 02 DB 02H
001D 0000 R DW ?C0018
001F 04 DB 04H
0020 0000 R DW ?C0010
0022 06 DB 06H
0023 0000 R DW ?C0011
0025 07 DB 07H
0026 0000 R DW ?C0012
0028 08 DB 08H
0029 0000 R DW ?C0013
002B 09 DB 09H
002C 0000 R DW ?C0014
002E 0A DB 0AH
002F 0000 R DW ?C0015
0031 0B DB 0BH
0032 0000 R DW ?C0016
0034 0C DB 0CH
0035 0000 R DW ?C0017
0037 0D DB 0DH
0038 0000 R DW ?C0018
003A 0F DB 0FH
003B 0000 R DW ?C0019
003D 10 DB 010H
003E 0000 R DW ?C0020
0040 11 DB 011H
0041 0000 R DW ?C0021
0043 12 DB 012H
0044 0000 R DW ?C0022
0046 14 DB 014H
0047 0000 R DW ?C0041
C51 COMPILER V7.02b SD 07/18/2006 15:32:57 PAGE 23
0049 16 DB 016H
004A 0000 R DW ?C0023
004C 17 DB 017H
004D 0000 R DW ?C0024
004F 18 DB 018H
0050 0000 R DW ?C0025
0052 19 DB 019H
0053 0000 R DW ?C0026
0055 1A DB 01AH
0056 0000 R DW ?C0027
0058 1B DB 01BH
0059 0000 R DW ?C0028
005B 1C DB 01CH
005C 0000 R DW ?C0029
005E 1D DB 01DH
005F 0000 R DW ?C0030
0061 1E DB 01EH
0062 0000 R DW ?C0031
0064 20 DB 020H
0065 0000 R DW ?C0032
0067 21 DB 021H
0068 0000 R DW ?C0033
006A 23 DB 023H
006B 0000 R DW ?C0034
006D 24 DB 024H
006E 0000 R DW ?C0035
0070 26 DB 026H
0071 0000 R DW ?C0036
0073 27 DB 027H
0074 0000 R DW ?C0037
0076 28 DB 028H
0077 0000 R DW ?C0042
0079 29 DB 029H
007A 0000 R DW ?C0038
007C 2A DB 02AH
007D 0000 R DW ?C0043
007F 33 DB 033H
0080 0000 R DW ?C0039
0082 37 DB 037H
0083 0000 R DW ?C0040
0085 38 DB 038H
0086 0000 DW 00H
0088 0000 R DW ?C0018
; SOURCE LINE # 174
; SOURCE LINE # 175
; SOURCE LINE # 176
008A ?C0007:
008A 7F03 MOV R7,#03H
008C 22 RET
; SOURCE LINE # 177
008D ?C0008:
008D 7F02 MOV R7,#02H
008F 22 RET
; SOURCE LINE # 178
; SOURCE LINE # 179
0090 ?C0010:
0090 7F01 MOV R7,#01H
0092 22 RET
; SOURCE LINE # 180
0093 ?C0011:
0093 7F01 MOV R7,#01H
0095 22 RET
C51 COMPILER V7.02b SD 07/18/2006 15:32:57 PAGE 24
; SOURCE LINE # 181
0096 ?C0012:
0096 7F01 MOV R7,#01H
0098 22 RET
; SOURCE LINE # 182
0099 ?C0013:
0099 7F02 MOV R7,#02H
009B 22 RET
; SOURCE LINE # 183
009C ?C0014:
009C 7F02 MOV R7,#02H
009E 22 RET
; SOURCE LINE # 184
009F ?C0015:
009F 7F01 MOV R7,#01H
00A1 22 RET
; SOURCE LINE # 185
00A2 ?C0016:
00A2 7F01 MOV R7,#01H
00A4 22 RET
; SOURCE LINE # 186
00A5 ?C0017:
00A5 7F01 MOV R7,#01H
00A7 22 RET
; SOURCE LINE # 187
00A8 ?C0018:
00A8 7F00 MOV R7,#00H
00AA 22 RET
; SOURCE LINE # 188
00AB ?C0019:
00AB 7F01 MOV R7,#01H
00AD 22 RET
; SOURCE LINE # 189
00AE ?C0020:
00AE 7F01 MOV R7,#01H
00B0 22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -