📄 stm32f10x_sdio.txt
字号:
AREA ||i.SDIO_ReadData||, CODE, READONLY, ALIGN=2
SDIO_ReadData PROC
;;;483 *******************************************************************************/
;;;484 u32 SDIO_ReadData(void)
000000 4801 LDR r0,|L20.8|
;;;485 {
;;;486 return SDIO->FIFO;
000002 6800 LDR r0,[r0,#0]
;;;487 }
000004 4770 BX lr
;;;488
ENDP
000006 0000 DCW 0x0000
|L20.8|
DCD 0x40018080
AREA ||i.SDIO_SendCEATACmd||, CODE, READONLY, ALIGN=2
SDIO_SendCEATACmd PROC
;;;635 *******************************************************************************/
;;;636 void SDIO_SendCEATACmd(FunctionalState NewState)
000000 4901 LDR r1,|L21.8|
;;;637 {
;;;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
|L21.8|
DCD 0x423001b8
AREA ||i.SDIO_SendCommand||, CODE, READONLY, ALIGN=2
SDIO_SendCommand PROC
;;;317 *******************************************************************************/
;;;318 void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct)
000000 b530 PUSH {r4,r5,lr}
;;;319 {
;;;320 u32 tmpreg = 0;
;;;321
;;;322 /* Check the parameters */
;;;323 assert_param(IS_SDIO_CMD_INDEX(SDIO_CmdInitStruct->SDIO_CmdIndex));
;;;324 assert_param(IS_SDIO_RESPONSE(SDIO_CmdInitStruct->SDIO_Response));
;;;325 assert_param(IS_SDIO_WAIT(SDIO_CmdInitStruct->SDIO_Wait));
;;;326 assert_param(IS_SDIO_CPSM(SDIO_CmdInitStruct->SDIO_CPSM));
;;;327
;;;328 /*---------------------------- SDIO ARG Configuration ------------------------*/
;;;329 /* Set the SDIO Argument value */
;;;330 SDIO->ARG = SDIO_CmdInitStruct->SDIO_Argument;
000002 4908 LDR r1,|L22.36|
000004 6802 LDR r2,[r0,#0]
000006 608a STR r2,[r1,#8]
;;;331
;;;332 /*---------------------------- SDIO CMD Configuration ------------------------*/
;;;333 /* Get the SDIO CMD value */
;;;334 tmpreg = SDIO->CMD;
000008 68ca LDR r2,[r1,#0xc]
;;;335
;;;336 /* Clear CMDINDEX, WAITRESP, WAITINT, WAITPEND, CPSMEN bits */
;;;337 tmpreg &= CMD_CLEAR_MASK;
;;;338 /* Set CMDINDEX bits according to SDIO_CmdIndex value */
;;;339 /* Set WAITRESP bits according to SDIO_Response value */
;;;340 /* Set WAITINT and WAITPEND bits according to SDIO_Wait value */
;;;341 /* Set CPSMEN bits according to SDIO_CPSM value */
;;;342 tmpreg |= (u32)SDIO_CmdInitStruct->SDIO_CmdIndex | SDIO_CmdInitStruct->SDIO_Response
00000a e9d05402 LDRD r5,r4,[r0,#8]
00000e 6843 LDR r3,[r0,#4]
000010 6900 LDR r0,[r0,#0x10]
000012 432b ORRS r3,r3,r5
000014 4304 ORRS r4,r4,r0
000016 f36f020a BFC r2,#0,#11 ;337
00001a 4323 ORRS r3,r3,r4
00001c 4313 ORRS r3,r3,r2
;;;343 | SDIO_CmdInitStruct->SDIO_Wait | SDIO_CmdInitStruct->SDIO_CPSM;
;;;344
;;;345 /* Write to SDIO CMD */
;;;346 SDIO->CMD = tmpreg;
00001e 60cb STR r3,[r1,#0xc]
;;;347 }
000020 bd30 POP {r4,r5,pc}
;;;348
ENDP
000022 0000 DCW 0x0000
|L22.36|
DCD 0x40018000
AREA ||i.SDIO_SendSDIOSuspendCmd||, CODE, READONLY, ALIGN=2
SDIO_SendSDIOSuspendCmd PROC
;;;587 *******************************************************************************/
;;;588 void SDIO_SendSDIOSuspendCmd(FunctionalState NewState)
000000 4901 LDR r1,|L23.8|
;;;589 {
;;;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|
DCD 0x423001ac
AREA ||i.SDIO_SetPowerState||, CODE, READONLY, ALIGN=2
SDIO_SetPowerState PROC
;;;204 *******************************************************************************/
;;;205 void SDIO_SetPowerState(u32 SDIO_PowerState)
000000 4904 LDR r1,|L24.20|
;;;206 {
;;;207 /* Check the parameters */
;;;208 assert_param(IS_SDIO_POWER_STATE(SDIO_PowerState));
;;;209
;;;210 SDIO->POWER &= PWR_PWRCTRL_MASK;
000002 680a LDR r2,[r1,#0]
000004 f0220203 BIC r2,r2,#3
000008 600a STR r2,[r1,#0]
;;;211 SDIO->POWER |= SDIO_PowerState;
00000a 680a LDR r2,[r1,#0]
00000c 4302 ORRS r2,r2,r0
00000e 600a STR r2,[r1,#0]
;;;212 }
000010 4770 BX lr
;;;213
ENDP
000012 0000 DCW 0x0000
|L24.20|
DCD 0x40018000
AREA ||i.SDIO_SetSDIOOperation||, CODE, READONLY, ALIGN=2
SDIO_SetSDIOOperation PROC
;;;571 *******************************************************************************/
;;;572 void SDIO_SetSDIOOperation(FunctionalState NewState)
000000 4901 LDR r1,|L25.8|
;;;573 {
;;;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
|L25.8|
DCD 0x423005ac
AREA ||i.SDIO_SetSDIOReadWaitMode||, CODE, READONLY, ALIGN=2
SDIO_SetSDIOReadWaitMode PROC
;;;555 *******************************************************************************/
;;;556 void SDIO_SetSDIOReadWaitMode(u32 SDIO_ReadWaitMode)
000000 4901 LDR r1,|L26.8|
;;;557 {
;;;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
|L26.8|
DCD 0x423005a8
AREA ||i.SDIO_StartSDIOReadWait||, CODE, READONLY, ALIGN=2
SDIO_StartSDIOReadWait PROC
;;;521 *******************************************************************************/
;;;522 void SDIO_StartSDIOReadWait(FunctionalState NewState)
000000 4901 LDR r1,|L27.8|
;;;523 {
;;;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
|L27.8|
DCD 0x423005a0
AREA ||i.SDIO_StopSDIOReadWait||, CODE, READONLY, ALIGN=2
SDIO_StopSDIOReadWait PROC
;;;537 *******************************************************************************/
;;;538 void SDIO_StopSDIOReadWait(FunctionalState NewState)
000000 4901 LDR r1,|L28.8|
;;;539 {
;;;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
|L28.8|
DCD 0x423005a4
AREA ||i.SDIO_StructInit||, CODE, READONLY, ALIGN=1
SDIO_StructInit PROC
;;;167 *******************************************************************************/
;;;168 void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct)
000000 2100 MOVS r1,#0
;;;169 {
;;;170 /* SDIO_InitStruct members default value */
;;;171 SDIO_InitStruct->SDIO_ClockDiv = 0x00;
000002 7001 STRB r1,[r0,#0]
;;;172 SDIO_InitStruct->SDIO_ClockEdge = SDIO_ClockEdge_Rising;
;;;173 SDIO_InitStruct->SDIO_ClockBypass = SDIO_ClockBypass_Disable;
000004 6041 STR r1,[r0,#4]
;;;174 SDIO_InitStruct->SDIO_ClockPowerSave = SDIO_ClockPowerSave_Disable;
000006 6081 STR r1,[r0,#8]
;;;175 SDIO_InitStruct->SDIO_BusWide = SDIO_BusWide_1b;
000008 60c1 STR r1,[r0,#0xc]
;;;176 SDIO_InitStruct->SDIO_HardwareFlowControl = SDIO_HardwareFlowControl_Disable;
00000a 6101 STR r1,[r0,#0x10]
;;;177 }
00000c 6141 STR r1,[r0,#0x14]
00000e 4770 BX lr
;;;178
ENDP
AREA ||i.SDIO_WriteData||, CODE, READONLY, ALIGN=2
SDIO_WriteData PROC
;;;495 *******************************************************************************/
;;;496 void SDIO_WriteData(u32 Data)
000000 4901 LDR r1,|L30.8|
;;;497 {
;;;498 SDIO->FIFO = Data;
000002 6008 STR r0,[r1,#0]
;;;499 }
000004 4770 BX lr
;;;500
ENDP
000006 0000 DCW 0x0000
|L30.8|
DCD 0x40018080
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -