📄 stm32f10x_pwr.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_p #
# wr.c #
# Command line = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_p #
# wr.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3 #
# 210E-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_pwr.lst #
# Object file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\stm32f10x_pwr.r79 #
# #
# #
##############################################################################
F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_pwr.c
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2 * File Name : stm32f10x_pwr.c
3 * Author : MCD Application Team
4 * Version : V2.0
5 * Date : 05/23/2008
6 * Description : This file provides all the PWR 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_pwr.h"
20 #include "stm32f10x_rcc.h"
21
22 /* Private typedef -----------------------------------------------------------*/
23 /* Private define ------------------------------------------------------------*/
24 /* --------- PWR registers bit address in the alias region ---------- */
25 #define PWR_OFFSET (PWR_BASE - PERIPH_BASE)
26
27 /* --- CR Register ---*/
28 /* Alias word address of DBP bit */
29 #define CR_OFFSET (PWR_OFFSET + 0x00)
30 #define DBP_BitNumber 0x08
31 #define CR_DBP_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (DBP_BitNumber * 4))
32
33 /* Alias word address of PVDE bit */
34 #define PVDE_BitNumber 0x04
35 #define CR_PVDE_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PVDE_BitNumber * 4))
36
37 /* --- CSR Register ---*/
38 /* Alias word address of EWUP bit */
39 #define CSR_OFFSET (PWR_OFFSET + 0x04)
40 #define EWUP_BitNumber 0x08
41 #define CSR_EWUP_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (EWUP_BitNumber * 4))
42
43 /* ------------------ PWR registers bit mask ------------------------ */
44 /* CR register bit mask */
45 #define CR_PDDS_Set ((u32)0x00000002)
46 #define CR_DS_Mask ((u32)0xFFFFFFFC)
47 #define CR_CWUF_Set ((u32)0x00000004)
48 #define CR_PLS_Mask ((u32)0xFFFFFF1F)
49
50 /* --------- Cortex System Control register bit mask ---------------- */
51 /* Cortex System Control register address */
52 #define SCB_SysCtrl ((u32)0xE000ED10)
53 /* SLEEPDEEP bit mask */
54 #define SysCtrl_SLEEPDEEP_Set ((u32)0x00000004)
55
56 /* Private macro -------------------------------------------------------------*/
57 /* Private variables ---------------------------------------------------------*/
58 /* Private function prototypes -----------------------------------------------*/
59 /* Private functions ---------------------------------------------------------*/
60
61 /*******************************************************************************
62 * Function Name : PWR_DeInit
63 * Description : Deinitializes the PWR peripheral registers to their default
64 * reset values.
65 * Input : None
66 * Output : None
67 * Return : None
68 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
69 void PWR_DeInit(void)
70 {
\ PWR_DeInit:
\ 00000000 00B5 PUSH {LR}
71 RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE);
\ 00000002 0121 MOVS R1,#+1
\ 00000004 0807 LSLS R0,R1,#+28
\ 00000006 ........ _BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
72 RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, DISABLE);
\ 0000000A 0021 MOVS R1,#+0
\ 0000000C 5FF08050 MOVS R0,#+268435456
\ 00000010 ........ _BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
73 }
\ 00000014 00BD POP {PC} ;; return
74
75 /*******************************************************************************
76 * Function Name : PWR_BackupAccessCmd
77 * Description : Enables or disables access to the RTC and backup registers.
78 * Input : - NewState: new state of the access to the RTC and backup
79 * registers. This parameter can be: ENABLE or DISABLE.
80 * Output : None
81 * Return : None
82 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
83 void PWR_BackupAccessCmd(FunctionalState NewState)
84 {
85 /* Check the parameters */
86 assert_param(IS_FUNCTIONAL_STATE(NewState));
87
88 *(vu32 *) CR_DBP_BB = (u32)NewState;
\ PWR_BackupAccessCmd:
\ 00000000 0149 LDR.N R1,??PWR_BackupAccessCmd_0 ;; 0x420e0020
\ 00000002 0860 STR R0,[R1, #+0]
89 }
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??PWR_BackupAccessCmd_0:
\ 00000008 20000E42 DC32 0x420e0020
90
91 /*******************************************************************************
92 * Function Name : PWR_PVDCmd
93 * Description : Enables or disables the Power Voltage Detector(PVD).
94 * Input : - NewState: new state of the PVD.
95 * This parameter can be: ENABLE or DISABLE.
96 * Output : None
97 * Return : None
98 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
99 void PWR_PVDCmd(FunctionalState NewState)
100 {
101 /* Check the parameters */
102 assert_param(IS_FUNCTIONAL_STATE(NewState));
103
104 *(vu32 *) CR_PVDE_BB = (u32)NewState;
\ PWR_PVDCmd:
\ 00000000 0149 LDR.N R1,??PWR_PVDCmd_0 ;; 0x420e0010
\ 00000002 0860 STR R0,[R1, #+0]
105 }
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??PWR_PVDCmd_0:
\ 00000008 10000E42 DC32 0x420e0010
106
107 /*******************************************************************************
108 * Function Name : PWR_PVDLevelConfig
109 * Description : Configures the voltage threshold detected by the Power Voltage
110 * Detector(PVD).
111 * Input : - PWR_PVDLevel: specifies the PVD detection level
112 * This parameter can be one of the following values:
113 * - PWR_PVDLevel_2V2: PVD detection level set to 2.2V
114 * - PWR_PVDLevel_2V3: PVD detection level set to 2.3V
115 * - PWR_PVDLevel_2V4: PVD detection level set to 2.4V
116 * - PWR_PVDLevel_2V5: PVD detection level set to 2.5V
117 * - PWR_PVDLevel_2V6: PVD detection level set to 2.6V
118 * - PWR_PVDLevel_2V7: PVD detection level set to 2.7V
119 * - PWR_PVDLevel_2V8: PVD detection level set to 2.8V
120 * - PWR_PVDLevel_2V9: PVD detection level set to 2.9V
121 * Output : None
122 * Return : None
123 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
124 void PWR_PVDLevelConfig(u32 PWR_PVDLevel)
125 {
126 u32 tmpreg = 0;
127
128 /* Check the parameters */
129 assert_param(IS_PWR_PVD_LEVEL(PWR_PVDLevel));
130
131 tmpreg = PWR->CR;
\ PWR_PVDLevelConfig:
\ 00000000 .... LDR.N R1,??DataTable5 ;; 0x40007000
\ 00000002 0A68 LDR R2,[R1, #+0]
132
133 /* Clear PLS[7:5] bits */
134 tmpreg &= CR_PLS_Mask;
135
136 /* Set PLS[7:5] bits according to PWR_PVDLevel value */
137 tmpreg |= PWR_PVDLevel;
138
139 /* Store the new value */
140 PWR->CR = tmpreg;
\ 00000004 E023 MOVS R3,#+224
\ 00000006 9A43 BICS R2,R2,R3
\ 00000008 1043 ORRS R0,R0,R2
\ 0000000A 0860 STR R0,[R1, #+0]
141 }
\ 0000000C 7047 BX LR ;; return
142
143 /*******************************************************************************
144 * Function Name : PWR_WakeUpPinCmd
145 * Description : Enables or disables the WakeUp Pin functionality.
146 * Input : - NewState: new state of the WakeUp Pin functionality.
147 * This parameter can be: ENABLE or DISABLE.
148 * Output : None
149 * Return : None
150 *******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -