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

📄 stm32f10x_sdio.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 5 页
字号:
    274          * Return         : None 
    275          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    276          void SDIO_ITConfig(u32 SDIO_IT, FunctionalState NewState)
    277          {
    278            /* Check the parameters */
    279            assert_param(IS_SDIO_IT(SDIO_IT));
    280            assert_param(IS_FUNCTIONAL_STATE(NewState));
    281            
    282            if (NewState != DISABLE)
   \                     SDIO_ITConfig:
   \   00000000   044A               LDR.N    R2,??SDIO_ITConfig_0  ;; 0x4001803c
   \   00000002   0029               CMP      R1,#+0
   \   00000004   1168               LDR      R1,[R2, #+0]
   \   00000006   02D0               BEQ.N    ??SDIO_ITConfig_1
    283            {
    284              /* Enable the SDIO interrupts */
    285              SDIO->MASK |= SDIO_IT;
   \   00000008   0843               ORRS     R0,R0,R1
   \   0000000A   1060               STR      R0,[R2, #+0]
   \   0000000C   7047               BX       LR
    286            }
    287            else
    288            {
    289              /* Disable the SDIO interrupts */
    290              SDIO->MASK &= ~SDIO_IT;
   \                     ??SDIO_ITConfig_1:
   \   0000000E   8143               BICS     R1,R1,R0
   \   00000010   1160               STR      R1,[R2, #+0]
    291            } 
    292          }
   \   00000012   7047               BX       LR               ;; return
   \                     ??SDIO_ITConfig_0:
   \   00000014   3C800140           DC32     0x4001803c
    293          
    294          /*******************************************************************************
    295          * Function Name  : SDIO_DMACmd
    296          * Description    : Enables or disables the SDIO DMA request.
    297          * Input          : NewState: new state of the selected SDIO DMA request.
    298          *                  This parameter can be: ENABLE or DISABLE.
    299          * Output         : None
    300          * Return         : None
    301          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    302          void SDIO_DMACmd(FunctionalState NewState)
    303          {
    304            /* Check the parameters */
    305            assert_param(IS_FUNCTIONAL_STATE(NewState));
    306            
    307            *(vu32 *) DCTRL_DMAEN_BB = (u32)NewState;
   \                     SDIO_DMACmd:
   \   00000000   0149               LDR.N    R1,??SDIO_DMACmd_0  ;; 0x4230058c
   \   00000002   0860               STR      R0,[R1, #+0]
    308          }
   \   00000004   7047               BX       LR               ;; return
   \   00000006   00BF               Nop      
   \                     ??SDIO_DMACmd_0:
   \   00000008   8C053042           DC32     0x4230058c
    309          
    310          /*******************************************************************************
    311          * Function Name  : SDIO_SendCommand
    312          * Description    : Initializes the SDIO Command according to the specified 
    313          *                  parameters in the SDIO_CmdInitStruct and send the command.
    314          * Input          : SDIO_CmdInitStruct : pointer to a SDIO_CmdInitTypeDef 
    315          *                  structure that contains the configuration information 
    316          *                  for the SDIO command.
    317          * Output         : None
    318          * Return         : None
    319          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    320          void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct)
    321          {
    322            u32 tmpreg = 0;
    323            
    324            /* Check the parameters */
    325            assert_param(IS_SDIO_CMD_INDEX(SDIO_CmdInitStruct->SDIO_CmdIndex));
    326            assert_param(IS_SDIO_RESPONSE(SDIO_CmdInitStruct->SDIO_Response));
    327            assert_param(IS_SDIO_WAIT(SDIO_CmdInitStruct->SDIO_Wait));
    328            assert_param(IS_SDIO_CPSM(SDIO_CmdInitStruct->SDIO_CPSM));
    329            
    330          /*---------------------------- SDIO ARG Configuration ------------------------*/
    331            /* Set the SDIO Argument value */
    332            SDIO->ARG = SDIO_CmdInitStruct->SDIO_Argument;
   \                     SDIO_SendCommand:
   \   00000000   0849               LDR.N    R1,??SDIO_SendCommand_0  ;; 0x40018008
   \   00000002   0268               LDR      R2,[R0, #+0]
   \   00000004   0A60               STR      R2,[R1, #+0]
    333            
    334          /*---------------------------- SDIO CMD Configuration ------------------------*/  
    335            /* Get the SDIO CMD value */
    336            tmpreg = SDIO->CMD;
   \   00000006   091D               ADDS     R1,R1,#+4
   \   00000008   0A68               LDR      R2,[R1, #+0]
    337          
    338            /* Clear CMDINDEX, WAITRESP, WAITINT, WAITPEND, CPSMEN bits */
    339            tmpreg &= CMD_CLEAR_MASK;
    340            /* Set CMDINDEX bits according to SDIO_CmdIndex value */
    341            /* Set WAITRESP bits according to SDIO_Response value */
    342            /* Set WAITINT and WAITPEND bits according to SDIO_Wait value */
    343            /* Set CPSMEN bits according to SDIO_CPSM value */
    344            tmpreg |= (u32)SDIO_CmdInitStruct->SDIO_CmdIndex | SDIO_CmdInitStruct->SDIO_Response
    345                     | SDIO_CmdInitStruct->SDIO_Wait | SDIO_CmdInitStruct->SDIO_CPSM;
    346            
    347            /* Write to SDIO CMD */
    348            SDIO->CMD = tmpreg;
   \   0000000A   D20A               LSRS     R2,R2,#+11
   \   0000000C   D202               LSLS     R2,R2,#+11
   \   0000000E   4368               LDR      R3,[R0, #+4]
   \   00000010   1343               ORRS     R3,R3,R2
   \   00000012   8268               LDR      R2,[R0, #+8]
   \   00000014   1A43               ORRS     R2,R2,R3
   \   00000016   C368               LDR      R3,[R0, #+12]
   \   00000018   1343               ORRS     R3,R3,R2
   \   0000001A   0069               LDR      R0,[R0, #+16]
   \   0000001C   1843               ORRS     R0,R0,R3
   \   0000001E   0860               STR      R0,[R1, #+0]
    349          }
   \   00000020   7047               BX       LR               ;; return
   \   00000022   00BF               Nop      
   \                     ??SDIO_SendCommand_0:
   \   00000024   08800140           DC32     0x40018008
    350          
    351          /*******************************************************************************
    352          * Function Name  : SDIO_CmdStructInit
    353          * Description    : Fills each SDIO_CmdInitStruct member with its default value.
    354          * Input          : SDIO_CmdInitStruct: pointer to an SDIO_CmdInitTypeDef 
    355          *                  structure which will be initialized.
    356          * Output         : None
    357          * Return         : None
    358          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    359          void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct)
    360          {
    361            /* SDIO_CmdInitStruct members default value */
    362            SDIO_CmdInitStruct->SDIO_Argument = 0x00;
   \                     SDIO_CmdStructInit:
   \   00000000   0021               MOVS     R1,#+0
   \   00000002   0160               STR      R1,[R0, #+0]
    363            SDIO_CmdInitStruct->SDIO_CmdIndex = 0x00;
   \   00000004   4160               STR      R1,[R0, #+4]
    364            SDIO_CmdInitStruct->SDIO_Response = SDIO_Response_No;
   \   00000006   8160               STR      R1,[R0, #+8]
    365            SDIO_CmdInitStruct->SDIO_Wait = SDIO_Wait_No;
   \   00000008   C160               STR      R1,[R0, #+12]
    366            SDIO_CmdInitStruct->SDIO_CPSM = SDIO_CPSM_Disable;
   \   0000000A   0161               STR      R1,[R0, #+16]
    367          }
   \   0000000C   7047               BX       LR               ;; return
    368          
    369          /*******************************************************************************
    370          * Function Name  : SDIO_GetCommandResponse
    371          * Description    : Returns command index of last command for which response 
    372          *                  received.
    373          * Input          : None
    374          * Output         : None
    375          * Return         : Returns the command index of the last command response received.
    376          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    377          u8 SDIO_GetCommandResponse(void)
    378          {
    379            return (u8)(SDIO->RESPCMD);
   \                     SDIO_GetCommandResponse:
   \   00000000   0148               LDR.N    R0,??SDIO_GetCommandResponse_0  ;; 0x40018010
   \   00000002   0068               LDR      R0,[R0, #+0]
   \   00000004   C0B2               UXTB     R0,R0
   \   00000006   7047               BX       LR               ;; return
   \                     ??SDIO_GetCommandResponse_0:
   \   00000008   10800140           DC32     0x40018010
    380          }
    381          
    382          /*******************************************************************************
    383          * Function Name  : SDIO_GetResponse
    384          * Description    : Returns response received from the card for the last command.
    385          * Input          : - SDIO_RESP: Specifies the SDIO response register. 
    386          *                     This parameter can be one of the following values:
    387          *                       - SDIO_RESP1: Response Register 1
    388          *                       - SDIO_RESP2: Response Register 2
    389          *                       - SDIO_RESP3: Response Register 3
    390          *                       - SDIO_RESP4: Response Register 4                       
    391          * Output         : None
    392          * Return         : The Corresponding response register value.
    393          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    394          u32 SDIO_GetResponse(u32 SDIO_RESP)
    395          {
    396            /* Check the parameters */
    397            assert_param(IS_SDIO_RESP(SDIO_RESP));
    398            
    399            return (*(vu32 *)(SDIO_RESP_ADDR + SDIO_RESP)); 
   \                     SDIO_GetResponse:
   \   00000000   0149               LDR.N    R1,??SDIO_GetResponse_0  ;; 0x40018014
   \   00000002   4058               LDR      R0,[R0, R1]
   \   00000004   7047               BX       LR               ;; return
   \   00000006   00BF               Nop      
   \                     ??SDIO_GetResponse_0:
   \   00000008   14800140           DC32     0x40018014
    400          }
    401          
    402          /*******************************************************************************
    403          * Function Name  : SDIO_DataConfig
    404          * Description    : Initializes the SDIO data path according to the specified 
    405          *                  parameters in the SDIO_DataInitStruct.
    406          * Input          : SDIO_DataInitStruct : pointer to a SDIO_DataInitTypeDef 
    407          *                  structure that contains the configuration information 
    408          *                  for the SDIO command.
    409          * Output         : None

⌨️ 快捷键说明

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