📄 stm32f10x_sdio.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART 26/Dec/2008 18:22:07 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Stack alignment = 4 #
# Source file = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_s #
# dio.c #
# Command line = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_s #
# dio.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM #
# 3210E-EVAL\IAR\OS-Probe\Flash\List\ -o #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll --no_inline #
# --no_tbaa --no_scheduling --debug --cpu_mode thumb #
# --endian little --cpu cortex-M3 --stack_align 4 -e #
# --fpu None --dlib_config "E:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl7mptnnl8n.h" -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ #
# ST\STM3210E-EVAL\IAR\OS-Probe\..\BSP\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\CPU\ST\STM32\inc\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ARM-Cortex-M3\IAR #
# \ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E- #
# EVAL\IAR\OS-Probe\..\..\..\..\..\uC-LCD\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-LIB\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uCOS-II\Ports\ARM-Cortex #
# -M3\Generic\IAR\ -I F:\PROJECT\STM32_UCOSII\EvalBoar #
# ds\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uCOS #
# -II\Source\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST #
# \STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uC-Probe\ #
# Target\Communication\Generic\RS-232\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\RS-232\Ports\ST\STM32\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\Source\ -I F:\PROJECT\STM32_UCOSII\Eva #
# lBoards\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\.. #
# \uC-Probe\Target\Plugins\uCOS-II\ -I "E:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Kickstart\arm\INC\" #
# List file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\List\stm32f10x_sdio.lst #
# Object file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\stm32f10x_sdio.r79 #
# #
# #
##############################################################################
F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_sdio.c
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2 * File Name : stm32f10x_sdio.c
3 * Author : MCD Application Team
4 * Version : V2.0
5 * Date : 05/23/2008
6 * Description : This file provides all the SDIO firmware functions.
7 ********************************************************************************
8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14 * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
15 * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
16 *******************************************************************************/
17
18 /* Includes ------------------------------------------------------------------*/
19 #include "stm32f10x_sdio.h"
20 #include "stm32f10x_rcc.h"
21
22 /* Private typedef -----------------------------------------------------------*/
23 /* ------------ SDIO registers bit address in the alias region ----------- */
24 #define SDIO_OFFSET (SDIO_BASE - PERIPH_BASE)
25
26 /* --- CLKCR Register ---*/
27 /* Alias word address of CLKEN bit */
28 #define CLKCR_OFFSET (SDIO_OFFSET + 0x04)
29 #define CLKEN_BitNumber 0x08
30 #define CLKCR_CLKEN_BB (PERIPH_BB_BASE + (CLKCR_OFFSET * 32) + (CLKEN_BitNumber * 4))
31
32 /* --- CMD Register ---*/
33 /* Alias word address of SDIOSUSPEND bit */
34 #define CMD_OFFSET (SDIO_OFFSET + 0x0C)
35 #define SDIOSUSPEND_BitNumber 0x0B
36 #define CMD_SDIOSUSPEND_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (SDIOSUSPEND_BitNumber * 4))
37
38 /* Alias word address of ENCMDCOMPL bit */
39 #define ENCMDCOMPL_BitNumber 0x0C
40 #define CMD_ENCMDCOMPL_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ENCMDCOMPL_BitNumber * 4))
41
42 /* Alias word address of NIEN bit */
43 #define NIEN_BitNumber 0x0D
44 #define CMD_NIEN_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (NIEN_BitNumber * 4))
45
46 /* Alias word address of ATACMD bit */
47 #define ATACMD_BitNumber 0x0E
48 #define CMD_ATACMD_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ATACMD_BitNumber * 4))
49
50 /* --- DCTRL Register ---*/
51 /* Alias word address of DMAEN bit */
52 #define DCTRL_OFFSET (SDIO_OFFSET + 0x2C)
53 #define DMAEN_BitNumber 0x03
54 #define DCTRL_DMAEN_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (DMAEN_BitNumber * 4))
55
56 /* Alias word address of RWSTART bit */
57 #define RWSTART_BitNumber 0x08
58 #define DCTRL_RWSTART_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTART_BitNumber * 4))
59
60 /* Alias word address of RWSTOP bit */
61 #define RWSTOP_BitNumber 0x09
62 #define DCTRL_RWSTOP_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTOP_BitNumber * 4))
63
64 /* Alias word address of RWMOD bit */
65 #define RWMOD_BitNumber 0x0A
66 #define DCTRL_RWMOD_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWMOD_BitNumber * 4))
67
68 /* Alias word address of SDIOEN bit */
69 #define SDIOEN_BitNumber 0x0B
70 #define DCTRL_SDIOEN_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (SDIOEN_BitNumber * 4))
71
72
73 /* ---------------------- SDIO registers bit mask ------------------------ */
74 /* --- CLKCR Register ---*/
75 /* CLKCR register clear mask */
76 #define CLKCR_CLEAR_MASK ((u32)0xFFFF8100)
77
78 /* --- PWRCTRL Register ---*/
79 /* SDIO PWRCTRL Mask */
80 #define PWR_PWRCTRL_MASK ((u32)0xFFFFFFFC)
81
82 /* --- DCTRL Register ---*/
83 /* SDIO DCTRL Clear Mask */
84 #define DCTRL_CLEAR_MASK ((u32)0xFFFFFF08)
85
86 /* --- CMD Register ---*/
87 /* CMD Register clear mask */
88 #define CMD_CLEAR_MASK ((u32)0xFFFFF800)
89
90 /* SDIO RESP Registers Address */
91 #define SDIO_RESP_ADDR ((u32)(SDIO_BASE + 0x14))
92
93 /* Private define ------------------------------------------------------------*/
94 /* Private macro -------------------------------------------------------------*/
95 /* Private variables ---------------------------------------------------------*/
96 /* Private function prototypes -----------------------------------------------*/
97 /* Private functions ---------------------------------------------------------*/
98
99 /*******************************************************************************
100 * Function Name : SDIO_DeInit
101 * Description : Deinitializes the SDIO peripheral registers to their default
102 * reset values.
103 * Input : None
104 * Output : None
105 * Return : None
106 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
107 void SDIO_DeInit(void)
108 {
109 SDIO->POWER = 0x00000000;
\ SDIO_DeInit:
\ 00000000 0020 MOVS R0,#+0
\ 00000002 .... LDR.N R1,??DataTable2 ;; 0x40018000
\ 00000004 0860 STR R0,[R1, #+0]
110 SDIO->CLKCR = 0x00000000;
\ 00000006 091D ADDS R1,R1,#+4
\ 00000008 0860 STR R0,[R1, #+0]
111 SDIO->ARG = 0x00000000;
\ 0000000A 091D ADDS R1,R1,#+4
\ 0000000C 0860 STR R0,[R1, #+0]
112 SDIO->CMD = 0x00000000;
\ 0000000E 091D ADDS R1,R1,#+4
\ 00000010 0860 STR R0,[R1, #+0]
113 SDIO->DTIMER = 0x00000000;
\ 00000012 1831 ADDS R1,R1,#+24
\ 00000014 0860 STR R0,[R1, #+0]
114 SDIO->DLEN = 0x00000000;
\ 00000016 091D ADDS R1,R1,#+4
\ 00000018 0860 STR R0,[R1, #+0]
115 SDIO->DCTRL = 0x00000000;
\ 0000001A 091D ADDS R1,R1,#+4
\ 0000001C 0860 STR R0,[R1, #+0]
116 SDIO->ICR = 0x00C007FF;
\ 0000001E 0C31 ADDS R1,R1,#+12
\ 00000020 024A LDR.N R2,??SDIO_DeInit_0 ;; 0xc007ff
\ 00000022 0A60 STR R2,[R1, #+0]
117 SDIO->MASK = 0x00000000;
\ 00000024 091D ADDS R1,R1,#+4
\ 00000026 0860 STR R0,[R1, #+0]
118 }
\ 00000028 7047 BX LR ;; return
\ 0000002A 00BF Nop
\ ??SDIO_DeInit_0:
\ 0000002C FF07C000 DC32 0xc007ff
119
120 /*******************************************************************************
121 * Function Name : SDIO_Init
122 * Description : Initializes the SDIO peripheral according to the specified
123 * parameters in the SDIO_InitStruct.
124 * Input : SDIO_InitStruct : pointer to a SDIO_InitTypeDef structure
125 * that contains the configuration information for the SDIO
126 * peripheral.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -