Files
stm32f4_makefile/build/stm32f4xx_hal_wwdg.lst
2025-06-25 11:12:35 +08:00

686 lines
52 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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