B3M38SPD seminar project - beehive monitor with LoRa reporting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
spd-lorabees/build/stm32l0xx_hal_iwdg.lst

458 lines
34 KiB

ARM GAS /tmp/ccx6pHMx.s page 1
1 .cpu cortex-m0plus
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32l0xx_hal_iwdg.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_IWDG_Init,"ax",%progbits
16 .align 1
17 .global HAL_IWDG_Init
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 HAL_IWDG_Init:
24 .LFB39:
25 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c"
1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /**
2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ******************************************************************************
3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @file stm32l0xx_hal_iwdg.c
4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @author MCD Application Team
5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @brief IWDG HAL module driver.
6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * This file provides firmware functions to manage the following
7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * functionalities of the Independent Watchdog (IWDG) peripheral:
8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * + Initialization and Start functions
9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * + IO operation functions
10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** @verbatim
12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ==============================================================================
13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ##### IWDG Generic features #####
14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ==============================================================================
15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** [..]
16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) The IWDG can be started by either software or hardware (configurable
17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** through option byte).
18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) The IWDG is clocked by Low-Speed clock (LSI) and thus stays active even
20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** if the main clock fails.
21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Once the IWDG is started, the LSI is forced ON and both can not be
23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** disabled. The counter starts counting down from the reset value (0xFFF).
24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** When it reaches the end of count value (0x000) a reset signal is
25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** generated (IWDG reset).
26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Whenever the key value 0x0000 AAAA is written in the IWDG_KR register,
28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** the IWDG_RLR value is reloaded in the counter and the watchdog reset is
29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** prevented.
30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) The IWDG is implemented in the VDD voltage domain that is still functional
32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** in STOP and STANDBY mode (IWDG reset can wake-up from STANDBY).
33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** IWDGRST flag in RCC_CSR register can be used to inform when an IWDG
ARM GAS /tmp/ccx6pHMx.s page 2
34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** reset occurs.
35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Debug mode : When the microcontroller enters debug mode (core halted),
37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** the IWDG counter either continues to work normally or stops, depending
38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** on DBG_IWDG_STOP configuration bit in DBG module, accessible through
39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** __HAL_DBGMCU_FREEZE_IWDG() and __HAL_DBGMCU_UNFREEZE_IWDG() macros
40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** [..] Min-max timeout value @32KHz (LSI): ~0.512ms / ~32.0s
42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** The IWDG timeout may vary due to LSI frequency dispersion. STM32L0xx
43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** devices provide the capability to measure the LSI frequency (LSI clock
44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** connected internally to TIM5 CH4 input capture). The measured value
45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** can be used to have an IWDG timeout with an acceptable accuracy.
46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ##### How to use this driver #####
48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ==============================================================================
49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** [..]
50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (#) Use IWDG using HAL_IWDG_Init() function to :
51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (++) Enable instance by writing Start keyword in IWDG_KEY register. LSI
52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** clock is forced ON and IWDG counter starts downcounting.
53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (++) Enable write access to configuration register: IWDG_PR, IWDG_RLR &
54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** IWDG_WINR.
55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (++) Configure the IWDG prescaler and counter reload value. This reload
56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** value will be loaded in the IWDG counter each time the watchdog is
57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** reloaded, then the IWDG will start counting down from this value.
58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (++) Wait for status flags to be reset
59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (++) Depending on window parameter:
60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+++) If Window Init parameter is same as Window register value,
61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** nothing more is done but reload counter value in order to exit
62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** function withy exact time base.
63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+++) Else modify Window register. This will automatically reload
64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** watchdog counter.
65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (#) Then the application program must refresh the IWDG counter at regular
67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** intervals during normal operation to prevent an MCU reset, using
68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** HAL_IWDG_Refresh() function.
69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *** IWDG HAL driver macros list ***
71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ====================================
72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** [..]
73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** Below the list of most used macros in IWDG HAL driver:
74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) __HAL_IWDG_START: Enable the IWDG peripheral
75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) __HAL_IWDG_RELOAD_COUNTER: Reloads IWDG counter with value defined in
76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** the reload register
77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** @endverbatim
79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ******************************************************************************
80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @attention
81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * Redistribution and use in source and binary forms, with or without modification,
85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * are permitted provided that the following conditions are met:
86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * 1. Redistributions of source code must retain the above copyright notice,
87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * this list of conditions and the following disclaimer.
88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * this list of conditions and the following disclaimer in the documentation
90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * and/or other materials provided with the distribution.
ARM GAS /tmp/ccx6pHMx.s page 3
91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * may be used to endorse or promote products derived from this software
93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * without specific prior written permission.
94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ******************************************************************************
107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Includes ------------------------------------------------------------------*/
110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** #include "stm32l0xx_hal.h"
111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /** @addtogroup STM32L0xx_HAL_Driver
113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @{
114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** #ifdef HAL_IWDG_MODULE_ENABLED
117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /** @addtogroup IWDG
118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @brief IWDG HAL module driver.
119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @{
120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Private typedef -----------------------------------------------------------*/
123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Private define ------------------------------------------------------------*/
124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /** @defgroup IWDG_Private_Defines IWDG Private Defines
125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @{
126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Status register need 5 RC LSI divided by prescaler clock to be updated. With
128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** higher prescaler (256), and according to LSI variation, we need to wait at
129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** least 6 cycles so 48 ms. */
130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** #define HAL_IWDG_DEFAULT_TIMEOUT 48U
131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /**
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @}
133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Private macro -------------------------------------------------------------*/
136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Private variables ---------------------------------------------------------*/
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Private function prototypes -----------------------------------------------*/
138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Exported functions --------------------------------------------------------*/
139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /** @addtogroup IWDG_Exported_Functions
141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @{
142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /** @addtogroup IWDG_Exported_Functions_Group1
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @brief Initialization and Start functions.
146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** @verbatim
ARM GAS /tmp/ccx6pHMx.s page 4
148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ===============================================================================
149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ##### Initialization and Start functions #####
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ===============================================================================
151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** [..] This section provides functions allowing to:
152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Initialize the IWDG according to the specified parameters in the
153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** IWDG_InitTypeDef of associated handle.
154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Manage Window option.
155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Once initialization is performed in HAL_IWDG_Init function, Watchdog
156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** is reloaded in order to exit function with correct time base.
157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** @endverbatim
159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @{
160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /**
163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @brief Initialize the IWDG according to the specified parameters in the
164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * IWDG_InitTypeDef and start watchdog. Before exiting function,
165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * watchdog is refreshed in order to have correct time base.
166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains
167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * the configuration information for the specified IWDG module.
168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @retval HAL status
169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg)
171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
26 .loc 1 171 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 .LVL0:
31 0000 70B5 push {r4, r5, r6, lr}
32 .LCFI0:
33 .cfi_def_cfa_offset 16
34 .cfi_offset 4, -16
35 .cfi_offset 5, -12
36 .cfi_offset 6, -8
37 .cfi_offset 14, -4
38 0002 041E subs r4, r0, #0
172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** uint32_t tickstart;
173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Check the IWDG handle allocation */
175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** if(hiwdg == NULL)
39 .loc 1 175 0
40 0004 24D0 beq .L6
176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** return HAL_ERROR;
178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Check the parameters */
181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** assert_param(IS_IWDG_ALL_INSTANCE(hiwdg->Instance));
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** assert_param(IS_IWDG_PRESCALER(hiwdg->Init.Prescaler));
183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** assert_param(IS_IWDG_RELOAD(hiwdg->Init.Reload));
184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** assert_param(IS_IWDG_WINDOW(hiwdg->Init.Window));
185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Enable IWDG. LSI is turned on automaticaly */
187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** __HAL_IWDG_START(hiwdg);
41 .loc 1 187 0
42 0006 0368 ldr r3, [r0]
ARM GAS /tmp/ccx6pHMx.s page 5
43 0008 124A ldr r2, .L9
44 000a 1A60 str r2, [r3]
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers by writing
190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** 0x5555 in KR */
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** IWDG_ENABLE_WRITE_ACCESS(hiwdg);
45 .loc 1 191 0
46 000c 0368 ldr r3, [r0]
47 000e 124A ldr r2, .L9+4
48 0010 1A60 str r2, [r3]
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Write to IWDG registers the Prescaler & Reload values to work with */
194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** hiwdg->Instance->PR = hiwdg->Init.Prescaler;
49 .loc 1 194 0
50 0012 0368 ldr r3, [r0]
51 0014 4268 ldr r2, [r0, #4]
52 0016 5A60 str r2, [r3, #4]
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** hiwdg->Instance->RLR = hiwdg->Init.Reload;
53 .loc 1 195 0
54 0018 0368 ldr r3, [r0]
55 001a 8268 ldr r2, [r0, #8]
56 001c 9A60 str r2, [r3, #8]
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Check pending flag, if previous update not done, return timeout */
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** tickstart = HAL_GetTick();
57 .loc 1 198 0
58 001e FFF7FEFF bl HAL_GetTick
59 .LVL1:
60 0022 0500 movs r5, r0
61 .LVL2:
62 .L3:
199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Wait for register to be updated */
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** while(hiwdg->Instance->SR != RESET)
63 .loc 1 201 0
64 0024 2368 ldr r3, [r4]
65 0026 DA68 ldr r2, [r3, #12]
66 0028 002A cmp r2, #0
67 002a 06D0 beq .L8
202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** if((HAL_GetTick() - tickstart ) > HAL_IWDG_DEFAULT_TIMEOUT)
68 .loc 1 203 0
69 002c FFF7FEFF bl HAL_GetTick
70 .LVL3:
71 0030 401B subs r0, r0, r5
72 0032 3028 cmp r0, #48
73 0034 F6D9 bls .L3
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** return HAL_TIMEOUT;
74 .loc 1 205 0
75 0036 0320 movs r0, #3
76 0038 0BE0 b .L2
77 .L8:
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* If window parameter is different than current value, modify window
ARM GAS /tmp/ccx6pHMx.s page 6
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** register */
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** if(hiwdg->Instance->WINR != hiwdg->Init.Window)
78 .loc 1 211 0
79 003a 1969 ldr r1, [r3, #16]
80 003c E268 ldr r2, [r4, #12]
81 003e 9142 cmp r1, r2
82 0040 02D0 beq .L5
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Write to IWDG WINR the IWDG_Window value to compare with. In any case,
214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** even if window feature is disabled, Watchdog will be reloaded by writing
215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** windows register */
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** hiwdg->Instance->WINR = hiwdg->Init.Window;
83 .loc 1 216 0
84 0042 1A61 str r2, [r3, #16]
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** else
219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Reload IWDG counter with value defined in the reload register */
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** __HAL_IWDG_RELOAD_COUNTER(hiwdg);
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Return function status */
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** return HAL_OK;
85 .loc 1 225 0
86 0044 0020 movs r0, #0
87 0046 04E0 b .L2
88 .L5:
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
89 .loc 1 221 0
90 0048 044A ldr r2, .L9+8
91 004a 1A60 str r2, [r3]
92 .loc 1 225 0
93 004c 0020 movs r0, #0
94 004e 00E0 b .L2
95 .LVL4:
96 .L6:
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
97 .loc 1 177 0
98 0050 0120 movs r0, #1
99 .LVL5:
100 .L2:
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
101 .loc 1 226 0
102 @ sp needed
103 .LVL6:
104 0052 70BD pop {r4, r5, r6, pc}
105 .L10:
106 .align 2
107 .L9:
108 0054 CCCC0000 .word 52428
109 0058 55550000 .word 21845
110 005c AAAA0000 .word 43690
111 .cfi_endproc
112 .LFE39:
114 .section .text.HAL_IWDG_Refresh,"ax",%progbits
115 .align 1
116 .global HAL_IWDG_Refresh
ARM GAS /tmp/ccx6pHMx.s page 7
117 .syntax unified
118 .code 16
119 .thumb_func
120 .fpu softvfp
122 HAL_IWDG_Refresh:
123 .LFB40:
227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /**
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @}
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /** @addtogroup IWDG_Exported_Functions_Group2
234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @brief IO operation functions
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** *
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** @verbatim
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ===============================================================================
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ##### IO operation functions #####
239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** ===============================================================================
240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** [..] This section provides functions allowing to:
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** (+) Refresh the IWDG.
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** @endverbatim
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @{
245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /**
249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @brief Refresh the IWDG.
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @param hiwdg pointer to a IWDG_HandleTypeDef structure that contains
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * the configuration information for the specified IWDG module.
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** * @retval HAL status
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** */
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg)
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** {
124 .loc 1 255 0
125 .cfi_startproc
126 @ args = 0, pretend = 0, frame = 0
127 @ frame_needed = 0, uses_anonymous_args = 0
128 @ link register save eliminated.
129 .LVL7:
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Reload IWDG counter with value defined in the reload register */
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** __HAL_IWDG_RELOAD_COUNTER(hiwdg);
130 .loc 1 257 0
131 0000 0368 ldr r3, [r0]
132 0002 024A ldr r2, .L12
133 0004 1A60 str r2, [r3]
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c ****
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** /* Return function status */
260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** return HAL_OK;
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_iwdg.c **** }
134 .loc 1 261 0
135 0006 0020 movs r0, #0
136 .LVL8:
137 @ sp needed
138 0008 7047 bx lr
139 .L13:
ARM GAS /tmp/ccx6pHMx.s page 8
140 000a C046 .align 2
141 .L12:
142 000c AAAA0000 .word 43690
143 .cfi_endproc
144 .LFE40:
146 .text
147 .Letext0:
148 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
149 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
150 .file 4 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
151 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
152 .file 6 "/usr/arm-none-eabi/include/sys/lock.h"
153 .file 7 "/usr/arm-none-eabi/include/sys/_types.h"
154 .file 8 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
155 .file 9 "/usr/arm-none-eabi/include/sys/reent.h"
156 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h"
157 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
158 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_iwdg.h"
159 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h"
ARM GAS /tmp/ccx6pHMx.s page 9
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32l0xx_hal_iwdg.c
/tmp/ccx6pHMx.s:16 .text.HAL_IWDG_Init:0000000000000000 $t
/tmp/ccx6pHMx.s:23 .text.HAL_IWDG_Init:0000000000000000 HAL_IWDG_Init
/tmp/ccx6pHMx.s:108 .text.HAL_IWDG_Init:0000000000000054 $d
/tmp/ccx6pHMx.s:115 .text.HAL_IWDG_Refresh:0000000000000000 $t
/tmp/ccx6pHMx.s:122 .text.HAL_IWDG_Refresh:0000000000000000 HAL_IWDG_Refresh
/tmp/ccx6pHMx.s:142 .text.HAL_IWDG_Refresh:000000000000000c $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
HAL_GetTick