📄 stm32f10x_sdio.txt
字号:
00002a 0000 DCW 0x0000
|L19.44|
DCD 0x40018000
AREA ||i.SDIO_ReadData||, CODE, READONLY, ALIGN=2
SDIO_ReadData PROC
;;;497 */
;;;498 uint32_t SDIO_ReadData(void)
000000 4801 LDR r0,|L20.8|
;;;499 {
;;;500 return SDIO->FIFO;
000002 6800 LDR r0,[r0,#0]
;;;501 }
000004 4770 BX lr
;;;502
ENDP
000006 0000 DCW 0x0000
|L20.8|
DCD 0x40018080
AREA ||i.SDIO_SendCEATACmd||, CODE, READONLY, ALIGN=2
SDIO_SendCEATACmd PROC
;;;626 */
;;;627 void SDIO_SendCEATACmd(FunctionalState NewState)
000000 4901 LDR r1,|L21.8|
;;;628 {
;;;629 /* Check the parameters */
;;;630 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;631
;;;632 *(__IO uint32_t *) CMD_ATACMD_BB = (uint32_t)NewState;
000002 6008 STR r0,[r1,#0]
;;;633 }
000004 4770 BX lr
;;;634
ENDP
000006 0000 DCW 0x0000
|L21.8|
DCD 0x423001b8
AREA ||i.SDIO_SendCommand||, CODE, READONLY, ALIGN=2
SDIO_SendCommand PROC
;;;345 */
;;;346 void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct)
000000 2100 MOVS r1,#0
;;;347 {
;;;348 uint32_t tmpreg = 0;
;;;349
;;;350 /* Check the parameters */
;;;351 assert_param(IS_SDIO_CMD_INDEX(SDIO_CmdInitStruct->SDIO_CmdIndex));
;;;352 assert_param(IS_SDIO_RESPONSE(SDIO_CmdInitStruct->SDIO_Response));
;;;353 assert_param(IS_SDIO_WAIT(SDIO_CmdInitStruct->SDIO_Wait));
;;;354 assert_param(IS_SDIO_CPSM(SDIO_CmdInitStruct->SDIO_CPSM));
;;;355
;;;356 /*---------------------------- SDIO ARG Configuration ------------------------*/
;;;357 /* Set the SDIO Argument value */
;;;358 SDIO->ARG = SDIO_CmdInitStruct->SDIO_Argument;
000002 4b09 LDR r3,|L22.40|
000004 6802 LDR r2,[r0,#0]
000006 609a STR r2,[r3,#8]
;;;359
;;;360 /*---------------------------- SDIO CMD Configuration ------------------------*/
;;;361 /* Get the SDIO CMD value */
;;;362 tmpreg = SDIO->CMD;
000008 461a MOV r2,r3
00000a 68d1 LDR r1,[r2,#0xc]
;;;363 /* Clear CMDINDEX, WAITRESP, WAITINT, WAITPEND, CPSMEN bits */
;;;364 tmpreg &= CMD_CLEAR_MASK;
00000c f36f010a BFC r1,#0,#11
;;;365 /* Set CMDINDEX bits according to SDIO_CmdIndex value */
;;;366 /* Set WAITRESP bits according to SDIO_Response value */
;;;367 /* Set WAITINT and WAITPEND bits according to SDIO_Wait value */
;;;368 /* Set CPSMEN bits according to SDIO_CPSM value */
;;;369 tmpreg |= (uint32_t)SDIO_CmdInitStruct->SDIO_CmdIndex | SDIO_CmdInitStruct->SDIO_Response
000010 e9d02301 LDRD r2,r3,[r0,#4]
000014 431a ORRS r2,r2,r3
000016 68c3 LDR r3,[r0,#0xc]
000018 431a ORRS r2,r2,r3
00001a 6903 LDR r3,[r0,#0x10]
00001c 431a ORRS r2,r2,r3
00001e 4311 ORRS r1,r1,r2
;;;370 | SDIO_CmdInitStruct->SDIO_Wait | SDIO_CmdInitStruct->SDIO_CPSM;
;;;371
;;;372 /* Write to SDIO CMD */
;;;373 SDIO->CMD = tmpreg;
000020 4a01 LDR r2,|L22.40|
000022 60d1 STR r1,[r2,#0xc]
;;;374 }
000024 4770 BX lr
;;;375
ENDP
000026 0000 DCW 0x0000
|L22.40|
DCD 0x40018000
AREA ||i.SDIO_SendSDIOSuspendCmd||, CODE, READONLY, ALIGN=2
SDIO_SendSDIOSuspendCmd PROC
;;;586 */
;;;587 void SDIO_SendSDIOSuspendCmd(FunctionalState NewState)
000000 4901 LDR r1,|L23.8|
;;;588 {
;;;589 /* Check the parameters */
;;;590 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;591
;;;592 *(__IO uint32_t *) CMD_SDIOSUSPEND_BB = (uint32_t)NewState;
000002 6008 STR r0,[r1,#0]
;;;593 }
000004 4770 BX lr
;;;594
ENDP
000006 0000 DCW 0x0000
|L23.8|
DCD 0x423001ac
AREA ||i.SDIO_SetPowerState||, CODE, READONLY, ALIGN=2
SDIO_SetPowerState PROC
;;;250 */
;;;251 void SDIO_SetPowerState(uint32_t SDIO_PowerState)
000000 4905 LDR r1,|L24.24|
;;;252 {
;;;253 /* Check the parameters */
;;;254 assert_param(IS_SDIO_POWER_STATE(SDIO_PowerState));
;;;255
;;;256 SDIO->POWER &= PWR_PWRCTRL_MASK;
000002 6809 LDR r1,[r1,#0]
000004 f0210103 BIC r1,r1,#3
000008 4a03 LDR r2,|L24.24|
00000a 6011 STR r1,[r2,#0]
;;;257 SDIO->POWER |= SDIO_PowerState;
00000c 4611 MOV r1,r2
00000e 6809 LDR r1,[r1,#0]
000010 4301 ORRS r1,r1,r0
000012 6011 STR r1,[r2,#0]
;;;258 }
000014 4770 BX lr
;;;259
ENDP
000016 0000 DCW 0x0000
|L24.24|
DCD 0x40018000
AREA ||i.SDIO_SetSDIOOperation||, CODE, READONLY, ALIGN=2
SDIO_SetSDIOOperation PROC
;;;572 */
;;;573 void SDIO_SetSDIOOperation(FunctionalState NewState)
000000 4901 LDR r1,|L25.8|
;;;574 {
;;;575 /* Check the parameters */
;;;576 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;577
;;;578 *(__IO uint32_t *) DCTRL_SDIOEN_BB = (uint32_t)NewState;
000002 6008 STR r0,[r1,#0]
;;;579 }
000004 4770 BX lr
;;;580
ENDP
000006 0000 DCW 0x0000
|L25.8|
DCD 0x423005ac
AREA ||i.SDIO_SetSDIOReadWaitMode||, CODE, READONLY, ALIGN=2
SDIO_SetSDIOReadWaitMode PROC
;;;558 */
;;;559 void SDIO_SetSDIOReadWaitMode(uint32_t SDIO_ReadWaitMode)
000000 4901 LDR r1,|L26.8|
;;;560 {
;;;561 /* Check the parameters */
;;;562 assert_param(IS_SDIO_READWAIT_MODE(SDIO_ReadWaitMode));
;;;563
;;;564 *(__IO uint32_t *) DCTRL_RWMOD_BB = SDIO_ReadWaitMode;
000002 6008 STR r0,[r1,#0]
;;;565 }
000004 4770 BX lr
;;;566
ENDP
000006 0000 DCW 0x0000
|L26.8|
DCD 0x423005a8
AREA ||i.SDIO_StartSDIOReadWait||, CODE, READONLY, ALIGN=2
SDIO_StartSDIOReadWait PROC
;;;528 */
;;;529 void SDIO_StartSDIOReadWait(FunctionalState NewState)
000000 4901 LDR r1,|L27.8|
;;;530 {
;;;531 /* Check the parameters */
;;;532 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;533
;;;534 *(__IO uint32_t *) DCTRL_RWSTART_BB = (uint32_t) NewState;
000002 6008 STR r0,[r1,#0]
;;;535 }
000004 4770 BX lr
;;;536
ENDP
000006 0000 DCW 0x0000
|L27.8|
DCD 0x423005a0
AREA ||i.SDIO_StopSDIOReadWait||, CODE, READONLY, ALIGN=2
SDIO_StopSDIOReadWait PROC
;;;542 */
;;;543 void SDIO_StopSDIOReadWait(FunctionalState NewState)
000000 4901 LDR r1,|L28.8|
;;;544 {
;;;545 /* Check the parameters */
;;;546 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;547
;;;548 *(__IO uint32_t *) DCTRL_RWSTOP_BB = (uint32_t) NewState;
000002 6008 STR r0,[r1,#0]
;;;549 }
000004 4770 BX lr
;;;550
ENDP
000006 0000 DCW 0x0000
|L28.8|
DCD 0x423005a4
AREA ||i.SDIO_StructInit||, CODE, READONLY, ALIGN=1
SDIO_StructInit PROC
;;;218 */
;;;219 void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct)
000000 2100 MOVS r1,#0
;;;220 {
;;;221 /* SDIO_InitStruct members default value */
;;;222 SDIO_InitStruct->SDIO_ClockDiv = 0x00;
000002 7501 STRB r1,[r0,#0x14]
;;;223 SDIO_InitStruct->SDIO_ClockEdge = SDIO_ClockEdge_Rising;
000004 6001 STR r1,[r0,#0]
;;;224 SDIO_InitStruct->SDIO_ClockBypass = SDIO_ClockBypass_Disable;
000006 6041 STR r1,[r0,#4]
;;;225 SDIO_InitStruct->SDIO_ClockPowerSave = SDIO_ClockPowerSave_Disable;
000008 6081 STR r1,[r0,#8]
;;;226 SDIO_InitStruct->SDIO_BusWide = SDIO_BusWide_1b;
00000a 60c1 STR r1,[r0,#0xc]
;;;227 SDIO_InitStruct->SDIO_HardwareFlowControl = SDIO_HardwareFlowControl_Disable;
00000c 6101 STR r1,[r0,#0x10]
;;;228 }
00000e 4770 BX lr
;;;229
ENDP
AREA ||i.SDIO_WriteData||, CODE, READONLY, ALIGN=2
SDIO_WriteData PROC
;;;507 */
;;;508 void SDIO_WriteData(uint32_t Data)
000000 4901 LDR r1,|L30.8|
;;;509 {
;;;510 SDIO->FIFO = Data;
000002 6008 STR r0,[r1,#0]
;;;511 }
000004 4770 BX lr
;;;512
ENDP
000006 0000 DCW 0x0000
|L30.8|
DCD 0x40018080
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -