📄 stm32f10x_sdio.lst
字号:
410 * Return : None
411 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
412 void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
413 {
414 u32 tmpreg = 0;
415
416 /* Check the parameters */
417 assert_param(IS_SDIO_DATA_LENGTH(SDIO_DataInitStruct->SDIO_DataLength));
418 assert_param(IS_SDIO_BLOCK_SIZE(SDIO_DataInitStruct->SDIO_DataBlockSize));
419 assert_param(IS_SDIO_TRANSFER_DIR(SDIO_DataInitStruct->SDIO_TransferDir));
420 assert_param(IS_SDIO_TRANSFER_MODE(SDIO_DataInitStruct->SDIO_TransferMode));
421 assert_param(IS_SDIO_DPSM(SDIO_DataInitStruct->SDIO_DPSM));
422
423 /*---------------------------- SDIO DTIMER Configuration ---------------------*/
424 /* Set the SDIO Data TimeOut value */
425 SDIO->DTIMER = SDIO_DataInitStruct->SDIO_DataTimeOut;
\ SDIO_DataConfig:
\ 00000000 0949 LDR.N R1,??SDIO_DataConfig_0 ;; 0x40018024
\ 00000002 0268 LDR R2,[R0, #+0]
\ 00000004 0A60 STR R2,[R1, #+0]
426
427 /*---------------------------- SDIO DLEN Configuration -----------------------*/
428 /* Set the SDIO DataLength value */
429 SDIO->DLEN = SDIO_DataInitStruct->SDIO_DataLength;
\ 00000006 091D ADDS R1,R1,#+4
\ 00000008 4268 LDR R2,[R0, #+4]
\ 0000000A 0A60 STR R2,[R1, #+0]
430
431 /*---------------------------- SDIO DCTRL Configuration ----------------------*/
432 /* Get the SDIO DCTRL value */
433 tmpreg = SDIO->DCTRL;
\ 0000000C 091D ADDS R1,R1,#+4
\ 0000000E 0A68 LDR R2,[R1, #+0]
434
435 /* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits */
436 tmpreg &= DCTRL_CLEAR_MASK;
437 /* Set DEN bit according to SDIO_DPSM value */
438 /* Set DTMODE bit according to SDIO_TransferMode value */
439 /* Set DTDIR bit according to SDIO_TransferDir value */
440 /* Set DBCKSIZE bits according to SDIO_DataBlockSize value */
441 tmpreg |= (u32)SDIO_DataInitStruct->SDIO_DataBlockSize | SDIO_DataInitStruct->SDIO_TransferDir
442 | SDIO_DataInitStruct->SDIO_TransferMode | SDIO_DataInitStruct->SDIO_DPSM;
443
444 /* Write to SDIO DCTRL */
445 SDIO->DCTRL = tmpreg;
\ 00000010 F723 MOVS R3,#+247
\ 00000012 9A43 BICS R2,R2,R3
\ 00000014 8368 LDR R3,[R0, #+8]
\ 00000016 1343 ORRS R3,R3,R2
\ 00000018 C268 LDR R2,[R0, #+12]
\ 0000001A 1A43 ORRS R2,R2,R3
\ 0000001C 0369 LDR R3,[R0, #+16]
\ 0000001E 1343 ORRS R3,R3,R2
\ 00000020 4069 LDR R0,[R0, #+20]
\ 00000022 1843 ORRS R0,R0,R3
\ 00000024 0860 STR R0,[R1, #+0]
446 }
\ 00000026 7047 BX LR ;; return
\ ??SDIO_DataConfig_0:
\ 00000028 24800140 DC32 0x40018024
447
448 /*******************************************************************************
449 * Function Name : SDIO_DataStructInit
450 * Description : Fills each SDIO_DataInitStruct member with its default value.
451 * Input : SDIO_DataInitStruct: pointer to an SDIO_DataInitTypeDef
452 * structure which will be initialized.
453 * Output : None
454 * Return : None
455 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
456 void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
457 {
458 /* SDIO_DataInitStruct members default value */
459 SDIO_DataInitStruct->SDIO_DataTimeOut = 0xFFFFFFFF;
\ SDIO_DataStructInit:
\ 00000000 5FF0FF31 MOVS R1,#-1
\ 00000004 0160 STR R1,[R0, #+0]
460 SDIO_DataInitStruct->SDIO_DataLength = 0x00;
\ 00000006 0021 MOVS R1,#+0
\ 00000008 4160 STR R1,[R0, #+4]
461 SDIO_DataInitStruct->SDIO_DataBlockSize = SDIO_DataBlockSize_1b;
\ 0000000A 8160 STR R1,[R0, #+8]
462 SDIO_DataInitStruct->SDIO_TransferDir = SDIO_TransferDir_ToCard;
\ 0000000C C160 STR R1,[R0, #+12]
463 SDIO_DataInitStruct->SDIO_TransferMode = SDIO_TransferMode_Block;
\ 0000000E 0161 STR R1,[R0, #+16]
464 SDIO_DataInitStruct->SDIO_DPSM = SDIO_DPSM_Disable;
\ 00000010 4161 STR R1,[R0, #+20]
465 }
\ 00000012 7047 BX LR ;; return
466
467 /*******************************************************************************
468 * Function Name : SDIO_GetDataCounter
469 * Description : Returns number of remaining data bytes to be transferred.
470 * Input : None
471 * Output : None
472 * Return : Number of remaining data bytes to be transferred
473 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
474 u32 SDIO_GetDataCounter(void)
475 {
476 return SDIO->DCOUNT;
\ SDIO_GetDataCounter:
\ 00000000 0148 LDR.N R0,??SDIO_GetDataCounter_0 ;; 0x40018030
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??SDIO_GetDataCounter_0:
\ 00000008 30800140 DC32 0x40018030
477 }
478
479 /*******************************************************************************
480 * Function Name : SDIO_ReadData
481 * Description : Read one data word from Rx FIFO.
482 * Input : None
483 * Output : None
484 * Return : Data received
485 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
486 u32 SDIO_ReadData(void)
487 {
488 return SDIO->FIFO;
\ SDIO_ReadData:
\ 00000000 .... LDR.N R0,??DataTable4 ;; 0x40018080
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 7047 BX LR ;; return
489 }
490
491 /*******************************************************************************
492 * Function Name : SDIO_WriteData
493 * Description : Write one data word to Tx FIFO.
494 * Input : Data: 32-bit data word to write.
495 * Output : None
496 * Return : None
497 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
498 void SDIO_WriteData(u32 Data)
499 {
500 SDIO->FIFO = Data;
\ SDIO_WriteData:
\ 00000000 .... LDR.N R1,??DataTable4 ;; 0x40018080
\ 00000002 0860 STR R0,[R1, #+0]
501 }
\ 00000004 7047 BX LR ;; return
502
503 /*******************************************************************************
504 * Function Name : SDIO_GetFIFOCount
505 * Description : Returns the number of words left to be written to or read
506 * from FIFO.
507 * Input : None
508 * Output : None
509 * Return : Remaining number of words.
510 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
511 u32 SDIO_GetFIFOCount(void)
512 {
513 return SDIO->FIFOCNT;
\ SDIO_GetFIFOCount:
\ 00000000 0148 LDR.N R0,??SDIO_GetFIFOCount_0 ;; 0x40018048
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??SDIO_GetFIFOCount_0:
\ 00000008 48800140 DC32 0x40018048
514 }
515
516 /*******************************************************************************
517 * Function Name : SDIO_StartSDIOReadWait
518 * Description : Starts the SD I/O Read Wait operation.
519 * Input : NewState: new state of the Start SDIO Read Wait operation.
520 * This parameter can be: ENABLE or DISABLE.
521 * Output : None
522 * Return : None
523 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
524 void SDIO_StartSDIOReadWait(FunctionalState NewState)
525 {
526 /* Check the parameters */
527 assert_param(IS_FUNCTIONAL_STATE(NewState));
528
529 *(vu32 *) DCTRL_RWSTART_BB = (u32) NewState;
\ SDIO_StartSDIOReadWait:
\ 00000000 0149 LDR.N R1,??SDIO_StartSDIOReadWait_0 ;; 0x423005a0
\ 00000002 0860 STR R0,[R1, #+0]
530 }
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??SDIO_StartSDIOReadWait_0:
\ 00000008 A0053042 DC32 0x423005a0
531
532 /*******************************************************************************
533 * Function Name : SDIO_StopSDIOReadWait
534 * Description : Stops the SD I/O Read Wait operation.
535 * Input : NewState: new state of the Stop SDIO Read Wait operation.
536 * This parameter can be: ENABLE or DISABLE.
537 * Output : None
538 * Return : None
539 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
540 void SDIO_StopSDIOReadWait(FunctionalState NewState)
541 {
542 /* Check the parameters */
543 assert_param(IS_FUNCTIONAL_STATE(NewState));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -