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

📄 bsp_sdio_sd.txt

📁 stm32-SDIO+FatFS文件系统txt-int-ascii
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0000f2  2404              MOVS     r4,#4                 ;2934
0000f4  4620              MOV      r0,r4                 ;2935
0000f6  e7a2              B        |L7.62|
                  |L7.248|
0000f8  2002              MOVS     r0,#2                 ;2937
0000fa  f7fffffe          BL       SDIO_GetFlagStatus
0000fe  b128              CBZ      r0,|L7.268|
000100  2002              MOVS     r0,#2                 ;2939
000102  f7fffffe          BL       SDIO_ClearFlag
000106  2402              MOVS     r4,#2                 ;2940
000108  4620              MOV      r0,r4                 ;2941
00010a  e798              B        |L7.62|
                  |L7.268|
00010c  2020              MOVS     r0,#0x20              ;2943
00010e  f7fffffe          BL       SDIO_GetFlagStatus
000112  b128              CBZ      r0,|L7.288|
000114  2020              MOVS     r0,#0x20              ;2945
000116  f7fffffe          BL       SDIO_ClearFlag
00011a  2406              MOVS     r4,#6                 ;2946
00011c  4620              MOV      r0,r4                 ;2947
00011e  e78e              B        |L7.62|
                  |L7.288|
000120  f44f7000          MOV      r0,#0x200             ;2949
000124  f7fffffe          BL       SDIO_GetFlagStatus
000128  b130              CBZ      r0,|L7.312|
00012a  f44f7000          MOV      r0,#0x200             ;2951
00012e  f7fffffe          BL       SDIO_ClearFlag
000132  2407              MOVS     r4,#7                 ;2952
000134  4620              MOV      r0,r4                 ;2953
000136  e782              B        |L7.62|
                  |L7.312|
