📄 stm32f10x_sdio.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\stm32f10x_sdio.o --depend=.\Obj\stm32f10x_sdio.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\..\FWLib\library\src\stm32f10x_sdio.c]
THUMB
AREA ||i.SDIO_CEATAITCmd||, CODE, READONLY, ALIGN=2
SDIO_CEATAITCmd PROC
;;;619 *******************************************************************************/
;;;620 void SDIO_CEATAITCmd(FunctionalState NewState)
000000 2101 MOVS r1,#1
;;;621 {
;;;622 /* Check the parameters */
;;;623 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;624
;;;625 *(vu32 *) CMD_NIEN_BB = (u32)((~((u32)NewState)) & ((u32)0x1));
000002 4381 BICS r1,r1,r0
000004 4801 LDR r0,|L1.12|
000006 6001 STR r1,[r0,#0]
;;;626 }
000008 4770 BX lr
;;;627
ENDP
00000a 0000 DCW 0x0000
|L1.12|
DCD 0x423001b4
AREA ||i.SDIO_ClearFlag||, CODE, READONLY, ALIGN=2
SDIO_ClearFlag PROC
;;;729 *******************************************************************************/
;;;730 void SDIO_ClearFlag(u32 SDIO_FLAG)
000000 4901 LDR r1,|L2.8|
;;;731 {
;;;732 /* Check the parameters */
;;;733 assert_param(IS_SDIO_CLEAR_FLAG(SDIO_FLAG));
;;;734
;;;735 SDIO->ICR = SDIO_FLAG;
000002 6388 STR r0,[r1,#0x38]
;;;736 }
000004 4770 BX lr
;;;737
ENDP
000006 0000 DCW 0x0000
|L2.8|
DCD 0x40018000
AREA ||i.SDIO_ClearITPendingBit||, CODE, READONLY, ALIGN=2
SDIO_ClearITPendingBit PROC
;;;823 *******************************************************************************/
;;;824 void SDIO_ClearITPendingBit(u32 SDIO_IT)
000000 4901 LDR r1,|L3.8|
;;;825 {
;;;826 /* Check the parameters */
;;;827 assert_param(IS_SDIO_CLEAR_IT(SDIO_IT));
;;;828
;;;829 SDIO->ICR = SDIO_IT;
000002 6388 STR r0,[r1,#0x38]
;;;830 }
000004 4770 BX lr
;;;831
ENDP
000006 0000 DCW 0x0000
|L3.8|
DCD 0x40018000
AREA ||i.SDIO_ClockCmd||, CODE, READONLY, ALIGN=2
SDIO_ClockCmd PROC
;;;186 *******************************************************************************/
;;;187 void SDIO_ClockCmd(FunctionalState NewState)
000000 4901 LDR r1,|L4.8|
;;;188 {
;;;189 /* Check the parameters */
;;;190 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;191
;;;192 *(vu32 *) CLKCR_CLKEN_BB = (u32)NewState;
000002 6008 STR r0,[r1,#0]
;;;193 }
000004 4770 BX lr
;;;194
ENDP
000006 0000 DCW 0x0000
|L4.8|
DCD 0x423000a0
AREA ||i.SDIO_CmdStructInit||, CODE, READONLY, ALIGN=1
SDIO_CmdStructInit PROC
;;;356 *******************************************************************************/
;;;357 void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct)
000000 2100 MOVS r1,#0
;;;358 {
;;;359 /* SDIO_CmdInitStruct members default value */
;;;360 SDIO_CmdInitStruct->SDIO_Argument = 0x00;
;;;361 SDIO_CmdInitStruct->SDIO_CmdIndex = 0x00;
000002 6001 STR r1,[r0,#0]
;;;362 SDIO_CmdInitStruct->SDIO_Response = SDIO_Response_No;
000004 6041 STR r1,[r0,#4]
;;;363 SDIO_CmdInitStruct->SDIO_Wait = SDIO_Wait_No;
000006 6081 STR r1,[r0,#8]
;;;364 SDIO_CmdInitStruct->SDIO_CPSM = SDIO_CPSM_Disable;
000008 60c1 STR r1,[r0,#0xc]
;;;365 }
00000a 6101 STR r1,[r0,#0x10]
00000c 4770 BX lr
;;;366
ENDP
AREA ||i.SDIO_CommandCompletionCmd||, CODE, READONLY, ALIGN=2
SDIO_CommandCompletionCmd PROC
;;;603 *******************************************************************************/
;;;604 void SDIO_CommandCompletionCmd(FunctionalState NewState)
000000 4901 LDR r1,|L6.8|
;;;605 {
;;;606 /* Check the parameters */
;;;607 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;608
;;;609 *(vu32 *) CMD_ENCMDCOMPL_BB = (u32)NewState;
000002 6008 STR r0,[r1,#0]
;;;610 }
000004 4770 BX lr
;;;611
ENDP
000006 0000 DCW 0x0000
|L6.8|
DCD 0x423001b0
AREA ||i.SDIO_DMACmd||, CODE, READONLY, ALIGN=2
SDIO_DMACmd PROC
;;;299 *******************************************************************************/
;;;300 void SDIO_DMACmd(FunctionalState NewState)
000000 4901 LDR r1,|L7.8|
;;;301 {
;;;302 /* Check the parameters */
;;;303 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;304
;;;305 *(vu32 *) DCTRL_DMAEN_BB = (u32)NewState;
000002 6008 STR r0,[r1,#0]
;;;306 }
000004 4770 BX lr
;;;307
ENDP
000006 0000 DCW 0x0000
|L7.8|
DCD 0x4230058c
AREA ||i.SDIO_DataConfig||, CODE, READONLY, ALIGN=2
SDIO_DataConfig PROC
;;;409 *******************************************************************************/
;;;410 void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
000000 b530 PUSH {r4,r5,lr}
;;;411 {
;;;412 u32 tmpreg = 0;
;;;413
;;;414 /* Check the parameters */
;;;415 assert_param(IS_SDIO_DATA_LENGTH(SDIO_DataInitStruct->SDIO_DataLength));
;;;416 assert_param(IS_SDIO_BLOCK_SIZE(SDIO_DataInitStruct->SDIO_DataBlockSize));
;;;417 assert_param(IS_SDIO_TRANSFER_DIR(SDIO_DataInitStruct->SDIO_TransferDir));
;;;418 assert_param(IS_SDIO_TRANSFER_MODE(SDIO_DataInitStruct->SDIO_TransferMode));
;;;419 assert_param(IS_SDIO_DPSM(SDIO_DataInitStruct->SDIO_DPSM));
;;;420
;;;421 /*---------------------------- SDIO DTIMER Configuration ---------------------*/
;;;422 /* Set the SDIO Data TimeOut value */
;;;423 SDIO->DTIMER = SDIO_DataInitStruct->SDIO_DataTimeOut;
000002 4909 LDR r1,|L8.40|
000004 6802 LDR r2,[r0,#0]
000006 624a STR r2,[r1,#0x24]
;;;424
;;;425 /*---------------------------- SDIO DLEN Configuration -----------------------*/
;;;426 /* Set the SDIO DataLength value */
;;;427 SDIO->DLEN = SDIO_DataInitStruct->SDIO_DataLength;
000008 6842 LDR r2,[r0,#4]
00000a 628a STR r2,[r1,#0x28]
;;;428
;;;429 /*---------------------------- SDIO DCTRL Configuration ----------------------*/
;;;430 /* Get the SDIO DCTRL value */
;;;431 tmpreg = SDIO->DCTRL;
00000c 6aca LDR r2,[r1,#0x2c]
;;;432
;;;433 /* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits */
;;;434 tmpreg &= DCTRL_CLEAR_MASK;
;;;435 /* Set DEN bit according to SDIO_DPSM value */
;;;436 /* Set DTMODE bit according to SDIO_TransferMode value */
;;;437 /* Set DTDIR bit according to SDIO_TransferDir value */
;;;438 /* Set DBCKSIZE bits according to SDIO_DataBlockSize value */
;;;439 tmpreg |= (u32)SDIO_DataInitStruct->SDIO_DataBlockSize | SDIO_DataInitStruct->SDIO_TransferDir
00000e e9d05403 LDRD r5,r4,[r0,#0xc]
000012 6883 LDR r3,[r0,#8]
000014 6940 LDR r0,[r0,#0x14]
000016 432b ORRS r3,r3,r5
000018 4304 ORRS r4,r4,r0
00001a f02202f7 BIC r2,r2,#0xf7 ;434
00001e 4323 ORRS r3,r3,r4
000020 4313 ORRS r3,r3,r2
;;;440 | SDIO_DataInitStruct->SDIO_TransferMode | SDIO_DataInitStruct->SDIO_DPSM;
;;;441
;;;442 /* Write to SDIO DCTRL */
;;;443 SDIO->DCTRL = tmpreg;
000022 62cb STR r3,[r1,#0x2c]
;;;444 }
000024 bd30 POP {r4,r5,pc}
;;;445
ENDP
000026 0000 DCW 0x0000
|L8.40|
DCD 0x40018000
AREA ||i.SDIO_DataStructInit||, CODE, READONLY, ALIGN=1
SDIO_DataStructInit PROC
;;;453 *******************************************************************************/
;;;454 void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
000000 f04f31ff MOV r1,#0xffffffff
;;;455 {
;;;456 /* SDIO_DataInitStruct members default value */
;;;457 SDIO_DataInitStruct->SDIO_DataTimeOut = 0xFFFFFFFF;
;;;458 SDIO_DataInitStruct->SDIO_DataLength = 0x00;
000004 6001 STR r1,[r0,#0]
000006 2100 MOVS r1,#0
;;;459 SDIO_DataInitStruct->SDIO_DataBlockSize = SDIO_DataBlockSize_1b;
000008 6041 STR r1,[r0,#4]
;;;460 SDIO_DataInitStruct->SDIO_TransferDir = SDIO_TransferDir_ToCard;
00000a 6081 STR r1,[r0,#8]
;;;461 SDIO_DataInitStruct->SDIO_TransferMode = SDIO_TransferMode_Block;
00000c 60c1 STR r1,[r0,#0xc]
;;;462 SDIO_DataInitStruct->SDIO_DPSM = SDIO_DPSM_Disable;
00000e 6101 STR r1,[r0,#0x10]
;;;463 }
000010 6141 STR r1,[r0,#0x14]
000012 4770 BX lr
;;;464
ENDP
AREA ||i.SDIO_DeInit||, CODE, READONLY, ALIGN=2
SDIO_DeInit PROC
;;;104 *******************************************************************************/
;;;105 void SDIO_DeInit(void)
000000 4806 LDR r0,|L10.28|
;;;106 {
;;;107 SDIO->POWER = 0x00000000;
000002 2100 MOVS r1,#0
000004 6001 STR r1,[r0,#0]
;;;108 SDIO->CLKCR = 0x00000000;
000006 6041 STR r1,[r0,#4]
;;;109 SDIO->ARG = 0x00000000;
000008 6081 STR r1,[r0,#8]
;;;110 SDIO->CMD = 0x00000000;
00000a 60c1 STR r1,[r0,#0xc]
;;;111 SDIO->DTIMER = 0x00000000;
00000c 6241 STR r1,[r0,#0x24]
;;;112 SDIO->DLEN = 0x00000000;
00000e 6281 STR r1,[r0,#0x28]
;;;113 SDIO->DCTRL = 0x00000000;
000010 62c1 STR r1,[r0,#0x2c]
;;;114 SDIO->ICR = 0x00C007FF;
000012 4a03 LDR r2,|L10.32|
000014 6382 STR r2,[r0,#0x38]
;;;115 SDIO->MASK = 0x00000000;
000016 63c1 STR r1,[r0,#0x3c]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -