📄 stm32f10x_sdio.lst
字号:
601 {
602 /* Check the parameters */
603 assert_param(IS_FUNCTIONAL_STATE(NewState));
604
605 *(__IO uint32_t *) CMD_ENCMDCOMPL_BB = (uint32_t)NewState;
\ SDIO_CommandCompletionCmd:
\ 00000000 .... LDR.N R1,??DataTable26_23 ;; 0x423001b0
\ 00000002 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000004 0860 STR R0,[R1, #+0]
606 }
\ 00000006 7047 BX LR ;; return
607
608 /**
609 * @brief Enables or disables the CE-ATA interrupt.
610 * @param NewState: new state of CE-ATA interrupt. This parameter can be: ENABLE or DISABLE.
611 * @retval None
612 */
\ In section .text, align 2, keep-with-next
613 void SDIO_CEATAITCmd(FunctionalState NewState)
614 {
615 /* Check the parameters */
616 assert_param(IS_FUNCTIONAL_STATE(NewState));
617
618 *(__IO uint32_t *) CMD_NIEN_BB = (uint32_t)((~((uint32_t)NewState)) & ((uint32_t)0x1));
\ SDIO_CEATAITCmd:
\ 00000000 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000002 C143 MVNS R1,R0
\ 00000004 11F00101 ANDS R1,R1,#0x1
\ 00000008 .... LDR.N R2,??DataTable26_24 ;; 0x423001b4
\ 0000000A 1160 STR R1,[R2, #+0]
619 }
\ 0000000C 7047 BX LR ;; return
620
621 /**
622 * @brief Sends CE-ATA command (CMD61).
623 * @param NewState: new state of CE-ATA command. This parameter can be: ENABLE or DISABLE.
624 * @retval None
625 */
\ In section .text, align 2, keep-with-next
626 void SDIO_SendCEATACmd(FunctionalState NewState)
627 {
628 /* Check the parameters */
629 assert_param(IS_FUNCTIONAL_STATE(NewState));
630
631 *(__IO uint32_t *) CMD_ATACMD_BB = (uint32_t)NewState;
\ SDIO_SendCEATACmd:
\ 00000000 .... LDR.N R1,??DataTable26_25 ;; 0x423001b8
\ 00000002 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000004 0860 STR R0,[R1, #+0]
632 }
\ 00000006 7047 BX LR ;; return
633
634 /**
635 * @brief Checks whether the specified SDIO flag is set or not.
636 * @param SDIO_FLAG: specifies the flag to check.
637 * This parameter can be one of the following values:
638 * @arg SDIO_FLAG_CCRCFAIL: Command response received (CRC check failed)
639 * @arg SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
640 * @arg SDIO_FLAG_CTIMEOUT: Command response timeout
641 * @arg SDIO_FLAG_DTIMEOUT: Data timeout
642 * @arg SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error
643 * @arg SDIO_FLAG_RXOVERR: Received FIFO overrun error
644 * @arg SDIO_FLAG_CMDREND: Command response received (CRC check passed)
645 * @arg SDIO_FLAG_CMDSENT: Command sent (no response required)
646 * @arg SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero)
647 * @arg SDIO_FLAG_STBITERR: Start bit not detected on all data signals in wide
648 * bus mode.
649 * @arg SDIO_FLAG_DBCKEND: Data block sent/received (CRC check passed)
650 * @arg SDIO_FLAG_CMDACT: Command transfer in progress
651 * @arg SDIO_FLAG_TXACT: Data transmit in progress
652 * @arg SDIO_FLAG_RXACT: Data receive in progress
653 * @arg SDIO_FLAG_TXFIFOHE: Transmit FIFO Half Empty
654 * @arg SDIO_FLAG_RXFIFOHF: Receive FIFO Half Full
655 * @arg SDIO_FLAG_TXFIFOF: Transmit FIFO full
656 * @arg SDIO_FLAG_RXFIFOF: Receive FIFO full
657 * @arg SDIO_FLAG_TXFIFOE: Transmit FIFO empty
658 * @arg SDIO_FLAG_RXFIFOE: Receive FIFO empty
659 * @arg SDIO_FLAG_TXDAVL: Data available in transmit FIFO
660 * @arg SDIO_FLAG_RXDAVL: Data available in receive FIFO
661 * @arg SDIO_FLAG_SDIOIT: SD I/O interrupt received
662 * @arg SDIO_FLAG_CEATAEND: CE-ATA command completion signal received for CMD61
663 * @retval The new state of SDIO_FLAG (SET or RESET).
664 */
\ In section .text, align 2, keep-with-next
665 FlagStatus SDIO_GetFlagStatus(uint32_t SDIO_FLAG)
666 {
\ SDIO_GetFlagStatus:
\ 00000000 0100 MOVS R1,R0
667 FlagStatus bitstatus = RESET;
\ 00000002 0020 MOVS R0,#+0
668
669 /* Check the parameters */
670 assert_param(IS_SDIO_FLAG(SDIO_FLAG));
671
672 if ((SDIO->STA & SDIO_FLAG) != (uint32_t)RESET)
\ 00000004 .... LDR.N R2,??DataTable26_26 ;; 0x40018034
\ 00000006 1268 LDR R2,[R2, #+0]
\ 00000008 0A42 TST R2,R1
\ 0000000A 02D0 BEQ.N ??SDIO_GetFlagStatus_0
673 {
674 bitstatus = SET;
\ 0000000C 0122 MOVS R2,#+1
\ 0000000E 1000 MOVS R0,R2
\ 00000010 01E0 B.N ??SDIO_GetFlagStatus_1
675 }
676 else
677 {
678 bitstatus = RESET;
\ ??SDIO_GetFlagStatus_0:
\ 00000012 0022 MOVS R2,#+0
\ 00000014 1000 MOVS R0,R2
679 }
680 return bitstatus;
\ ??SDIO_GetFlagStatus_1:
\ 00000016 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000018 7047 BX LR ;; return
681 }
682
683 /**
684 * @brief Clears the SDIO's pending flags.
685 * @param SDIO_FLAG: specifies the flag to clear.
686 * This parameter can be one or a combination of the following values:
687 * @arg SDIO_FLAG_CCRCFAIL: Command response received (CRC check failed)
688 * @arg SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
689 * @arg SDIO_FLAG_CTIMEOUT: Command response timeout
690 * @arg SDIO_FLAG_DTIMEOUT: Data timeout
691 * @arg SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error
692 * @arg SDIO_FLAG_RXOVERR: Received FIFO overrun error
693 * @arg SDIO_FLAG_CMDREND: Command response received (CRC check passed)
694 * @arg SDIO_FLAG_CMDSENT: Command sent (no response required)
695 * @arg SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero)
696 * @arg SDIO_FLAG_STBITERR: Start bit not detected on all data signals in wide
697 * bus mode
698 * @arg SDIO_FLAG_DBCKEND: Data block sent/received (CRC check passed)
699 * @arg SDIO_FLAG_SDIOIT: SD I/O interrupt received
700 * @arg SDIO_FLAG_CEATAEND: CE-ATA command completion signal received for CMD61
701 * @retval None
702 */
\ In section .text, align 2, keep-with-next
703 void SDIO_ClearFlag(uint32_t SDIO_FLAG)
704 {
705 /* Check the parameters */
706 assert_param(IS_SDIO_CLEAR_FLAG(SDIO_FLAG));
707
708 SDIO->ICR = SDIO_FLAG;
\ SDIO_ClearFlag:
\ 00000000 .... LDR.N R1,??DataTable26_7 ;; 0x40018038
\ 00000002 0860 STR R0,[R1, #+0]
709 }
\ 00000004 7047 BX LR ;; return
710
711 /**
712 * @brief Checks whether the specified SDIO interrupt has occurred or not.
713 * @param SDIO_IT: specifies the SDIO interrupt source to check.
714 * This parameter can be one of the following values:
715 * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
716 * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
717 * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt
718 * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt
719 * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt
720 * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt
721 * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt
722 * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt
723 * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
724 * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide
725 * bus mode interrupt
726 * @arg SDIO_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
727 * @arg SDIO_IT_CMDACT: Command transfer in progress interrupt
728 * @arg SDIO_IT_TXACT: Data transmit in progress interrupt
729 * @arg SDIO_IT_RXACT: Data receive in progress interrupt
730 * @arg SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
731 * @arg SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt
732 * @arg SDIO_IT_TXFIFOF: Transmit FIFO full interrupt
733 * @arg SDIO_IT_RXFIFOF: Receive FIFO full interrupt
734 * @arg SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt
735 * @arg SDIO_IT_RXFIFOE: Receive FIFO empty interrupt
736 * @arg SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt
737 * @arg SDIO_IT_RXDAVL: Data available in receive FIFO interrupt
738 * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt
739 * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 interrupt
740 * @retval The new state of SDIO_IT (SET or RESET).
741 */
\ In section .text, align 2, keep-with-next
742 ITStatus SDIO_GetITStatus(uint32_t SDIO_IT)
743 {
\ SDIO_GetITStatus:
\ 00000000 0100 MOVS R1,R0
744 ITStatus bitstatus = RESET;
\ 00000002 0020 MOVS R0,#+0
745
746 /* Check the parameters */
747 assert_param(IS_SDIO_GET_IT(SDIO_IT));
748 if ((SDIO->STA & SDIO_IT) != (uint32_t)RESET)
\ 00000004 .... LDR.N R2,??DataTable26_26 ;; 0x40018034
\ 00000006 1268 LDR R2,[R2, #+0]
\ 00000008 0A42 TST R2,R1
\ 0000000A 02D0 BEQ.N ??SDIO_GetITStatus_0
749 {
750 bitstatus = SET;
\ 0000000C 0122 MOVS R2,#+1
\ 0000000E 1000 MOVS R0,R2
\ 00000010 01E0 B.N ??SDIO_GetITStatus_1
751 }
752 else
753 {
754 bitstatus = RESET;
\ ??SDIO_GetITStatus_0:
\ 00000012 0022 MOVS R2,#+0
\ 00000014 1000 MOVS R0,R2
755 }
756 return bitstatus;
\ ??SDIO_GetITStatus_1:
\ 00000016 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000018 7047 BX LR ;; return
757 }
758
759 /**
760 * @brief Clears the SDIO抯 interrupt pending bits.
761 * @param SDIO_IT: specifies the interrupt pending bit to clear.
762 * This parameter can be one or a combination of the following values:
763 * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
764 * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
765 * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt
766 * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt
767 * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt
768 * @arg SDIO_IT_RXOVERR: Received FIFO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -