📄 stm32f10x_bkp.lst
字号:
###############################################################################
# #
# IAR ANSI C/C++ Compiler V6.10.2.52244/W32 for ARM 07/Aug/2011 12:10:18 #
# Copyright 1999-2010 IAR Systems AB. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10 #
# x_StdPeriph_Driver\src\stm32f10x_bkp.c #
# Command line = F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10 #
# x_StdPeriph_Driver\src\stm32f10x_bkp.c -D #
# USE_STDPERIPH_DRIVER -D STM32F10X_CL -lCN #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\ -o F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Fla #
# sh\Obj\ --no_cse --no_unroll --no_inline #
# --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian=little --cpu=Cortex-M3 #
# -e --fpu=None --dlib_config #
# D:\arm\INC\c\DLib_Config_Normal.h -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\APP\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ #
# -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP #
# \ST\CMSIS\CM3\CoreSupport\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \CMSIS\CM3\DeviceSupport\ST\STM32F10x\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \STM32F10x_StdPeriph_Driver\inc\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\uC #
# OS-II\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II #
# \..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uCO #
# S-II\Source\ -I F:\stm32\我的程序\Micrium\Software\EWARM #
# \OS-II\..\..\uC-LIB\ -I F:\stm32\我的程序\Micrium\Softwa #
# re\EWARM\OS-II\..\..\uC-LIB\Ports\ARM-Cortex-M3\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uC- #
# CPU\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\. #
# .\..\uC-CPU\ARM-Cortex-M3\IAR\ -On --use_c++_inline #
# List file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\stm32f10x_bkp.lst #
# Object file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Obj #
# \stm32f10x_bkp.o #
# #
# #
###############################################################################
F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
1 /**
2 ******************************************************************************
3 * @file stm32f10x_bkp.c
4 * @author MCD Application Team
5 * @version V3.4.0
6 * @date 10/15/2010
7 * @brief This file provides all the BKP firmware functions.
8 ******************************************************************************
9 * @copy
10 *
11 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
12 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
13 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
14 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
15 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
16 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
17 *
18 * <h2><center>© COPYRIGHT 2010 STMicroelectronics</center></h2>
19 */
20
21 /* Includes ------------------------------------------------------------------*/
22 #include "stm32f10x_bkp.h"
23 #include "stm32f10x_rcc.h"
24
25 /** @addtogroup STM32F10x_StdPeriph_Driver
26 * @{
27 */
28
29 /** @defgroup BKP
30 * @brief BKP driver modules
31 * @{
32 */
33
34 /** @defgroup BKP_Private_TypesDefinitions
35 * @{
36 */
37
38 /**
39 * @}
40 */
41
42 /** @defgroup BKP_Private_Defines
43 * @{
44 */
45
46 /* ------------ BKP registers bit address in the alias region --------------- */
47 #define BKP_OFFSET (BKP_BASE - PERIPH_BASE)
48
49 /* --- CR Register ----*/
50
51 /* Alias word address of TPAL bit */
52 #define CR_OFFSET (BKP_OFFSET + 0x30)
53 #define TPAL_BitNumber 0x01
54 #define CR_TPAL_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPAL_BitNumber * 4))
55
56 /* Alias word address of TPE bit */
57 #define TPE_BitNumber 0x00
58 #define CR_TPE_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPE_BitNumber * 4))
59
60 /* --- CSR Register ---*/
61
62 /* Alias word address of TPIE bit */
63 #define CSR_OFFSET (BKP_OFFSET + 0x34)
64 #define TPIE_BitNumber 0x02
65 #define CSR_TPIE_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TPIE_BitNumber * 4))
66
67 /* Alias word address of TIF bit */
68 #define TIF_BitNumber 0x09
69 #define CSR_TIF_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TIF_BitNumber * 4))
70
71 /* Alias word address of TEF bit */
72 #define TEF_BitNumber 0x08
73 #define CSR_TEF_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TEF_BitNumber * 4))
74
75 /* ---------------------- BKP registers bit mask ------------------------ */
76
77 /* RTCCR register bit mask */
78 #define RTCCR_CAL_MASK ((uint16_t)0xFF80)
79 #define RTCCR_MASK ((uint16_t)0xFC7F)
80
81 /**
82 * @}
83 */
84
85
86 /** @defgroup BKP_Private_Macros
87 * @{
88 */
89
90 /**
91 * @}
92 */
93
94 /** @defgroup BKP_Private_Variables
95 * @{
96 */
97
98 /**
99 * @}
100 */
101
102 /** @defgroup BKP_Private_FunctionPrototypes
103 * @{
104 */
105
106 /**
107 * @}
108 */
109
110 /** @defgroup BKP_Private_Functions
111 * @{
112 */
113
114 /**
115 * @brief Deinitializes the BKP peripheral registers to their default reset values.
116 * @param None
117 * @retval None
118 */
\ In section .text, align 2, keep-with-next
119 void BKP_DeInit(void)
120 {
\ BKP_DeInit:
\ 00000000 80B5 PUSH {R7,LR}
121 RCC_BackupResetCmd(ENABLE);
\ 00000002 0120 MOVS R0,#+1
\ 00000004 ........ BL RCC_BackupResetCmd
122 RCC_BackupResetCmd(DISABLE);
\ 00000008 0020 MOVS R0,#+0
\ 0000000A ........ BL RCC_BackupResetCmd
123 }
\ 0000000E 01BD POP {R0,PC} ;; return
124
125 /**
126 * @brief Configures the Tamper Pin active level.
127 * @param BKP_TamperPinLevel: specifies the Tamper Pin active level.
128 * This parameter can be one of the following values:
129 * @arg BKP_TamperPinLevel_High: Tamper pin active on high level
130 * @arg BKP_TamperPinLevel_Low: Tamper pin active on low level
131 * @retval None
132 */
\ In section .text, align 2, keep-with-next
133 void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel)
134 {
135 /* Check the parameters */
136 assert_param(IS_BKP_TAMPER_PIN_LEVEL(BKP_TamperPinLevel));
137 *(__IO uint32_t *) CR_TPAL_BB = BKP_TamperPinLevel;
\ BKP_TamperPinLevelConfig:
\ 00000000 .... LDR.N R1,??DataTable10 ;; 0x420d8604
\ 00000002 80B2 UXTH R0,R0 ;; ZeroExt R0,R0,#+16,#+16
\ 00000004 0860 STR R0,[R1, #+0]
138 }
\ 00000006 7047 BX LR ;; return
139
140 /**
141 * @brief Enables or disables the Tamper Pin activation.
142 * @param NewState: new state of the Tamper Pin activation.
143 * This parameter can be: ENABLE or DISABLE.
144 * @retval None
145 */
\ In section .text, align 2, keep-with-next
146 void BKP_TamperPinCmd(FunctionalState NewState)
147 {
148 /* Check the parameters */
149 assert_param(IS_FUNCTIONAL_STATE(NewState));
150 *(__IO uint32_t *) CR_TPE_BB = (uint32_t)NewState;
\ BKP_TamperPinCmd:
\ 00000000 .... LDR.N R1,??DataTable10_1 ;; 0x420d8600
\ 00000002 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000004 0860 STR R0,[R1, #+0]
151 }
\ 00000006 7047 BX LR ;; return
152
153 /**
154 * @brief Enables or disables the Tamper Pin Interrupt.
155 * @param NewState: new state of the Tamper Pin Interrupt.
156 * This parameter can be: ENABLE or DISABLE.
157 * @retval None
158 */
\ In section .text, align 2, keep-with-next
159 void BKP_ITConfig(FunctionalState NewState)
160 {
161 /* Check the parameters */
162 assert_param(IS_FUNCTIONAL_STATE(NewState));
163 *(__IO uint32_t *) CSR_TPIE_BB = (uint32_t)NewState;
\ BKP_ITConfig:
\ 00000000 .... LDR.N R1,??DataTable10_2 ;; 0x420d8688
\ 00000002 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000004 0860 STR R0,[R1, #+0]
164 }
\ 00000006 7047 BX LR ;; return
165
166 /**
167 * @brief Select the RTC output source to output on the Tamper pin.
168 * @param BKP_RTCOutputSource: specifies the RTC output source.
169 * This parameter can be one of the following values:
170 * @arg BKP_RTCOutputSource_None: no RTC output on the Tamper pin.
171 * @arg BKP_RTCOutputSource_CalibClock: output the RTC clock with frequency
172 * divided by 64 on the Tamper pin.
173 * @arg BKP_RTCOutputSource_Alarm: output the RTC Alarm pulse signal on
174 * the Tamper pin.
175 * @arg BKP_RTCOutputSource_Second: output the RTC Second pulse signal on
176 * the Tamper pin.
177 * @retval None
178 */
\ In section .text, align 2, keep-with-next
179 void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource)
180 {
181 uint16_t tmpreg = 0;
\ BKP_RTCOutputConfig:
\ 00000000 0021 MOVS R1,#+0
182 /* Check the parameters */
183 assert_param(IS_BKP_RTC_OUTPUT_SOURCE(BKP_RTCOutputSource));
184 tmpreg = BKP->RTCCR;
\ 00000002 .... LDR.N R2,??DataTable10_3 ;; 0x40006c2c
\ 00000004 1288 LDRH R2,[R2, #+0]
\ 00000006 1100 MOVS R1,R2
185 /* Clear CCO, ASOE and ASOS bits */
186 tmpreg &= RTCCR_MASK;
\ 00000008 4FF67F42 MOVW R2,#+64639
\ 0000000C 1140 ANDS R1,R2,R1
187
188 /* Set CCO, ASOE and ASOS bits according to BKP_RTCOutputSource value */
189 tmpreg |= BKP_RTCOutputSource;
\ 0000000E 0143 ORRS R1,R0,R1
190 /* Store the new value */
191 BKP->RTCCR = tmpreg;
\ 00000010 .... LDR.N R2,??DataTable10_3 ;; 0x40006c2c
\ 00000012 1180 STRH R1,[R2, #+0]
192 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -