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

📄 sdcard.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\sdcard.o --depend=.\Obj\sdcard.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\source\sdcard.c]
                          THUMB

                          AREA ||i.CmdResp1Error||, CODE, READONLY, ALIGN=2

                  CmdResp1Error PROC
;;;2105   *******************************************************************************/
;;;2106   static SD_Error CmdResp1Error(u8 cmd)
000000  b570              PUSH     {r4-r6,lr}
;;;2107   {
;;;2108     SD_Error errorstatus = SD_OK;
;;;2109     u32 status;
;;;2110     u32 response_r1;
;;;2111   
;;;2112     status = SDIO->STA;
000002  4937              LDR      r1,|L1.224|
000004  4605              MOV      r5,r0                 ;2107
000006  242a              MOVS     r4,#0x2a              ;2108
                  |L1.8|
;;;2113   
;;;2114     while (!(status & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT)))
;;;2115     {
;;;2116       status = SDIO->STA;
000008  6b48              LDR      r0,[r1,#0x34]
00000a  f0100f45          TST      r0,#0x45              ;2114
00000e  d0fb              BEQ      |L1.8|
;;;2117     }
;;;2118   
;;;2119     if (status & SDIO_FLAG_CTIMEOUT)
000010  0741              LSLS     r1,r0,#29
000012  d502              BPL      |L1.26|
;;;2120     {
;;;2121       errorstatus = SD_CMD_RSP_TIMEOUT;
000014  2403              MOVS     r4,#3
;;;2122       SDIO_ClearFlag(SDIO_FLAG_CTIMEOUT);
000016  2004              MOVS     r0,#4
;;;2123       return(errorstatus);
000018  e003              B        |L1.34|
                  |L1.26|
;;;2124     }
;;;2125     else if (status & SDIO_FLAG_CCRCFAIL)
00001a  07c0              LSLS     r0,r0,#31
00001c  d004              BEQ      |L1.40|
;;;2126     {
;;;2127       errorstatus = SD_CMD_CRC_FAIL;
00001e  2401              MOVS     r4,#1
;;;2128       SDIO_ClearFlag(SDIO_FLAG_CCRCFAIL);
000020  4620              MOV      r0,r4
                  |L1.34|
000022  f7fffffe          BL       SDIO_ClearFlag
000026  e059              B        |L1.220|
                  |L1.40|
;;;2129       return(errorstatus);
;;;2130     }
;;;2131   
;;;2132     /* Check response received is of desired command */
;;;2133     if (SDIO_GetCommandResponse() != cmd)
000028  f7fffffe          BL       SDIO_GetCommandResponse
00002c  42a8              CMP      r0,r5
00002e  d12b              BNE      |L1.136|
;;;2134     {
;;;2135       errorstatus = SD_ILLEGAL_CMD;
;;;2136       return(errorstatus);
;;;2137     }
;;;2138   
;;;2139     /* Clear all the static flags */
;;;2140     SDIO_ClearFlag(SDIO_STATIC_FLAGS);
000030  f24050ff          MOV      r0,#0x5ff
000034  f7fffffe          BL       SDIO_ClearFlag
;;;2141   
;;;2142     /* We have received response, retrieve it for analysis  */
;;;2143     response_r1 = SDIO_GetResponse(SDIO_RESP1);
000038  2000              MOVS     r0,#0
00003a  f7fffffe          BL       SDIO_GetResponse
;;;2144   
;;;2145     if ((response_r1 & SD_OCR_ERRORBITS) == SD_ALLZERO)
00003e  4929              LDR      r1,|L1.228|
000040  4208              TST      r0,r1
000042  d04b              BEQ      |L1.220|
;;;2146     {
;;;2147       return(errorstatus);
;;;2148     }
;;;2149   
;;;2150     if (response_r1 & SD_OCR_ADDR_OUT_OF_RANGE)
000044  2800              CMP      r0,#0
000046  da01              BGE      |L1.76|
;;;2151     {
;;;2152       return(SD_ADDR_OUT_OF_RANGE);
000048  201c              MOVS     r0,#0x1c
;;;2153     }
;;;2154   
;;;2155     if (response_r1 & SD_OCR_ADDR_MISALIGNED)
;;;2156     {
;;;2157       return(SD_ADDR_MISALIGNED);
;;;2158     }
;;;2159   
;;;2160     if (response_r1 & SD_OCR_BLOCK_LEN_ERR)
;;;2161     {
;;;2162       return(SD_BLOCK_LEN_ERR);
;;;2163     }
;;;2164   
;;;2165     if (response_r1 & SD_OCR_ERASE_SEQ_ERR)
;;;2166     {
;;;2167       return(SD_ERASE_SEQ_ERR);
;;;2168     }
;;;2169   
;;;2170     if (response_r1 & SD_OCR_BAD_ERASE_PARAM)
;;;2171     {
;;;2172       return(SD_BAD_ERASE_PARAM);
;;;2173     }
;;;2174   
;;;2175     if (response_r1 & SD_OCR_WRITE_PROT_VIOLATION)
;;;2176     {
;;;2177       return(SD_WRITE_PROT_VIOLATION);
;;;2178     }
;;;2179   
;;;2180     if (response_r1 & SD_OCR_LOCK_UNLOCK_FAILED)
;;;2181     {
;;;2182       return(SD_LOCK_UNLOCK_FAILED);
;;;2183     }
;;;2184   
;;;2185     if (response_r1 & SD_OCR_COM_CRC_FAILED)
;;;2186     {
;;;2187       return(SD_COM_CRC_FAILED);
;;;2188     }
;;;2189   
;;;2190     if (response_r1 & SD_OCR_ILLEGAL_CMD)
;;;2191     {
;;;2192       return(SD_ILLEGAL_CMD);
;;;2193     }
;;;2194   
;;;2195     if (response_r1 & SD_OCR_CARD_ECC_FAILED)
;;;2196     {
;;;2197       return(SD_CARD_ECC_FAILED);
;;;2198     }
;;;2199   
;;;2200     if (response_r1 & SD_OCR_CC_ERROR)
;;;2201     {
;;;2202       return(SD_CC_ERROR);
;;;2203     }
;;;2204   
;;;2205     if (response_r1 & SD_OCR_GENERAL_UNKNOWN_ERROR)
;;;2206     {
;;;2207       return(SD_GENERAL_UNKNOWN_ERROR);
;;;2208     }
;;;2209   
;;;2210     if (response_r1 & SD_OCR_STREAM_READ_UNDERRUN)
;;;2211     {
;;;2212       return(SD_STREAM_READ_UNDERRUN);
;;;2213     }
;;;2214   
;;;2215     if (response_r1 & SD_OCR_STREAM_WRITE_OVERRUN)
;;;2216     {
;;;2217       return(SD_STREAM_WRITE_OVERRUN);
;;;2218     }
;;;2219   
;;;2220     if (response_r1 & SD_OCR_CID_CSD_OVERWRIETE)
;;;2221     {
;;;2222       return(SD_CID_CSD_OVERWRITE);
;;;2223     }
;;;2224   
;;;2225     if (response_r1 & SD_OCR_WP_ERASE_SKIP)
;;;2226     {
;;;2227       return(SD_WP_ERASE_SKIP);
;;;2228     }
;;;2229   
;;;2230     if (response_r1 & SD_OCR_CARD_ECC_DISABLED)
;;;2231     {
;;;2232       return(SD_CARD_ECC_DISABLED);
;;;2233     }
;;;2234   
;;;2235     if (response_r1 & SD_OCR_ERASE_RESET)
;;;2236     {
;;;2237       return(SD_ERASE_RESET);
;;;2238     }
;;;2239   
;;;2240     if (response_r1 & SD_OCR_AKE_SEQ_ERROR)
;;;2241     {
;;;2242       return(SD_AKE_SEQ_ERROR);
;;;2243     }
;;;2244     return(errorstatus);
;;;2245   }
00004a  bd70              POP      {r4-r6,pc}
                  |L1.76|