000138  f24050ff          MOV      r0,#0x5ff             ;2957
00013c  f7fffffe          BL       SDIO_ClearFlag
000140  9800              LDR      r0,[sp,#0]            ;2959
000142  0600              LSLS     r0,r0,#24             ;2959
000144  9900              LDR      r1,[sp,#0]            ;2959
000146  f401417f          AND      r1,r1,#0xff00         ;2959
00014a  ea402001          ORR      r0,r0,r1,LSL #8       ;2959
00014e  9900              LDR      r1,[sp,#0]            ;2959
000150  f401017f          AND      r1,r1,#0xff0000       ;2959
000154  ea402011          ORR      r0,r0,r1,LSR #8       ;2959
000158  9900              LDR      r1,[sp,#0]            ;2959
00015a  ea406011          ORR      r0,r0,r1,LSR #24      ;2959
00015e  6068              STR      r0,[r5,#4]            ;2959
000160  9801              LDR      r0,[sp,#4]            ;2961
000162  0600              LSLS     r0,r0,#24             ;2961
000164  9901              LDR      r1,[sp,#4]            ;2961
000166  f401417f          AND      r1,r1,#0xff00         ;2961
00016a  ea402001          ORR      r0,r0,r1,LSL #8       ;2961
00016e  9901              LDR      r1,[sp,#4]            ;2961
000170  f401017f          AND      r1,r1,#0xff0000       ;2961
000174  ea402011          ORR      r0,r0,r1,LSR #8       ;2961
000178  9901              LDR      r1,[sp,#4]            ;2961
00017a  ea406011          ORR      r0,r0,r1,LSR #24      ;2961
00017e  6028              STR      r0,[r5,#0]            ;2961
000180  4620              MOV      r0,r4                 ;2963
000182  e75c              B        |L7.62|
;;;2965   
                          ENDP

                  |L7.388|
                          DCD      SDIO_CmdInitStructure
                  |L7.392|
                          DCD      ||RCA||
                  |L7.396|
                          DCD      0x000fffff
                  |L7.400|
                          DCD      SDIO_DataInitStructure
                  |L7.404|
                          DCD      0x40018000

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

                  IsCardProgramming PROC
;;;2702     */
;;;2703   static SD_Error IsCardProgramming(uint8_t *pstatus)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;2704   {
000004  4606              MOV      r6,r0
;;;2705     SD_Error errorstatus = SD_OK;
000006  272a              MOVS     r7,#0x2a
;;;2706     __IO uint32_t respR1 = 0, status = 0;
000008  2400              MOVS     r4,#0
00000a  2500              MOVS     r5,#0
;;;2707   
;;;2708     SDIO_CmdInitStructure.SDIO_Argument = (uint32_t) RCA << 16;
00000c  4852              LDR      r0,|L8.344|
00000e  6800              LDR      r0,[r0,#0]  ; RCA
000010  0400              LSLS     r0,r0,#16
000012  4952              LDR      r1,|L8.348|
000014  6008              STR      r0,[r1,#0]  ; SDIO_CmdInitStructure
;;;2709     SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SEND_STATUS;
000016  200d              MOVS     r0,#0xd
000018  6048              STR      r0,[r1,#4]  ; SDIO_CmdInitStructure
;;;2710     SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;
00001a  2040              MOVS     r0,#0x40
00001c  6088              STR      r0,[r1,#8]  ; SDIO_CmdInitStructure
;;;2711     SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
00001e  2000              MOVS     r0,#0
000020  60c8              STR      r0,[r1,#0xc]  ; SDIO_CmdInitStructure
;;;2712     SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
000022  f44f6080          MOV      r0,#0x400
000026  6108              STR      r0,[r1,#0x10]  ; SDIO_CmdInitStructure
;;;2713     SDIO_SendCommand(&SDIO_CmdInitStructure);
000028  4608              MOV      r0,r1
00002a  f7fffffe          BL       SDIO_SendCommand
;;;2714   
;;;2715     status = SDIO->STA;
00002e  484c              LDR      r0,|L8.352|
000030  6b45              LDR      r5,[r0,#0x34]
;;;2716     while (!(status & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT)))
000032  e001              B        |L8.56|
                  |L8.52|
;;;2717     {
;;;2718       status = SDIO->STA;
000034  484a              LDR      r0,|L8.352|
000036  6b45              LDR      r5,[r0,#0x34]
                  |L8.56|
000038  f0150f45          TST      r5,#0x45              ;2716
00003c  d0fa              BEQ      |L8.52|
;;;2719     }
;;;2720   
;;;2721     if (status & SDIO_FLAG_CTIMEOUT)
00003e  f0150f04          TST      r5,#4
000042  d006              BEQ      |L8.82|
;;;2722     {
;;;2723       errorstatus = SD_CMD_RSP_TIMEOUT;
000044  2703              MOVS     r7,#3
;;;2724       SDIO_ClearFlag(SDIO_FLAG_CTIMEOUT);
000046  2004              MOVS     r0,#4
000048  f7fffffe          BL       SDIO_ClearFlag
;;;2725       return(errorstatus);
00004c  4638              MOV      r0,r7
                  |L8.78|
;;;2726     }
;;;2727     else if (status & SDIO_FLAG_CCRCFAIL)
;;;2728     {
;;;2729       errorstatus = SD_CMD_CRC_FAIL;
;;;2730       SDIO_ClearFlag(SDIO_FLAG_CCRCFAIL);
;;;2731       return(errorstatus);
;;;2732     }
;;;2733   
;;;2734     status = (uint32_t)SDIO_GetCommandResponse();
;;;2735   
;;;2736     /*!< Check response received is of desired command */
;;;2737     if (status != SD_CMD_SEND_STATUS)
;;;2738     {
;;;2739       errorstatus = SD_ILLEGAL_CMD;
;;;2740       return(errorstatus);
;;;2741     }
;;;2742   
;;;2743     /*!< Clear all the static flags */
;;;2744     SDIO_ClearFlag(SDIO_STATIC_FLAGS);
;;;2745   
;;;2746   
;;;2747     /*!< We have received response, retrieve it for analysis  */
;;;2748     respR1 = SDIO_GetResponse(SDIO_RESP1);
;;;2749   
;;;2750     /*!< Find out card status */
;;;2751     *pstatus = (uint8_t) ((respR1 >> 9) & 0x0000000F);
;;;2752   
;;;2753     if ((respR1 & SD_OCR_ERRORBITS) == SD_ALLZERO)
;;;2754     {
;;;2755       return(errorstatus);
;;;2756     }
;;;2757   
;;;2758     if (respR1 & SD_OCR_ADDR_OUT_OF_RANGE)
;;;2759     {
;;;2760       return(SD_ADDR_OUT_OF_RANGE);
;;;2761     }
;;;2762   
;;;2763     if (respR1 & SD_OCR_ADDR_MISALIGNED)
;;;2764     {
;;;2765       return(SD_ADDR_MISALIGNED);
;;;2766     }
;;;2767   
;;;2768     if (respR1 & SD_OCR_BLOCK_LEN_ERR)
;;;2769     {
;;;2770       return(SD_BLOCK_LEN_ERR);
;;;2771     }
;;;2772   
;;;2773     if (respR1 & SD_OCR_ERASE_SEQ_ERR)
;;;2774     {
;;;2775       return(SD_ERASE_SEQ_ERR);
;;;2776     }
;;;2777   
;;;2778     if (respR1 & SD_OCR_BAD_ERASE_PARAM)
;;;2779     {
;;;2780       return(SD_BAD_ERASE_PARAM);
;;;2781     }
;;;2782   
;;;2783     if (respR1 & SD_OCR_WRITE_PROT_VIOLATION)
;;;2784     {
;;;2785       return(SD_WRITE_PROT_VIOLATION);
;;;2786     }
;;;2787   
;;;2788     if (respR1 & SD_OCR_LOCK_UNLOCK_FAILED)
;;;2789     {
;;;2790       return(SD_LOCK_UNLOCK_FAILED);
;;;2791     }
;;;2792   
;;;2793     if (respR1 & SD_OCR_COM_CRC_FAILED)
;;;2794     {
;;;2795       return(SD_COM_CRC_FAILED);
;;;2796     }
;;;2797   
;;;2798     if (respR1 & SD_OCR_ILLEGAL_CMD)
;;;2799     {
;;;2800       return(SD_ILLEGAL_CMD);
;;;2801     }
;;;2802   
;;;2803     if (respR1 & SD_OCR_CARD_ECC_FAILED)
;;;2804     {
;;;2805       return(SD_CARD_ECC_FAILED);
;;;2806     }
;;;2807   
;;;2808     if (respR1 & SD_OCR_CC_ERROR)
;;;2809     {
;;;2810       return(SD_CC_ERROR);
;;;2811     }
;;;2812   
;;;2813     if (respR1 & SD_OCR_GENERAL_UNKNOWN_ERROR)
;;;2814     {
;;;2815       return(SD_GENERAL_UNKNOWN_ERROR);
;;;2816     }
;;;2817   
;;;2818     if (respR1 & SD_OCR_STREAM_READ_UNDERRUN)
;;;2819     {
;;;2820       return(SD_STREAM_READ_UNDERRUN);
;;;2821     }
;;;2822   
;;;2823     if (respR1 & SD_OCR_STREAM_WRITE_OVERRUN)
;;;2824     {
;;;2825       return(SD_STREAM_WRITE_OVERRUN);
;;;2826     }
;;;2827   
;;;2828     if (respR1 & SD_OCR_CID_CSD_OVERWRIETE)
;;;2829     {
;;;2830       return(SD_CID_CSD_OVERWRITE);
;;;2831     }
;;;2832   
;;;2833     if (respR1 & SD_OCR_WP_ERASE_SKIP)
;;;2834     {
;;;2835       return(SD_WP_ERASE_SKIP);
;;;2836     }
;;;2837   
;;;2838     if (respR1 & SD_OCR_CARD_ECC_DISABLED)
;;;2839     {
;;;2840       return(SD_CARD_ECC_DISABLED);
;;;2841     }
;;;2842   
;;;2843     if (respR1 & SD_OCR_ERASE_RESET)
;;;2844     {
;;;2845       return(SD_ERASE_RESET);
;;;2846     }
;;;2847   
;;;2848     if (respR1 & SD_OCR_AKE_SEQ_ERROR)
;;;2849     {
;;;2850       return(SD_AKE_SEQ_ERROR);
;;;2851     }
;;;2852   
;;;2853     return(errorstatus);
;;;2854   }
00004e  e8bd81f0          POP      {r4-r8,pc}
                  |L8.82|
000052  f0150f01          TST      r5,#1                 ;2727
000056  d005              BEQ      |L8.100|
000058  2701              MOVS     r7,#1                 ;2729
00005a  2001              MOVS     r0,#1                 ;2730
00005c  f7fffffe          BL       SDIO_ClearFlag
000060  4638              MOV      r0,r7                 ;2731
000062  e7f4              B        |L8.78|
                  |L8.100|
000064  f7fffffe          BL       SDIO_GetCommandResponse
000068  4605              MOV      r5,r0                 ;2734
00006a  2d0d              CMP      r5,#0xd               ;2737
00006c  d002              BEQ      |L8.116|
00006e  2710              MOVS     r7,#0x10              ;2739
000070  4638              MOV      r0,r7                 ;2740
000072  e7ec              B        |L8.78|
                  |L8.116|
000074  f24050ff          MOV      r0,#0x5ff             ;2744
000078  f7fffffe          BL       SDIO_ClearFlag
00007c  2000              MOVS     r0,#0                 ;2748
00007e  f7fffffe          BL       SDIO_GetResponse
000082  4604              MOV      r4,r0                 ;2748
000084  f3c42043          UBFX     r0,r4,#9,#4           ;2751
000088  7030              STRB     r0,[r6,#0]            ;2751
00008a  4836              LDR      r0,|L8.356|
00008c  4204              TST      r4,r0                 ;2753
00008e  d101              BNE      |L8.148|
000090  4638              MOV      r0,r7                 ;2755
000092  e7dc              B        |L8.78|
                  |L8.148|
000094  f0144f00          TST      r4,#0x80000000        ;2758
000098  d001              BEQ      |L8.158|
00009a  201c              MOVS     r0,#0x1c              ;2760
00009c  e7d7              B        |L8.78|
                  |L8.158|
00009e  f0144f80          TST      r4,#0x40000000        ;2763
0000a2  d001              BEQ      |L8.168|
0000a4  2009              MOVS     r0,#9                 ;2765
0000a6  e7d2              B        |L8.78|
                  |L8.168|
0000a8  f0145f00          TST      r4,#0x20000000        ;2768

⌨️ 快捷键说明

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