初始版本

This commit is contained in:
冯佳
2025-06-25 11:12:18 +08:00
parent db5c55af45
commit 8a2b0e21ee
1503 changed files with 1163734 additions and 0 deletions

View File

@ -0,0 +1,685 @@
ARM GAS /tmp/ccTjX6jT.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "stm32f4xx_hal_wwdg.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .section .text.HAL_WWDG_MspInit,"ax",%progbits
20 .align 1
21 .weak HAL_WWDG_MspInit
22 .syntax unified
23 .thumb
24 .thumb_func
26 HAL_WWDG_MspInit:
27 .LVL0:
28 .LFB135:
29 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c"
1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ******************************************************************************
3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @file stm32f4xx_hal_wwdg.c
4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @author MCD Application Team
5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief WWDG HAL module driver.
6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * functionalities of the Window Watchdog (WWDG) peripheral:
8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * + Initialization and Configuration functions
9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * + IO operation functions
10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ******************************************************************************
11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @attention
12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *
13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * Copyright (c) 2016 STMicroelectronics.
14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * All rights reserved.
15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *
16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * This software is licensed under terms that can be found in the LICENSE file
17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * in the root directory of this software component.
18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *
20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ******************************************************************************
21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** @verbatim
22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ##### WWDG Specific features #####
24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** Once enabled the WWDG generates a system reset on expiry of a programmed
27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** time period, unless the program refreshes the counter (T[6;0] downcounter)
28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** before reaching 0x3F value (i.e. a reset is generated when the counter
29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** value rolls down from 0x40 to 0x3F).
ARM GAS /tmp/ccTjX6jT.s page 2
30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) An MCU reset is also generated if the counter value is refreshed
32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** before the counter has reached the refresh window value. This
33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** implies that the counter must be refreshed in a limited window.
34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Once enabled the WWDG cannot be disabled except by a system reset.
35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) If required by application, an Early Wakeup Interrupt can be triggered
36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** in order to be warned before WWDG expiration. The Early Wakeup Interrupt
37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (EWI) can be used if specific safety operations or data logging must
38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** be performed before the actual reset is generated. When the downcounter
39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** reaches 0x40, interrupt occurs. This mechanism requires WWDG interrupt
40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** line to be enabled in NVIC. Once enabled, EWI interrupt cannot be
41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** disabled except by a system reset.
42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) WWDGRST flag in RCC CSR register can be used to inform when a WWDG
43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** reset occurs.
44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) The WWDG counter input clock is derived from the APB clock divided
45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** by a programmable prescaler.
46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) WWDG clock (Hz) = PCLK1 / (4096 * Prescaler)
47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) WWDG timeout (mS) = 1000 * (T[5;0] + 1) / WWDG clock (Hz)
48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** where T[5;0] are the lowest 6 bits of Counter.
49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) WWDG Counter refresh is allowed between the following limits :
50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) min time (mS) = 1000 * (Counter - Window) / WWDG clock
51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) max time (mS) = 1000 * (Counter - 0x40) / WWDG clock
52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Typical values:
53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) Counter min (T[5;0] = 0x00) at 42MHz (PCLK1) with zero prescaler:
54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** max timeout before reset: approximately 97.52us
55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) Counter max (T[5;0] = 0x3F) at 42MHz (PCLK1) with prescaler
56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** dividing by 8:
57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** max timeout before reset: approximately 49.93ms
58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ##### How to use this driver #####
60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *** Common driver usage ***
63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ===========================
64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Enable WWDG APB1 clock using __HAL_RCC_WWDG_CLK_ENABLE().
67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Configure the WWDG prescaler, refresh window value, counter value and early
68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** interrupt status using HAL_WWDG_Init() function. This will automatically
69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** enable WWDG and start its downcounter. Time reference can be taken from
70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** function exit. Care must be taken to provide a counter value
71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** greater than 0x40 to prevent generation of immediate reset.
72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) If the Early Wakeup Interrupt (EWI) feature is enabled, an interrupt is
73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** generated when the counter reaches 0x40. When HAL_WWDG_IRQHandler is
74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** triggered by the interrupt service routine, flag will be automatically
75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** cleared and HAL_WWDG_WakeupCallback user callback will be executed. User
76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** can add his own code by customization of callback HAL_WWDG_WakeupCallback.
77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Then the application program must refresh the WWDG counter at regular
78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** intervals during normal operation to prevent an MCU reset, using
79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_WWDG_Refresh() function. This operation must occur only when
80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** the counter is lower than the refresh window value already programmed.
81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *** Callback registration ***
83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** =============================
84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** The compilation define USE_HAL_WWDG_REGISTER_CALLBACKS when set to 1 allows
ARM GAS /tmp/ccTjX6jT.s page 3
87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** the user to configure dynamically the driver callbacks. Use Functions
88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_WWDG_RegisterCallback() to register a user callback.
89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Function HAL_WWDG_RegisterCallback() allows to register following
91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** callbacks:
92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) EwiCallback : callback for Early WakeUp Interrupt.
93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) MspInitCallback : WWDG MspInit.
94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** and a pointer to the user callback function.
96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Use function HAL_WWDG_UnRegisterCallback() to reset a callback to
98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** the default weak function. HAL_WWDG_UnRegisterCallback()
99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** takes as parameters the HAL peripheral handle and the Callback ID.
100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** This function allows to reset following callbacks:
101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) EwiCallback : callback for Early WakeUp Interrupt.
102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (++) MspInitCallback : WWDG MspInit.
103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** When calling HAL_WWDG_Init function, callbacks are reset to the
106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** corresponding legacy weak functions:
107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_WWDG_EarlyWakeupCallback() and HAL_WWDG_MspInit() only if they have
108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** not been registered before.
109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** When compilation define USE_HAL_WWDG_REGISTER_CALLBACKS is set to 0 or
112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** not defined, the callback registering feature is not available
113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** and weak (overridden) callbacks are used.
114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *** WWDG HAL driver macros list ***
116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ===================================
117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** Below the list of available macros in WWDG HAL driver.
119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) __HAL_WWDG_ENABLE: Enable the WWDG peripheral
120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) __HAL_WWDG_GET_FLAG: Get the selected WWDG's flag status
121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) __HAL_WWDG_CLEAR_FLAG: Clear the WWDG's pending flags
122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) __HAL_WWDG_ENABLE_IT: Enable the WWDG early wakeup interrupt
123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** @endverbatim
125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Includes ------------------------------------------------------------------*/
128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #include "stm32f4xx_hal.h"
129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /** @addtogroup STM32F4xx_HAL_Driver
131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @{
132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #ifdef HAL_WWDG_MODULE_ENABLED
135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /** @defgroup WWDG WWDG
136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief WWDG HAL module driver.
137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @{
138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Private typedef -----------------------------------------------------------*/
141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Private define ------------------------------------------------------------*/
142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Private macro -------------------------------------------------------------*/
143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Private variables ---------------------------------------------------------*/
ARM GAS /tmp/ccTjX6jT.s page 4
144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Private function prototypes -----------------------------------------------*/
145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Exported functions --------------------------------------------------------*/
146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /** @defgroup WWDG_Exported_Functions WWDG Exported Functions
148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @{
149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /** @defgroup WWDG_Exported_Functions_Group1 Initialization and Configuration functions
152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Initialization and Configuration functions.
153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *
154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** @verbatim
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ##### Initialization and Configuration functions #####
157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** This section provides functions allowing to:
160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Initialize and start the WWDG according to the specified parameters
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** in the WWDG_InitTypeDef of associated handle.
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Initialize the WWDG MSP.
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** @endverbatim
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @{
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Initialize the WWDG according to the specified.
170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * parameters in the WWDG_InitTypeDef of associated handle.
171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * the configuration information for the specified WWDG module.
173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval HAL status
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg)
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check the WWDG handle allocation */
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** if (hwwdg == NULL)
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** return HAL_ERROR;
181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check the parameters */
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_ALL_INSTANCE(hwwdg->Instance));
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_PRESCALER(hwwdg->Init.Prescaler));
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_WINDOW(hwwdg->Init.Window));
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_COUNTER(hwwdg->Init.Counter));
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_EWI_MODE(hwwdg->Init.EWIMode));
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1)
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Reset Callback pointers */
192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** if (hwwdg->EwiCallback == NULL)
193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->EwiCallback = HAL_WWDG_EarlyWakeupCallback;
195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** if (hwwdg->MspInitCallback == NULL)
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->MspInitCallback = HAL_WWDG_MspInit;
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
ARM GAS /tmp/ccTjX6jT.s page 5
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Init the low level hardware */
203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->MspInitCallback(hwwdg);
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #else
205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Init the low level hardware */
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_WWDG_MspInit(hwwdg);
207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Set WWDG Counter */
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** WRITE_REG(hwwdg->Instance->CR, (WWDG_CR_WDGA | hwwdg->Init.Counter));
211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Set WWDG Prescaler and Window */
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** WRITE_REG(hwwdg->Instance->CFR, (hwwdg->Init.EWIMode | hwwdg->Init.Prescaler | hwwdg->Init.Window
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Return function status */
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** return HAL_OK;
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Initialize the WWDG MSP.
222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * the configuration information for the specified WWDG module.
224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @note When rewriting this function in user file, mechanism may be added
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * to avoid multiple initialize when HAL_WWDG_Init function is called
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * again to change parameters.
227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval None
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** __weak void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg)
230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
30 .loc 1 230 1 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 @ link register save eliminated.
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Prevent unused argument(s) compilation warning */
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** UNUSED(hwwdg);
35 .loc 1 232 3 view .LVU1
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* NOTE: This function should not be modified, when the callback is needed,
235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** the HAL_WWDG_MspInit could be implemented in the user file
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
36 .loc 1 237 1 is_stmt 0 view .LVU2
37 0000 7047 bx lr
38 .cfi_endproc
39 .LFE135:
41 .section .text.HAL_WWDG_Init,"ax",%progbits
42 .align 1
43 .global HAL_WWDG_Init
44 .syntax unified
45 .thumb
46 .thumb_func
48 HAL_WWDG_Init:
49 .LVL1:
50 .LFB134:
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check the WWDG handle allocation */
ARM GAS /tmp/ccTjX6jT.s page 6
51 .loc 1 176 1 is_stmt 1 view -0
52 .cfi_startproc
53 @ args = 0, pretend = 0, frame = 0
54 @ frame_needed = 0, uses_anonymous_args = 0
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
55 .loc 1 178 3 view .LVU4
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
56 .loc 1 178 6 is_stmt 0 view .LVU5
57 0000 88B1 cbz r0, .L4
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check the WWDG handle allocation */
58 .loc 1 176 1 view .LVU6
59 0002 10B5 push {r4, lr}
60 .LCFI0:
61 .cfi_def_cfa_offset 8
62 .cfi_offset 4, -8
63 .cfi_offset 14, -4
64 0004 0446 mov r4, r0
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_PRESCALER(hwwdg->Init.Prescaler));
65 .loc 1 184 3 is_stmt 1 view .LVU7
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_WINDOW(hwwdg->Init.Window));
66 .loc 1 185 3 view .LVU8
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_COUNTER(hwwdg->Init.Counter));
67 .loc 1 186 3 view .LVU9
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** assert_param(IS_WWDG_EWI_MODE(hwwdg->Init.EWIMode));
68 .loc 1 187 3 view .LVU10
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
69 .loc 1 188 3 view .LVU11
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */
70 .loc 1 206 3 view .LVU12
71 0006 FFF7FEFF bl HAL_WWDG_MspInit
72 .LVL2:
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
73 .loc 1 210 3 view .LVU13
74 000a E368 ldr r3, [r4, #12]
75 000c 2268 ldr r2, [r4]
76 000e 43F08003 orr r3, r3, #128
77 0012 1360 str r3, [r2]
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
78 .loc 1 213 3 view .LVU14
79 0014 2369 ldr r3, [r4, #16]
80 0016 6268 ldr r2, [r4, #4]
81 0018 1343 orrs r3, r3, r2
82 001a A168 ldr r1, [r4, #8]
83 001c 2268 ldr r2, [r4]
84 001e 0B43 orrs r3, r3, r1
85 0020 5360 str r3, [r2, #4]
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
86 .loc 1 216 3 view .LVU15
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
87 .loc 1 216 10 is_stmt 0 view .LVU16
88 0022 0020 movs r0, #0
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
89 .loc 1 217 1 view .LVU17
90 0024 10BD pop {r4, pc}
91 .LVL3:
92 .L4:
93 .LCFI1:
ARM GAS /tmp/ccTjX6jT.s page 7
94 .cfi_def_cfa_offset 0
95 .cfi_restore 4
96 .cfi_restore 14
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
97 .loc 1 180 12 view .LVU18
98 0026 0120 movs r0, #1
99 .LVL4:
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
100 .loc 1 217 1 view .LVU19
101 0028 7047 bx lr
102 .cfi_endproc
103 .LFE134:
105 .section .text.HAL_WWDG_Refresh,"ax",%progbits
106 .align 1
107 .global HAL_WWDG_Refresh
108 .syntax unified
109 .thumb
110 .thumb_func
112 HAL_WWDG_Refresh:
113 .LVL5:
114 .LFB136:
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1)
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Register a User WWDG Callback
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * To be used instead of the weak (overridden) predefined callback
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg WWDG handle
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param CallbackID ID of the callback to be registered
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * This parameter can be one of the following values:
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @arg @ref HAL_WWDG_EWI_CB_ID Early WakeUp Interrupt Callback ID
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @arg @ref HAL_WWDG_MSPINIT_CB_ID MspInit callback ID
249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param pCallback pointer to the Callback function
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval status
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_StatusTypeDef HAL_WWDG_RegisterCallback(WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef C
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** pWWDG_CallbackTypeDef pCallback)
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_StatusTypeDef status = HAL_OK;
256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** if (pCallback == NULL)
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** status = HAL_ERROR;
260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** else
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** switch (CallbackID)
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** case HAL_WWDG_EWI_CB_ID:
266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->EwiCallback = pCallback;
267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** break;
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** case HAL_WWDG_MSPINIT_CB_ID:
270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->MspInitCallback = pCallback;
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** break;
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** default:
ARM GAS /tmp/ccTjX6jT.s page 8
274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** status = HAL_ERROR;
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** break;
276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** return status;
280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Unregister a WWDG Callback
285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * WWDG Callback is redirected to the weak (overridden) predefined callback
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg WWDG handle
287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param CallbackID ID of the callback to be registered
288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * This parameter can be one of the following values:
289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @arg @ref HAL_WWDG_EWI_CB_ID Early WakeUp Interrupt Callback ID
290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @arg @ref HAL_WWDG_MSPINIT_CB_ID MspInit callback ID
291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval status
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_StatusTypeDef HAL_WWDG_UnRegisterCallback(WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef
294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_StatusTypeDef status = HAL_OK;
296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** switch (CallbackID)
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** case HAL_WWDG_EWI_CB_ID:
300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->EwiCallback = HAL_WWDG_EarlyWakeupCallback;
301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** break;
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** case HAL_WWDG_MSPINIT_CB_ID:
304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->MspInitCallback = HAL_WWDG_MspInit;
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** break;
306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** default:
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** status = HAL_ERROR;
309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** break;
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** return status;
313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @}
318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /** @defgroup WWDG_Exported_Functions_Group2 IO operation functions
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief IO operation functions
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** *
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** @verbatim
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ##### IO operation functions #####
326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** ==============================================================================
327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** [..]
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** This section provides functions allowing to:
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Refresh the WWDG.
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** (+) Handle WWDG interrupt request and associated function callback.
ARM GAS /tmp/ccTjX6jT.s page 9
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** @endverbatim
333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @{
334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Refresh the WWDG.
338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * the configuration information for the specified WWDG module.
340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval HAL status
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg)
343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
115 .loc 1 343 1 is_stmt 1 view -0
116 .cfi_startproc
117 @ args = 0, pretend = 0, frame = 0
118 @ frame_needed = 0, uses_anonymous_args = 0
119 @ link register save eliminated.
344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Write to WWDG CR the WWDG Counter value to refresh with */
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** WRITE_REG(hwwdg->Instance->CR, (hwwdg->Init.Counter));
120 .loc 1 345 3 view .LVU21
121 0000 0368 ldr r3, [r0]
122 0002 C268 ldr r2, [r0, #12]
123 0004 1A60 str r2, [r3]
346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Return function status */
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** return HAL_OK;
124 .loc 1 348 3 view .LVU22
349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
125 .loc 1 349 1 is_stmt 0 view .LVU23
126 0006 0020 movs r0, #0
127 .LVL6:
128 .loc 1 349 1 view .LVU24
129 0008 7047 bx lr
130 .cfi_endproc
131 .LFE136:
133 .section .text.HAL_WWDG_EarlyWakeupCallback,"ax",%progbits
134 .align 1
135 .weak HAL_WWDG_EarlyWakeupCallback
136 .syntax unified
137 .thumb
138 .thumb_func
140 HAL_WWDG_EarlyWakeupCallback:
141 .LVL7:
142 .LFB138:
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief Handle WWDG interrupt request.
353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @note The Early Wakeup Interrupt (EWI) can be used if specific safety operations
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * or data logging must be performed before the actual reset is generated.
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * The EWI interrupt is enabled by calling HAL_WWDG_Init function with
356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * EWIMode set to WWDG_EWI_ENABLE.
357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * When the downcounter reaches the value 0x40, and EWI interrupt is
358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * generated and the corresponding Interrupt Service Routine (ISR) can
359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * be used to trigger specific actions (such as communications or data
360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * logging), before resetting the device.
361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
ARM GAS /tmp/ccTjX6jT.s page 10
362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * the configuration information for the specified WWDG module.
363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval None
364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg)
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check if Early Wakeup Interrupt is enable */
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** if (__HAL_WWDG_GET_IT_SOURCE(hwwdg, WWDG_IT_EWI) != RESET)
369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check if WWDG Early Wakeup Interrupt occurred */
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** if (__HAL_WWDG_GET_FLAG(hwwdg, WWDG_FLAG_EWIF) != RESET)
372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Clear the WWDG Early Wakeup flag */
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** __HAL_WWDG_CLEAR_FLAG(hwwdg, WWDG_FLAG_EWIF);
375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1)
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Early Wakeup registered callback */
378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** hwwdg->EwiCallback(hwwdg);
379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #else
380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Early Wakeup callback */
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** HAL_WWDG_EarlyWakeupCallback(hwwdg);
382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /**
389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @brief WWDG Early Wakeup callback.
390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * the configuration information for the specified WWDG module.
392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** * @retval None
393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** __weak void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg)
395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
143 .loc 1 395 1 is_stmt 1 view -0
144 .cfi_startproc
145 @ args = 0, pretend = 0, frame = 0
146 @ frame_needed = 0, uses_anonymous_args = 0
147 @ link register save eliminated.
396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Prevent unused argument(s) compilation warning */
397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** UNUSED(hwwdg);
148 .loc 1 397 3 view .LVU26
398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* NOTE: This function should not be modified, when the callback is needed,
400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** the HAL_WWDG_EarlyWakeupCallback could be implemented in the user file
401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** */
402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** }
149 .loc 1 402 1 is_stmt 0 view .LVU27
150 0000 7047 bx lr
151 .cfi_endproc
152 .LFE138:
154 .section .text.HAL_WWDG_IRQHandler,"ax",%progbits
155 .align 1
156 .global HAL_WWDG_IRQHandler
157 .syntax unified
158 .thumb
159 .thumb_func
ARM GAS /tmp/ccTjX6jT.s page 11
161 HAL_WWDG_IRQHandler:
162 .LVL8:
163 .LFB137:
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check if Early Wakeup Interrupt is enable */
164 .loc 1 366 1 is_stmt 1 view -0
165 .cfi_startproc
166 @ args = 0, pretend = 0, frame = 0
167 @ frame_needed = 0, uses_anonymous_args = 0
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** /* Check if Early Wakeup Interrupt is enable */
168 .loc 1 366 1 is_stmt 0 view .LVU29
169 0000 08B5 push {r3, lr}
170 .LCFI2:
171 .cfi_def_cfa_offset 8
172 .cfi_offset 3, -8
173 .cfi_offset 14, -4
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
174 .loc 1 368 3 is_stmt 1 view .LVU30
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
175 .loc 1 368 7 is_stmt 0 view .LVU31
176 0002 0368 ldr r3, [r0]
177 0004 5A68 ldr r2, [r3, #4]
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
178 .loc 1 368 6 view .LVU32
179 0006 12F4007F tst r2, #512
180 000a 03D0 beq .L11
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
181 .loc 1 371 5 is_stmt 1 view .LVU33
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
182 .loc 1 371 9 is_stmt 0 view .LVU34
183 000c 9A68 ldr r2, [r3, #8]
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** {
184 .loc 1 371 8 view .LVU35
185 000e 12F0010F tst r2, #1
186 0012 00D1 bne .L14
187 .LVL9:
188 .L11:
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
189 .loc 1 385 1 view .LVU36
190 0014 08BD pop {r3, pc}
191 .LVL10:
192 .L14:
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
193 .loc 1 374 7 is_stmt 1 view .LVU37
194 0016 6FF00102 mvn r2, #1
195 001a 9A60 str r2, [r3, #8]
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c **** #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */
196 .loc 1 381 7 view .LVU38
197 001c FFF7FEFF bl HAL_WWDG_EarlyWakeupCallback
198 .LVL11:
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c ****
199 .loc 1 385 1 is_stmt 0 view .LVU39
200 0020 F8E7 b .L11
201 .cfi_endproc
202 .LFE137:
204 .text
205 .Letext0:
206 .file 2 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_defaul
ARM GAS /tmp/ccTjX6jT.s page 12
207 .file 3 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h"
208 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
209 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
210 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
211 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h"
ARM GAS /tmp/ccTjX6jT.s page 13
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f4xx_hal_wwdg.c
/tmp/ccTjX6jT.s:20 .text.HAL_WWDG_MspInit:0000000000000000 $t
/tmp/ccTjX6jT.s:26 .text.HAL_WWDG_MspInit:0000000000000000 HAL_WWDG_MspInit
/tmp/ccTjX6jT.s:42 .text.HAL_WWDG_Init:0000000000000000 $t
/tmp/ccTjX6jT.s:48 .text.HAL_WWDG_Init:0000000000000000 HAL_WWDG_Init
/tmp/ccTjX6jT.s:106 .text.HAL_WWDG_Refresh:0000000000000000 $t
/tmp/ccTjX6jT.s:112 .text.HAL_WWDG_Refresh:0000000000000000 HAL_WWDG_Refresh
/tmp/ccTjX6jT.s:134 .text.HAL_WWDG_EarlyWakeupCallback:0000000000000000 $t
/tmp/ccTjX6jT.s:140 .text.HAL_WWDG_EarlyWakeupCallback:0000000000000000 HAL_WWDG_EarlyWakeupCallback
/tmp/ccTjX6jT.s:155 .text.HAL_WWDG_IRQHandler:0000000000000000 $t
/tmp/ccTjX6jT.s:161 .text.HAL_WWDG_IRQHandler:0000000000000000 HAL_WWDG_IRQHandler
NO UNDEFINED SYMBOLS