00004c  0041              LSLS     r1,r0,#1              ;2155
00004e  d501              BPL      |L1.84|
000050  2009              MOVS     r0,#9                 ;2157
000052  bd70              POP      {r4-r6,pc}
                  |L1.84|
000054  0081              LSLS     r1,r0,#2
000056  d501              BPL      |L1.92|
000058  200a              MOVS     r0,#0xa               ;2162
00005a  bd70              POP      {r4-r6,pc}
                  |L1.92|
00005c  00c1              LSLS     r1,r0,#3
00005e  d501              BPL      |L1.100|
000060  200b              MOVS     r0,#0xb               ;2167
000062  bd70              POP      {r4-r6,pc}
                  |L1.100|
000064  0101              LSLS     r1,r0,#4
000066  d501              BPL      |L1.108|
000068  200c              MOVS     r0,#0xc               ;2172
00006a  bd70              POP      {r4-r6,pc}
                  |L1.108|
00006c  0141              LSLS     r1,r0,#5              ;2175
00006e  d501              BPL      |L1.116|
000070  200d              MOVS     r0,#0xd               ;2177
000072  bd70              POP      {r4-r6,pc}
                  |L1.116|
000074  01c1              LSLS     r1,r0,#7              ;2180
000076  d501              BPL      |L1.124|
000078  200e              MOVS     r0,#0xe               ;2182
00007a  bd70              POP      {r4-r6,pc}
                  |L1.124|
