📄 stm32f10x_sdio.txt
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 561]
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Flash\Obj\stm32f10x_sdio.o --depend=.\Flash\Obj\stm32f10x_sdio.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=870 -I..\..\Libraries\CMSIS\CM3\CoreSupport -I..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\User\bsp -I..\..\User\fatfs -I..\..\User -IC:\Keil\ARM\INC -IC:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c]
THUMB
AREA ||i.SDIO_CEATAITCmd||, CODE, READONLY, ALIGN=2
SDIO_CEATAITCmd PROC
;;;613 */
;;;614 void SDIO_CEATAITCmd(FunctionalState NewState)
000000 2101 MOVS r1,#1
;;;615 {
;;;616 /* Check the parameters */
;;;617 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;618
;;;619 *(__IO uint32_t *) CMD_NIEN_BB = (uint32_t)((~((uint32_t)NewState)) & ((uint32_t)0x1));
000002 4381 BICS r1,r1,r0
000004 4a01 LDR r2,|L1.12|
000006 6011 STR r1,[r2,#0]
;;;620 }
000008 4770 BX lr
;;;621
ENDP
00000a 0000 DCW 0x0000
|L1.12|
DCD 0x423001b4
AREA ||i.SDIO_ClearFlag||, CODE, READONLY, ALIGN=2
SDIO_ClearFlag PROC
;;;703 */
;;;704 void SDIO_ClearFlag(uint32_t SDIO_FLAG)
000000 4901 LDR r1,|L2.8|
;;;705 {
;;;706 /* Check the parameters */
;;;707 assert_param(IS_SDIO_CLEAR_FLAG(SDIO_FLAG));
;;;708
;;;709 SDIO->ICR = SDIO_FLAG;
000002 6388 STR r0,[r1,#0x38]
;;;710 }
000004 4770 BX lr
;;;711
ENDP
000006 0000 DCW 0x0000
|L2.8|
DCD 0x40018000
AREA ||i.SDIO_ClearITPendingBit||, CODE, READONLY, ALIGN=2
SDIO_ClearITPendingBit PROC
;;;778 */
;;;779 void SDIO_ClearITPendingBit(uint32_t SDIO_IT)
000000 4901 LDR r1,|L3.8|
;;;780 {
;;;781 /* Check the parameters */
;;;782 assert_param(IS_SDIO_CLEAR_IT(SDIO_IT));
;;;783
;;;784 SDIO->ICR = SDIO_IT;
000002 6388 STR r0,[r1,#0x38]
;;;785 }
000004 4770 BX lr
;;;786
ENDP
000006 0000 DCW 0x0000
|L3.8|
DCD 0x40018000
AREA ||i.SDIO_ClockCmd||, CODE, READONLY, ALIGN=2
SDIO_ClockCmd PROC
;;;234 */
;;;235 void SDIO_ClockCmd(FunctionalState NewState)
000000 4901 LDR r1,|L4.8|
;;;236 {
;;;237 /* Check the parameters */
;;;238 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;239
;;;240 *(__IO uint32_t *) CLKCR_CLKEN_BB = (uint32_t)NewState;
000002 6008 STR r0,[r1,#0]
;;;241 }
000004 4770 BX lr
;;;242
ENDP
000006 0000 DCW 0x0000
|L4.8|
DCD 0x423000a0
AREA ||i.SDIO_CmdStructInit||, CODE, READONLY, ALIGN=1
SDIO_CmdStructInit PROC
;;;381 */
;;;382 void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct)
000000 2100 MOVS r1,#0
;;;383 {
;;;384 /* SDIO_CmdInitStruct members default value */
;;;385 SDIO_CmdInitStruct->SDIO_Argument = 0x00;
000002 6001 STR r1,[r0,#0]
;;;386 SDIO_CmdInitStruct->SDIO_CmdIndex = 0x00;
000004 6041 STR r1,[r0,#4]
;;;387 SDIO_CmdInitStruct->SDIO_Response = SDIO_Response_No;
000006 6081 STR r1,[r0,#8]
;;;388 SDIO_CmdInitStruct->SDIO_Wait = SDIO_Wait_No;
000008 60c1 STR r1,[r0,#0xc]
;;;389 SDIO_CmdInitStruct->SDIO_CPSM = SDIO_CPSM_Disable;
00000a 6101 STR r1,[r0,#0x10]
;;;390 }
00000c 4770 BX lr
;;;391
ENDP
AREA ||i.SDIO_CommandCompletionCmd||, CODE, READONLY, ALIGN=2
SDIO_CommandCompletionCmd PROC
;;;600 */
;;;601 void SDIO_CommandCompletionCmd(FunctionalState NewState)
000000 4901 LDR r1,|L6.8|
;;;602 {
;;;603 /* Check the parameters */
;;;604 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;605
;;;606 *(__IO uint32_t *) CMD_ENCMDCOMPL_BB = (uint32_t)NewState;
000002 6008 STR r0,[r1,#0]
;;;607 }
000004 4770 BX lr
;;;608
ENDP
000006 0000 DCW 0x0000
|L6.8|
DCD 0x423001b0
AREA ||i.SDIO_DMACmd||, CODE, READONLY, ALIGN=2
SDIO_DMACmd PROC
;;;330 */
;;;331 void SDIO_DMACmd(FunctionalState NewState)
000000 4901 LDR r1,|L7.8|
;;;332 {
;;;333 /* Check the parameters */
;;;334 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;335
;;;336 *(__IO uint32_t *) DCTRL_DMAEN_BB = (uint32_t)NewState;
000002 6008 STR r0,[r1,#0]
;;;337 }
000004 4770 BX lr
;;;338
ENDP
000006 0000 DCW 0x0000
|L7.8|
DCD 0x4230058c
AREA ||i.SDIO_DataConfig||, CODE, READONLY, ALIGN=2
SDIO_DataConfig PROC
;;;430 */
;;;431 void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
000000 2100 MOVS r1,#0
;;;432 {
;;;433 uint32_t tmpreg = 0;
;;;434
;;;435 /* Check the parameters */
;;;436 assert_param(IS_SDIO_DATA_LENGTH(SDIO_DataInitStruct->SDIO_DataLength));
;;;437 assert_param(IS_SDIO_BLOCK_SIZE(SDIO_DataInitStruct->SDIO_DataBlockSize));
;;;438 assert_param(IS_SDIO_TRANSFER_DIR(SDIO_DataInitStruct->SDIO_TransferDir));
;;;439 assert_param(IS_SDIO_TRANSFER_MODE(SDIO_DataInitStruct->SDIO_TransferMode));
;;;440 assert_param(IS_SDIO_DPSM(SDIO_DataInitStruct->SDIO_DPSM));
;;;441
;;;442 /*---------------------------- SDIO DTIMER Configuration ---------------------*/
;;;443 /* Set the SDIO Data TimeOut value */
;;;444 SDIO->DTIMER = SDIO_DataInitStruct->SDIO_DataTimeOut;
000002 4b0a LDR r3,|L8.44|
000004 6802 LDR r2,[r0,#0]
000006 625a STR r2,[r3,#0x24]
;;;445
;;;446 /*---------------------------- SDIO DLEN Configuration -----------------------*/
;;;447 /* Set the SDIO DataLength value */
;;;448 SDIO->DLEN = SDIO_DataInitStruct->SDIO_DataLength;
000008 6842 LDR r2,[r0,#4]
00000a 629a STR r2,[r3,#0x28]
;;;449
;;;450 /*---------------------------- SDIO DCTRL Configuration ----------------------*/
;;;451 /* Get the SDIO DCTRL value */
;;;452 tmpreg = SDIO->DCTRL;
00000c 461a MOV r2,r3
00000e 6ad1 LDR r1,[r2,#0x2c]
;;;453 /* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits */
;;;454 tmpreg &= DCTRL_CLEAR_MASK;
000010 f02101f7 BIC r1,r1,#0xf7
;;;455 /* Set DEN bit according to SDIO_DPSM value */
;;;456 /* Set DTMODE bit according to SDIO_TransferMode value */
;;;457 /* Set DTDIR bit according to SDIO_TransferDir value */
;;;458 /* Set DBCKSIZE bits according to SDIO_DataBlockSize value */
;;;459 tmpreg |= (uint32_t)SDIO_DataInitStruct->SDIO_DataBlockSize | SDIO_DataInitStruct->SDIO_TransferDir
000014 e9d02302 LDRD r2,r3,[r0,#8]
000018 431a ORRS r2,r2,r3
00001a 6903 LDR r3,[r0,#0x10]
00001c 431a ORRS r2,r2,r3
00001e 6943 LDR r3,[r0,#0x14]
000020 431a ORRS r2,r2,r3
000022 4311 ORRS r1,r1,r2
;;;460 | SDIO_DataInitStruct->SDIO_TransferMode | SDIO_DataInitStruct->SDIO_DPSM;
;;;461
;;;462 /* Write to SDIO DCTRL */
;;;463 SDIO->DCTRL = tmpreg;
000024 4a01 LDR r2,|L8.44|
000026 62d1 STR r1,[r2,#0x2c]
;;;464 }
000028 4770 BX lr
;;;465
ENDP
00002a 0000 DCW 0x0000
|L8.44|
DCD 0x40018000
AREA ||i.SDIO_DataStructInit||, CODE, READONLY, ALIGN=1
SDIO_DataStructInit PROC
;;;471 */
;;;472 void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
000000 f04f31ff MOV r1,#0xffffffff
;;;473 {
;;;474 /* SDIO_DataInitStruct members default value */
;;;475 SDIO_DataInitStruct->SDIO_DataTimeOut = 0xFFFFFFFF;
000004 6001 STR r1,[r0,#0]
;;;476 SDIO_DataInitStruct->SDIO_DataLength = 0x00;
000006 2100 MOVS r1,#0
000008 6041 STR r1,[r0,#4]
;;;477 SDIO_DataInitStruct->SDIO_DataBlockSize = SDIO_DataBlockSize_1b;
00000a 6081 STR r1,[r0,#8]
;;;478 SDIO_DataInitStruct->SDIO_TransferDir = SDIO_TransferDir_ToCard;
00000c 60c1 STR r1,[r0,#0xc]
;;;479 SDIO_DataInitStruct->SDIO_TransferMode = SDIO_TransferMode_Block;
00000e 6101 STR r1,[r0,#0x10]
;;;480 SDIO_DataInitStruct->SDIO_DPSM = SDIO_DPSM_Disable;
000010 6141 STR r1,[r0,#0x14]
;;;481 }
000012 4770 BX lr
;;;482
ENDP
AREA ||i.SDIO_DeInit||, CODE, READONLY, ALIGN=2
SDIO_DeInit PROC
;;;160 */
;;;161 void SDIO_DeInit(void)
000000 2000 MOVS r0,#0
;;;162 {
;;;163 SDIO->POWER = 0x00000000;
000002 4906 LDR r1,|L10.28|
000004 6008 STR r0,[r1,#0]
;;;164 SDIO->CLKCR = 0x00000000;
000006 6048 STR r0,[r1,#4]
;;;165 SDIO->ARG = 0x00000000;
000008 6088 STR r0,[r1,#8]
;;;166 SDIO->CMD = 0x00000000;
00000a 60c8 STR r0,[r1,#0xc]
;;;167 SDIO->DTIMER = 0x00000000;
00000c 6248 STR r0,[r1,#0x24]
;;;168 SDIO->DLEN = 0x00000000;
00000e 6288 STR r0,[r1,#0x28]
;;;169 SDIO->DCTRL = 0x00000000;
000010 62c8 STR r0,[r1,#0x2c]
;;;170 SDIO->ICR = 0x00C007FF;
000012 4803 LDR r0,|L10.32|
000014 6388 STR r0,[r1,#0x38]
;;;171 SDIO->MASK = 0x00000000;
000016 2000 MOVS r0,#0
000018 63c8 STR r0,[r1,#0x3c]
;;;172 }
00001a 4770 BX lr
;;;173
ENDP
|L10.28|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -