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

📄 stm32f10x_sdio.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
    315              SDIO->MASK |= SDIO_IT;
   \   00000006   ....               LDR.N    R2,??DataTable26_9  ;; 0x4001803c
   \   00000008   1268               LDR      R2,[R2, #+0]
   \   0000000A   0243               ORRS     R2,R0,R2
   \   0000000C   ....               LDR.N    R3,??DataTable26_9  ;; 0x4001803c
   \   0000000E   1A60               STR      R2,[R3, #+0]
   \   00000010   04E0               B.N      ??SDIO_ITConfig_1
    316            }
    317            else
    318            {
    319              /* Disable the SDIO interrupts */
    320              SDIO->MASK &= ~SDIO_IT;
   \                     ??SDIO_ITConfig_0:
   \   00000012   ....               LDR.N    R2,??DataTable26_9  ;; 0x4001803c
   \   00000014   1268               LDR      R2,[R2, #+0]
   \   00000016   8243               BICS     R2,R2,R0
   \   00000018   ....               LDR.N    R3,??DataTable26_9  ;; 0x4001803c
   \   0000001A   1A60               STR      R2,[R3, #+0]
    321            } 
    322          }
   \                     ??SDIO_ITConfig_1:
   \   0000001C   7047               BX       LR               ;; return
    323          
    324          /**
    325            * @brief  Enables or disables the SDIO DMA request.
    326            * @param  NewState: new state of the selected SDIO DMA request.
    327            *   This parameter can be: ENABLE or DISABLE.
    328            * @retval None
    329            */

   \                                 In section .text, align 2, keep-with-next
    330          void SDIO_DMACmd(FunctionalState NewState)
    331          {
    332            /* Check the parameters */
    333            assert_param(IS_FUNCTIONAL_STATE(NewState));
    334            
    335            *(__IO uint32_t *) DCTRL_DMAEN_BB = (uint32_t)NewState;
   \                     SDIO_DMACmd:
   \   00000000   ....               LDR.N    R1,??DataTable26_12  ;; 0x4230058c
   \   00000002   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000004   0860               STR      R0,[R1, #+0]
    336          }
   \   00000006   7047               BX       LR               ;; return
    337          
    338          /**
    339            * @brief  Initializes the SDIO Command according to the specified 
    340            *   parameters in the SDIO_CmdInitStruct and send the command.
    341            * @param  SDIO_CmdInitStruct : pointer to a SDIO_CmdInitTypeDef 
    342            *   structure that contains the configuration information for the SDIO command.
    343            * @retval None
    344            */

   \                                 In section .text, align 2, keep-with-next
    345          void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct)
    346          {
    347            uint32_t tmpreg = 0;
   \                     SDIO_SendCommand:
   \   00000000   0021               MOVS     R1,#+0
    348            
    349            /* Check the parameters */
    350            assert_param(IS_SDIO_CMD_INDEX(SDIO_CmdInitStruct->SDIO_CmdIndex));
    351            assert_param(IS_SDIO_RESPONSE(SDIO_CmdInitStruct->SDIO_Response));
    352            assert_param(IS_SDIO_WAIT(SDIO_CmdInitStruct->SDIO_Wait));
    353            assert_param(IS_SDIO_CPSM(SDIO_CmdInitStruct->SDIO_CPSM));
    354            
    355          /*---------------------------- SDIO ARG Configuration ------------------------*/
    356            /* Set the SDIO Argument value */
    357            SDIO->ARG = SDIO_CmdInitStruct->SDIO_Argument;
   \   00000002   ....               LDR.N    R2,??DataTable26_2  ;; 0x40018008
   \   00000004   0368               LDR      R3,[R0, #+0]
   \   00000006   1360               STR      R3,[R2, #+0]
    358            
    359          /*---------------------------- SDIO CMD Configuration ------------------------*/  
    360            /* Get the SDIO CMD value */
    361            tmpreg = SDIO->CMD;
   \   00000008   ....               LDR.N    R2,??DataTable26_3  ;; 0x4001800c
   \   0000000A   1268               LDR      R2,[R2, #+0]
   \   0000000C   1100               MOVS     R1,R2
    362            /* Clear CMDINDEX, WAITRESP, WAITINT, WAITPEND, CPSMEN bits */
    363            tmpreg &= CMD_CLEAR_MASK;
   \   0000000E   C90A               LSRS     R1,R1,#+11
   \   00000010   C902               LSLS     R1,R1,#+11
    364            /* Set CMDINDEX bits according to SDIO_CmdIndex value */
    365            /* Set WAITRESP bits according to SDIO_Response value */
    366            /* Set WAITINT and WAITPEND bits according to SDIO_Wait value */
    367            /* Set CPSMEN bits according to SDIO_CPSM value */
    368            tmpreg |= (uint32_t)SDIO_CmdInitStruct->SDIO_CmdIndex | SDIO_CmdInitStruct->SDIO_Response
    369                     | SDIO_CmdInitStruct->SDIO_Wait | SDIO_CmdInitStruct->SDIO_CPSM;
   \   00000012   4268               LDR      R2,[R0, #+4]
   \   00000014   8368               LDR      R3,[R0, #+8]
   \   00000016   1A43               ORRS     R2,R3,R2
   \   00000018   C368               LDR      R3,[R0, #+12]
   \   0000001A   1A43               ORRS     R2,R3,R2
   \   0000001C   0369               LDR      R3,[R0, #+16]
   \   0000001E   1A43               ORRS     R2,R3,R2
   \   00000020   1143               ORRS     R1,R2,R1
    370            
    371            /* Write to SDIO CMD */
    372            SDIO->CMD = tmpreg;
   \   00000022   ....               LDR.N    R2,??DataTable26_3  ;; 0x4001800c
   \   00000024   1160               STR      R1,[R2, #+0]
    373          }
   \   00000026   7047               BX       LR               ;; return
    374          
    375          /**
    376            * @brief  Fills each SDIO_CmdInitStruct member with its default value.
    377            * @param  SDIO_CmdInitStruct: pointer to an SDIO_CmdInitTypeDef 
    378            *   structure which will be initialized.
    379            * @retval None
    380            */

   \                                 In section .text, align 2, keep-with-next
    381          void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct)
    382          {
    383            /* SDIO_CmdInitStruct members default value */
    384            SDIO_CmdInitStruct->SDIO_Argument = 0x00;
   \                     SDIO_CmdStructInit:
   \   00000000   0021               MOVS     R1,#+0
   \   00000002   0160               STR      R1,[R0, #+0]
    385            SDIO_CmdInitStruct->SDIO_CmdIndex = 0x00;
   \   00000004   0021               MOVS     R1,#+0
   \   00000006   4160               STR      R1,[R0, #+4]
    386            SDIO_CmdInitStruct->SDIO_Response = SDIO_Response_No;
   \   00000008   0021               MOVS     R1,#+0
   \   0000000A   8160               STR      R1,[R0, #+8]
    387            SDIO_CmdInitStruct->SDIO_Wait = SDIO_Wait_No;
   \   0000000C   0021               MOVS     R1,#+0
   \   0000000E   C160               STR      R1,[R0, #+12]
    388            SDIO_CmdInitStruct->SDIO_CPSM = SDIO_CPSM_Disable;
   \   00000010   0021               MOVS     R1,#+0
   \   00000012   0161               STR      R1,[R0, #+16]
    389          }
   \   00000014   7047               BX       LR               ;; return
    390          
    391          /**
    392            * @brief  Returns command index of last command for which response received.
    393            * @param  None
    394            * @retval Returns the command index of the last command response received.
    395            */

   \                                 In section .text, align 2, keep-with-next
    396          uint8_t SDIO_GetCommandResponse(void)
    397          {
    398            return (uint8_t)(SDIO->RESPCMD);
   \                     SDIO_GetCommandResponse:
   \   00000000   ....               LDR.N    R0,??DataTable26_13  ;; 0x40018010
   \   00000002   0068               LDR      R0,[R0, #+0]
   \   00000004   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   00000006   7047               BX       LR               ;; return
    399          }
    400          
    401          /**
    402            * @brief  Returns response received from the card for the last command.
    403            * @param  SDIO_RESP: Specifies the SDIO response register. 
    404            *   This parameter can be one of the following values:
    405            *     @arg SDIO_RESP1: Response Register 1
    406            *     @arg SDIO_RESP2: Response Register 2
    407            *     @arg SDIO_RESP3: Response Register 3
    408            *     @arg SDIO_RESP4: Response Register 4
    409            * @retval The Corresponding response register value.
    410            */

   \                                 In section .text, align 2, keep-with-next
    411          uint32_t SDIO_GetResponse(uint32_t SDIO_RESP)
    412          {
   \                     SDIO_GetResponse:
   \   00000000   81B0               SUB      SP,SP,#+4
   \   00000002   0100               MOVS     R1,R0
    413            __IO uint32_t tmp = 0;
   \   00000004   0020               MOVS     R0,#+0
   \   00000006   0090               STR      R0,[SP, #+0]
    414          
    415            /* Check the parameters */
    416            assert_param(IS_SDIO_RESP(SDIO_RESP));
    417          
    418            tmp = SDIO_RESP_ADDR + SDIO_RESP;
   \   00000008   ....               LDR.N    R0,??DataTable26_14  ;; 0x40018014
   \   0000000A   4018               ADDS     R0,R0,R1
   \   0000000C   0090               STR      R0,[SP, #+0]
    419            
    420            return (*(__IO uint32_t *) tmp); 
   \   0000000E   0098               LDR      R0,[SP, #+0]
   \   00000010   0068               LDR      R0,[R0, #+0]
   \   00000012   01B0               ADD      SP,SP,#+4
   \   00000014   7047               BX       LR               ;; return
    421          }
    422          
    423          /**
    424            * @brief  Initializes the SDIO data path according to the specified 
    425            *   parameters in the SDIO_DataInitStruct.
    426            * @param  SDIO_DataInitStruct : pointer to a SDIO_DataInitTypeDef structure that
    427            *   contains the configuration information for the SDIO command.
    428            * @retval None
    429            */

   \                                 In section .text, align 2, keep-with-next
    430          void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
    431          {
    432            uint32_t tmpreg = 0;
   \                     SDIO_DataConfig:
   \   00000000   0021               MOVS     R1,#+0
    433            
    434            /* Check the parameters */
    435            assert_param(IS_SDIO_DATA_LENGTH(SDIO_DataInitStruct->SDIO_DataLength));
    436            assert_param(IS_SDIO_BLOCK_SIZE(SDIO_DataInitStruct->SDIO_DataBlockSize));
    437            assert_param(IS_SDIO_TRANSFER_DIR(SDIO_DataInitStruct->SDIO_TransferDir));
    438            assert_param(IS_SDIO_TRANSFER_MODE(SDIO_DataInitStruct->SDIO_TransferMode));
    439            assert_param(IS_SDIO_DPSM(SDIO_DataInitStruct->SDIO_DPSM));
    440          
    441          /*---------------------------- SDIO DTIMER Configuration ---------------------*/
    442            /* Set the SDIO Data TimeOut value */
    443            SDIO->DTIMER = SDIO_DataInitStruct->SDIO_DataTimeOut;
   \   00000002   ....               LDR.N    R2,??DataTable26_4  ;; 0x40018024
   \   00000004   0368               LDR      R3,[R0, #+0]
   \   00000006   1360               STR      R3,[R2, #+0]
    444          
    445          /*---------------------------- SDIO DLEN Configuration -----------------------*/
    446            /* Set the SDIO DataLength value */
    447            SDIO->DLEN = SDIO_DataInitStruct->SDIO_DataLength;
   \   00000008   4268               LDR      R2,[R0, #+4]
   \   0000000A   ....               LDR.N    R3,??DataTable26_5  ;; 0x40018028
   \   0000000C   1A60               STR      R2,[R3, #+0]
    448          
    449          /*---------------------------- SDIO DCTRL Configuration ----------------------*/  
    450            /* Get the SDIO DCTRL value */
    451            tmpreg = SDIO->DCTRL;
   \   0000000E   ....               LDR.N    R2,??DataTable26_6  ;; 0x4001802c
   \   00000010   1268               LDR      R2,[R2, #+0]
   \   00000012   1100               MOVS     R1,R2
    452            /* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits */
    453            tmpreg &= DCTRL_CLEAR_MASK;
   \   00000014   31F0F701           BICS     R1,R1,#0xF7
    454            /* Set DEN bit according to SDIO_DPSM value */

⌨️ 快捷键说明

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