00007c  0201              LSLS     r1,r0,#8              ;2185
00007e  d501              BPL      |L1.132|
000080  200f              MOVS     r0,#0xf               ;2187
000082  bd70              POP      {r4-r6,pc}
                  |L1.132|
000084  0241              LSLS     r1,r0,#9              ;2190
000086  d501              BPL      |L1.140|
                  |L1.136|
000088  2010              MOVS     r0,#0x10              ;2192
00008a  bd70              POP      {r4-r6,pc}
                  |L1.140|
00008c  0281              LSLS     r1,r0,#10             ;2195
00008e  d501              BPL      |L1.148|
000090  2011              MOVS     r0,#0x11              ;2197
000092  bd70              POP      {r4-r6,pc}
                  |L1.148|
000094  02c1              LSLS     r1,r0,#11             ;2200
000096  d501              BPL      |L1.156|
000098  2012              MOVS     r0,#0x12              ;2202
00009a  bd70              POP      {r4-r6,pc}
                  |L1.156|
00009c  0301              LSLS     r1,r0,#12             ;2205
00009e  d501              BPL      |L1.164|
0000a0  2013              MOVS     r0,#0x13              ;2207
0000a2  bd70              POP      {r4-r6,pc}
                  |L1.164|
0000a4  0341              LSLS     r1,r0,#13             ;2210
0000a6  d501              BPL      |L1.172|
0000a8  2014              MOVS     r0,#0x14              ;2212
0000aa  bd70              POP      {r4-r6,pc}
                  |L1.172|
0000ac  0381              LSLS     r1,r0,#14             ;2215
0000ae  d501              BPL      |L1.180|
0000b0  2015              MOVS     r0,#0x15              ;2217
0000b2  bd70              POP      {r4-r6,pc}
                  |L1.180|
0000b4  03c1              LSLS     r1,r0,#15             ;2220
0000b6  d501              BPL      |L1.188|
0000b8  2016              MOVS     r0,#0x16              ;2222
0000ba  bd70              POP      {r4-r6,pc}
                  |L1.188|
0000bc  0401              LSLS     r1,r0,#16             ;2225
0000be  d501              BPL      |L1.196|
0000c0  2017              MOVS     r0,#0x17              ;2227
0000c2  bd70              POP      {r4-r6,pc}
                  |L1.196|
0000c4  0441              LSLS     r1,r0,#17             ;2230
0000c6  d501              BPL      |L1.204|
0000c8  2018              MOVS     r0,#0x18              ;2232
0000ca  bd70              POP      {r4-r6,pc}
                  |L1.204|
0000cc  0481              LSLS     r1,r0,#18             ;2235
0000ce  d501              BPL      |L1.212|
0000d0  2019              MOVS     r0,#0x19              ;2237
0000d2  bd70              POP      {r4-r6,pc}
                  |L1.212|
0000d4  0700              LSLS     r0,r0,#28             ;2240
0000d6  d501              BPL      |L1.220|
0000d8  201a              MOVS     r0,#0x1a              ;2242
0000da  bd70              POP      {r4-r6,pc}
                  |L1.220|
0000dc  4620              MOV      r0,r4                 ;2244
0000de  bd70              POP      {r4-r6,pc}
;;;2246   
                          ENDP

                  |L1.224|
                          DCD      0x40018000
                  |L1.228|
                          DCD      0xfdffe008

                          AREA ||i.CmdResp2Error||, CODE, READONLY, ALIGN=2

                  CmdResp2Error PROC
;;;2285   *******************************************************************************/
;;;2286   static SD_Error CmdResp2Error(void)
000000  b510              PUSH     {r4,lr}
;;;2287   {
;;;2288     SD_Error errorstatus = SD_OK;
;;;2289     u32 status;
;;;2290   
;;;2291     status = SDIO->STA;
000002  490b              LDR      r1,|L2.48|
000004  242a              MOVS     r4,#0x2a              ;2288
                  |L2.6|
;;;2292   
;;;2293     while (!(status & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CTIMEOUT | SDIO_FLAG_CMDREND)))
;;;2294     {
;;;2295       status = SDIO->STA;
000006  6b48              LDR      r0,[r1,#0x34]
000008  f0100f45          TST      r0,#0x45              ;2293
00000c  d0fb              BEQ      |L2.6|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -