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

📄 stm32f10x_sdio.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;429    /*---------------------------- SDIO DCTRL Configuration ----------------------*/  
;;;430      /* Get the SDIO DCTRL value */
;;;431      tmpreg = SDIO->DCTRL;
00000c  6aca              LDR      r2,[r1,#0x2c]
;;;432    
;;;433      /* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits */
;;;434      tmpreg &= DCTRL_CLEAR_MASK;
;;;435      /* Set DEN bit according to SDIO_DPSM value */
;;;436      /* Set DTMODE bit according to SDIO_TransferMode value */
;;;437      /* Set DTDIR bit according to SDIO_TransferDir value */
;;;438      /* Set DBCKSIZE bits according to SDIO_DataBlockSize value */
;;;439      tmpreg |= (u32)SDIO_DataInitStruct->SDIO_DataBlockSize | SDIO_DataInitStruct->SDIO_TransferDir
00000e  e9d0e9d0          LDRD     r5,r4,[r0,#0xc]
000012  6883              LDR      r3,[r0,#8]
000014  6940              LDR      r0,[r0,#0x14]
000016  432b              ORRS     r3,r3,r5
000018  4304              ORRS     r4,r4,r0
00001a  f022f022          BIC      r2,r2,#0xf7           ;434
00001e  4323              ORRS     r3,r3,r4
000020  4313              ORRS     r3,r3,r2
;;;440               | SDIO_DataInitStruct->SDIO_TransferMode | SDIO_DataInitStruct->SDIO_DPSM;
;;;441      
;;;442      /* Write to SDIO DCTRL */
;;;443      SDIO->DCTRL = tmpreg;
000022  62cb              STR      r3,[r1,#0x2c]
;;;444    }
000024  bd30              POP      {r4,r5,pc}
;;;445    
                          ENDP

000026  0000              DCW      0x0000
                  |L13.40|
000028  40018000          DCD      0x40018000

                          AREA ||i.SDIO_DataStructInit||, CODE, READONLY, ALIGN=1

                  SDIO_DataStructInit PROC
;;;456      /* SDIO_DataInitStruct members default value */
;;;457      SDIO_DataInitStruct->SDIO_DataTimeOut = 0xFFFFFFFF;
000000  f04ff04f          MOV      r1,#0xffffffff
;;;458      SDIO_DataInitStruct->SDIO_DataLength = 0x00;
000004  6001              STR      r1,[r0,#0]
000006  2100              MOVS     r1,#0
;;;459      SDIO_DataInitStruct->SDIO_DataBlockSize = SDIO_DataBlockSize_1b;
000008  6041              STR      r1,[r0,#4]
;;;460      SDIO_DataInitStruct->SDIO_TransferDir = SDIO_TransferDir_ToCard;
00000a  6081              STR      r1,[r0,#8]
;;;461      SDIO_DataInitStruct->SDIO_TransferMode = SDIO_TransferMode_Block;  
00000c  60c1              STR      r1,[r0,#0xc]
;;;462      SDIO_DataInitStruct->SDIO_DPSM = SDIO_DPSM_Disable;
00000e  6101              STR      r1,[r0,#0x10]
;;;463    }
000010  6141              STR      r1,[r0,#0x14]
000012  4770              BX       lr
;;;464    
                          ENDP


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

                  SDIO_GetDataCounter PROC
;;;473    { 
;;;474      return SDIO->DCOUNT;
000000  4801              LDR      r0,|L15.8|
000002  6b00              LDR      r0,[r0,#0x30]
;;;475    }
000004  4770              BX       lr
;;;476    
                          ENDP

000006  0000              DCW      0x0000
                  |L15.8|
000008  40018000          DCD      0x40018000

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

                  SDIO_ReadData PROC
;;;484    u32 SDIO_ReadData(void)
;;;485    { 
000000  4801              LDR      r0,|L16.8|
;;;486      return SDIO->FIFO;
000002  6800              LDR      r0,[r0,#0]
;;;487    }
000004  4770              BX       lr
;;;488    
                          ENDP

000006  0000              DCW      0x0000
                  |L16.8|
000008  40018080          DCD      0x40018080

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

                  SDIO_WriteData PROC
;;;496    void SDIO_WriteData(u32 Data)
;;;497    { 
000000  4901              LDR      r1,|L17.8|
;;;498      SDIO->FIFO = Data;
000002  6008              STR      r0,[r1,#0]
;;;499    }
000004  4770              BX       lr
;;;500    
                          ENDP

000006  0000              DCW      0x0000
                  |L17.8|
000008  40018080          DCD      0x40018080

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

                  SDIO_GetFIFOCount PROC
;;;510    { 
;;;511      return SDIO->FIFOCNT;
000000  4801              LDR      r0,|L18.8|
000002  6c80              LDR      r0,[r0,#0x48]
;;;512    }
000004  4770              BX       lr
;;;513    
                          ENDP

000006  0000              DCW      0x0000
                  |L18.8|
000008  40018000          DCD      0x40018000

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

                  SDIO_StartSDIOReadWait PROC
;;;522    void SDIO_StartSDIOReadWait(FunctionalState NewState)
;;;523    { 
000000  4901              LDR      r1,|L19.8|
;;;524      /* Check the parameters */
;;;525      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;526      
;;;527      *(vu32 *) DCTRL_RWSTART_BB = (u32) NewState;
000002  6008              STR      r0,[r1,#0]
;;;528    }
000004  4770              BX       lr
;;;529    
                          ENDP

000006  0000              DCW      0x0000
                  |L19.8|
000008  423005a0          DCD      0x423005a0

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

                  SDIO_StopSDIOReadWait PROC
;;;538    void SDIO_StopSDIOReadWait(FunctionalState NewState)
;;;539    { 
000000  4901              LDR      r1,|L20.8|
;;;540      /* Check the parameters */
;;;541      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;542      
;;;543      *(vu32 *) DCTRL_RWSTOP_BB = (u32) NewState;
000002  6008              STR      r0,[r1,#0]
;;;544    }
000004  4770              BX       lr
;;;545    
                          ENDP

000006  0000              DCW      0x0000
                  |L20.8|
000008  423005a4          DCD      0x423005a4

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

                  SDIO_SetSDIOReadWaitMode PROC
;;;556    void SDIO_SetSDIOReadWaitMode(u32 SDIO_ReadWaitMode)
;;;557    {
000000  4901              LDR      r1,|L21.8|
;;;558      /* Check the parameters */
;;;559      assert_param(IS_SDIO_READWAIT_MODE(SDIO_ReadWaitMode));
;;;560      
;;;561      *(vu32 *) DCTRL_RWMOD_BB = SDIO_ReadWaitMode;
000002  6008              STR      r0,[r1,#0]
;;;562    }
000004  4770              BX       lr
;;;563    
                          ENDP

000006  0000              DCW      0x0000
                  |L21.8|
000008  423005a8          DCD      0x423005a8

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

                  SDIO_SetSDIOOperation PROC
;;;572    void SDIO_SetSDIOOperation(FunctionalState NewState)
;;;573    { 
000000  4901              LDR      r1,|L22.8|
;;;574      /* Check the parameters */
;;;575      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;576      
;;;577      *(vu32 *) DCTRL_SDIOEN_BB = (u32)NewState;
000002  6008              STR      r0,[r1,#0]
;;;578    }
000004  4770              BX       lr
;;;579    
                          ENDP

000006  0000              DCW      0x0000
                  |L22.8|
000008  423005ac          DCD      0x423005ac

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

                  SDIO_SendSDIOSuspendCmd PROC
;;;588    void SDIO_SendSDIOSuspendCmd(FunctionalState NewState)
;;;589    { 
000000  4901              LDR      r1,|L23.8|
;;;590      /* Check the parameters */
;;;591      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;592      
;;;593      *(vu32 *) CMD_SDIOSUSPEND_BB = (u32)NewState;
000002  6008              STR      r0,[r1,#0]
;;;594    }
000004  4770              BX       lr
;;;595    
                          ENDP

000006  0000              DCW      0x0000
                  |L23.8|
000008  423001ac          DCD      0x423001ac

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

                  SDIO_CommandCompletionCmd PROC
;;;604    void SDIO_CommandCompletionCmd(FunctionalState NewState)
;;;605    { 
000000  4901              LDR      r1,|L24.8|
;;;606      /* Check the parameters */
;;;607      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;608      
;;;609      *(vu32 *) CMD_ENCMDCOMPL_BB = (u32)NewState;
000002  6008              STR      r0,[r1,#0]
;;;610    }
000004  4770              BX       lr
;;;611    
                          ENDP

000006  0000              DCW      0x0000
                  |L24.8|
000008  423001b0          DCD      0x423001b0

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

                  SDIO_CEATAITCmd PROC
;;;624      
;;;625      *(vu32 *) CMD_NIEN_BB = (u32)((~((u32)NewState)) & ((u32)0x1));
000000  2101              MOVS     r1,#1
000002  4381              BICS     r1,r1,r0
000004  4801              LDR      r0,|L25.12|
000006  6001              STR      r1,[r0,#0]
;;;626    }
000008  4770              BX       lr
;;;627    
                          ENDP

00000a  0000              DCW      0x0000
                  |L25.12|
00000c  423001b4          DCD      0x423001b4

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

                  SDIO_SendCEATACmd PROC
;;;636    void SDIO_SendCEATACmd(FunctionalState NewState)
;;;637    { 
000000  4901              LDR      r1,|L26.8|
;;;638      /* Check the parameters */
;;;639      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;640      
;;;641      *(vu32 *) CMD_ATACMD_BB = (u32)NewState;
000002  6008              STR      r0,[r1,#0]
;;;642    }
000004  4770              BX       lr
;;;643    
                          ENDP

000006  0000              DCW      0x0000
                  |L26.8|
000008  423001b8          DCD      0x423001b8

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

                  SDIO_GetFlagStatus PROC
;;;689      
;;;690      if ((SDIO->STA & SDIO_FLAG) != (u32)RESET)
000000  4903              LDR      r1,|L27.16|
000002  4602              MOV      r2,r0
000004  6b49              LDR      r1,[r1,#0x34]
000006  2000              MOVS     r0,#0
000008  4211              TST      r1,r2
00000a  d000              BEQ      |L27.14|
;;;691      {
;;;692        bitstatus = SET;
00000c  2001              MOVS     r0,#1
                  |L27.14|
;;;693      }
;;;694      else
;;;695      {
;;;696        bitstatus = RESET;
;;;697      }
;;;698      return bitstatus;
;;;699    }
00000e  4770              BX       lr
;;;700    
                          ENDP

                  |L27.16|
000010  40018000          DCD      0x40018000

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

                  SDIO_ClearFlag PROC
;;;734       
;;;735      SDIO->ICR = SDIO_FLAG;
000000  4901              LDR      r1,|L28.8|
000002  6388              STR      r0,[r1,#0x38]
;;;736    }
000004  4770              BX       lr
;;;737    
                          ENDP

000006  0000              DCW      0x0000
                  |L28.8|
000008  40018000          DCD      0x40018000

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

                  SDIO_GetITStatus PROC
;;;784    
;;;785      if ((SDIO->STA & SDIO_IT) != (u32)RESET)  
000000  4903              LDR      r1,|L29.16|
000002  4602              MOV      r2,r0
000004  6b49              LDR      r1,[r1,#0x34]
000006  2000              MOVS     r0,#0
000008  4211              TST      r1,r2
00000a  d000              BEQ      |L29.14|
;;;786      {
;;;787        bitstatus = SET;
00000c  2001              MOVS     r0,#1
                  |L29.14|
;;;788      }
;;;789      else
;;;790      {
;;;791        bitstatus = RESET;
;;;792      }
;;;793      return bitstatus;
;;;794    }
00000e  4770              BX       lr
;;;795    
                          ENDP

                  |L29.16|
000010  40018000          DCD      0x40018000

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

                  SDIO_ClearITPendingBit PROC
;;;828       
;;;829      SDIO->ICR = SDIO_IT;
000000  4901              LDR      r1,|L30.8|
000002  6388              STR      r0,[r1,#0x38]
;;;830    }
000004  4770              BX       lr
;;;831    
                          ENDP

000006  0000              DCW      0x0000
                  |L30.8|
000008  40018000          DCD      0x40018000

⌨️ 快捷键说明

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