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

📄 sd.lst

📁 FS7805 使用ATA硬盘的demo
💻 LST
📖 第 1 页 / 共 5 页
字号:
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 + -