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

1834 lines
120 KiB
Plaintext
Raw 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/cciG7hz1.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_rng.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .section .text.HAL_RNG_MspInit,"ax",%progbits
20 .align 1
21 .weak HAL_RNG_MspInit
22 .syntax unified
23 .thumb
24 .thumb_func
26 HAL_RNG_MspInit:
27 .LVL0:
28 .LFB136:
29 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c"
1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ******************************************************************************
3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @file stm32f4xx_hal_rng.c
4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @author MCD Application Team
5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief RNG HAL module driver.
6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * functionalities of the Random Number Generator (RNG) peripheral:
8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * + Initialization and configuration functions
9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * + Peripheral Control functions
10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * + Peripheral State functions
11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ******************************************************************************
13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @attention
14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * Copyright (c) 2016 STMicroelectronics.
16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * All rights reserved.
17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * This software is licensed under terms that can be found in the LICENSE file
19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * in the root directory of this software component.
20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ******************************************************************************
23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @verbatim
24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ==============================================================================
25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ##### How to use this driver #####
26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ==============================================================================
27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** The RNG HAL driver can be used as follows:
29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
ARM GAS /tmp/cciG7hz1.s page 2
30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (#) Enable the RNG controller clock using __HAL_RCC_RNG_CLK_ENABLE() macro
31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** in HAL_RNG_MspInit().
32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (#) Activate the RNG peripheral using HAL_RNG_Init() function.
33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (#) Wait until the 32 bit Random Number Generator contains a valid
34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** random data using (polling/interrupt) mode.
35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (#) Get the 32 bit random number using HAL_RNG_GenerateRandomNumber() function.
36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ##### Callback registration #####
38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ==================================
39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** The compilation define USE_HAL_RNG_REGISTER_CALLBACKS when set to 1
42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** allows the user to configure dynamically the driver callbacks.
43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** Use Function HAL_RNG_RegisterCallback() to register a user callback.
46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** Function HAL_RNG_RegisterCallback() allows to register following callbacks:
47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) ErrorCallback : RNG Error Callback.
48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) MspInitCallback : RNG MspInit.
49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) MspDeInitCallback : RNG MspDeInit.
50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** and a pointer to the user callback function.
52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** Use function HAL_RNG_UnRegisterCallback() to reset a callback to the default
55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** weak (overridden) function.
56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_RNG_UnRegisterCallback() takes as parameters the HAL peripheral handle,
57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** and the Callback ID.
58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** This function allows to reset following callbacks:
59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) ErrorCallback : RNG Error Callback.
60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) MspInitCallback : RNG MspInit.
61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) MspDeInitCallback : RNG MspDeInit.
62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** For specific callback ReadyDataCallback, use dedicated register callbacks:
65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** respectively HAL_RNG_RegisterReadyDataCallback() , HAL_RNG_UnRegisterReadyDataCallback().
66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** By default, after the HAL_RNG_Init() and when the state is HAL_RNG_STATE_RESET
69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** all callbacks are set to the corresponding weak (overridden) functions:
70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** example HAL_RNG_ErrorCallback().
71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** Exception done for MspInit and MspDeInit functions that are respectively
72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** reset to the legacy weak (overridden) functions in the HAL_RNG_Init()
73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** and HAL_RNG_DeInit() only when these callbacks are null (not registered beforehand).
74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** If not, MspInit or MspDeInit are not null, the HAL_RNG_Init() and HAL_RNG_DeInit()
75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand).
76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** Callbacks can be registered/unregistered in HAL_RNG_STATE_READY state only.
79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** Exception done MspInit/MspDeInit that can be registered/unregistered
80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** in HAL_RNG_STATE_READY or HAL_RNG_STATE_RESET state, thus registered (user)
81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** MspInit/DeInit callbacks can be used during the Init/DeInit.
82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** In that case first register the MspInit/MspDeInit user callbacks
83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** using HAL_RNG_RegisterCallback() before calling HAL_RNG_DeInit()
84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** or HAL_RNG_Init() function.
85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
ARM GAS /tmp/cciG7hz1.s page 3
87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** When The compilation define USE_HAL_RNG_REGISTER_CALLBACKS is set to 0 or
88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** not defined, the callback registration feature is not available
89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** and weak (overridden) callbacks are used.
90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @endverbatim
92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ******************************************************************************
93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Includes ------------------------------------------------------------------*/
96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #include "stm32f4xx_hal.h"
97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @addtogroup STM32F4xx_HAL_Driver
99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #if defined (RNG)
103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @addtogroup RNG
105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief RNG HAL module driver.
106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #ifdef HAL_RNG_MODULE_ENABLED
110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private types -------------------------------------------------------------*/
112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private defines -----------------------------------------------------------*/
113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private variables ---------------------------------------------------------*/
114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private constants ---------------------------------------------------------*/
115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @defgroup RNG_Private_Constants RNG Private Constants
116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #define RNG_TIMEOUT_VALUE 2U
119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @}
121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private macros ------------------------------------------------------------*/
123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private functions prototypes ----------------------------------------------*/
124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Private functions ---------------------------------------------------------*/
125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Exported functions --------------------------------------------------------*/
126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @addtogroup RNG_Exported_Functions
128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @addtogroup RNG_Exported_Functions_Group1
132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Initialization and configuration functions
133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @verbatim
135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ===============================================================================
136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ##### Initialization and configuration functions #####
137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ===============================================================================
138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..] This section provides functions allowing to:
139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) Initialize the RNG according to the specified parameters
140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** in the RNG_InitTypeDef and create the associated handle
141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) DeInitialize the RNG peripheral
142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) Initialize the RNG MSP
143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) DeInitialize RNG MSP
ARM GAS /tmp/cciG7hz1.s page 4
144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @endverbatim
146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Initializes the RNG peripheral and creates the associated handle.
151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng)
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the RNG handle allocation */
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng == NULL)
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the parameters */
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** assert_param(IS_RNG_ALL_INSTANCE(hrng->Instance));
164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->State == HAL_RNG_STATE_RESET)
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Allocate lock resource and initialize it */
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->Lock = HAL_UNLOCKED;
170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */
173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->MspInitCallback == NULL)
175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Init the low level hardware */
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspInitCallback(hrng);
181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #else
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->State == HAL_RNG_STATE_RESET)
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Allocate lock resource and initialize it */
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->Lock = HAL_UNLOCKED;
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Init the low level hardware */
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_RNG_MspInit(hrng);
190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Change RNG peripheral state */
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_BUSY;
195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Enable the RNG Peripheral */
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_RNG_ENABLE(hrng);
199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Initialize the RNG state */
ARM GAS /tmp/cciG7hz1.s page 5
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_READY;
202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Initialise the error code */
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_NONE;
205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return function status */
207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_OK;
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief DeInitializes the RNG peripheral.
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng)
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the RNG handle allocation */
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng == NULL)
220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Disable the RNG Peripheral */
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** CLEAR_BIT(hrng->Instance->CR, RNG_CR_IE | RNG_CR_RNGEN);
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Clear RNG interrupt status flags */
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** CLEAR_BIT(hrng->Instance->SR, RNG_SR_CEIS | RNG_SR_SEIS);
229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->MspDeInitCallback == NULL)
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* DeInit the low level hardware */
237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspDeInitCallback(hrng);
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #else
239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* DeInit the low level hardware */
240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_RNG_MspDeInit(hrng);
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the RNG state */
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_RESET;
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Initialise the error code */
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_NONE;
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Release Lock */
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return the function status */
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_OK;
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Initializes the RNG MSP.
ARM GAS /tmp/cciG7hz1.s page 6
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval None
261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __weak void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng)
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
30 .loc 1 263 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.
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Prevent unused argument(s) compilation warning */
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** UNUSED(hrng);
35 .loc 1 265 3 view .LVU1
266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* NOTE : This function should not be modified. When the callback is needed,
267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** function HAL_RNG_MspInit must be implemented in the user file.
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
36 .loc 1 269 1 is_stmt 0 view .LVU2
37 0000 7047 bx lr
38 .cfi_endproc
39 .LFE136:
41 .section .text.HAL_RNG_Init,"ax",%progbits
42 .align 1
43 .global HAL_RNG_Init
44 .syntax unified
45 .thumb
46 .thumb_func
48 HAL_RNG_Init:
49 .LVL1:
50 .LFB134:
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the RNG handle allocation */
51 .loc 1 156 1 is_stmt 1 view -0
52 .cfi_startproc
53 @ args = 0, pretend = 0, frame = 0
54 @ frame_needed = 0, uses_anonymous_args = 0
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
55 .loc 1 158 3 view .LVU4
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
56 .loc 1 158 6 is_stmt 0 view .LVU5
57 0000 98B1 cbz r0, .L5
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the RNG handle allocation */
58 .loc 1 156 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
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
65 .loc 1 163 3 is_stmt 1 view .LVU7
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
66 .loc 1 183 3 view .LVU8
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
67 .loc 1 183 11 is_stmt 0 view .LVU9
68 0006 4379 ldrb r3, [r0, #5] @ zero_extendqisi2
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
ARM GAS /tmp/cciG7hz1.s page 7
69 .loc 1 183 6 view .LVU10
70 0008 5BB1 cbz r3, .L10
71 .LVL2:
72 .L4:
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
73 .loc 1 194 3 is_stmt 1 view .LVU11
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
74 .loc 1 194 15 is_stmt 0 view .LVU12
75 000a 0223 movs r3, #2
76 000c 6371 strb r3, [r4, #5]
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
77 .loc 1 198 3 is_stmt 1 view .LVU13
78 000e 2268 ldr r2, [r4]
79 0010 1368 ldr r3, [r2]
80 0012 43F00403 orr r3, r3, #4
81 0016 1360 str r3, [r2]
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
82 .loc 1 201 3 view .LVU14
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
83 .loc 1 201 15 is_stmt 0 view .LVU15
84 0018 0123 movs r3, #1
85 001a 6371 strb r3, [r4, #5]
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
86 .loc 1 204 3 is_stmt 1 view .LVU16
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
87 .loc 1 204 19 is_stmt 0 view .LVU17
88 001c 0020 movs r0, #0
89 001e A060 str r0, [r4, #8]
207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
90 .loc 1 207 3 is_stmt 1 view .LVU18
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
91 .loc 1 208 1 is_stmt 0 view .LVU19
92 0020 10BD pop {r4, pc}
93 .LVL3:
94 .L10:
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
95 .loc 1 186 5 is_stmt 1 view .LVU20
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
96 .loc 1 186 16 is_stmt 0 view .LVU21
97 0022 0371 strb r3, [r0, #4]
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
98 .loc 1 189 5 is_stmt 1 view .LVU22
99 0024 FFF7FEFF bl HAL_RNG_MspInit
100 .LVL4:
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
101 .loc 1 189 5 is_stmt 0 view .LVU23
102 0028 EFE7 b .L4
103 .LVL5:
104 .L5:
105 .LCFI1:
106 .cfi_def_cfa_offset 0
107 .cfi_restore 4
108 .cfi_restore 14
160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
109 .loc 1 160 12 view .LVU24
110 002a 0120 movs r0, #1
111 .LVL6:
ARM GAS /tmp/cciG7hz1.s page 8
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
112 .loc 1 208 1 view .LVU25
113 002c 7047 bx lr
114 .cfi_endproc
115 .LFE134:
117 .section .text.HAL_RNG_MspDeInit,"ax",%progbits
118 .align 1
119 .weak HAL_RNG_MspDeInit
120 .syntax unified
121 .thumb
122 .thumb_func
124 HAL_RNG_MspDeInit:
125 .LVL7:
126 .LFB137:
270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief DeInitializes the RNG MSP.
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval None
276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __weak void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng)
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
127 .loc 1 278 1 is_stmt 1 view -0
128 .cfi_startproc
129 @ args = 0, pretend = 0, frame = 0
130 @ frame_needed = 0, uses_anonymous_args = 0
131 @ link register save eliminated.
279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Prevent unused argument(s) compilation warning */
280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** UNUSED(hrng);
132 .loc 1 280 3 view .LVU27
281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* NOTE : This function should not be modified. When the callback is needed,
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** function HAL_RNG_MspDeInit must be implemented in the user file.
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
133 .loc 1 284 1 is_stmt 0 view .LVU28
134 0000 7047 bx lr
135 .cfi_endproc
136 .LFE137:
138 .section .text.HAL_RNG_DeInit,"ax",%progbits
139 .align 1
140 .global HAL_RNG_DeInit
141 .syntax unified
142 .thumb
143 .thumb_func
145 HAL_RNG_DeInit:
146 .LVL8:
147 .LFB135:
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the RNG handle allocation */
148 .loc 1 217 1 is_stmt 1 view -0
149 .cfi_startproc
150 @ args = 0, pretend = 0, frame = 0
151 @ frame_needed = 0, uses_anonymous_args = 0
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
152 .loc 1 219 3 view .LVU30
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
153 .loc 1 219 6 is_stmt 0 view .LVU31
ARM GAS /tmp/cciG7hz1.s page 9
154 0000 90B1 cbz r0, .L14
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check the RNG handle allocation */
155 .loc 1 217 1 view .LVU32
156 0002 10B5 push {r4, lr}
157 .LCFI2:
158 .cfi_def_cfa_offset 8
159 .cfi_offset 4, -8
160 .cfi_offset 14, -4
161 0004 0446 mov r4, r0
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
162 .loc 1 225 3 is_stmt 1 view .LVU33
163 0006 0268 ldr r2, [r0]
164 0008 1368 ldr r3, [r2]
165 000a 23F00C03 bic r3, r3, #12
166 000e 1360 str r3, [r2]
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
167 .loc 1 228 3 view .LVU34
168 0010 0268 ldr r2, [r0]
169 0012 5368 ldr r3, [r2, #4]
170 0014 23F06003 bic r3, r3, #96
171 0018 5360 str r3, [r2, #4]
240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
172 .loc 1 240 3 view .LVU35
173 001a FFF7FEFF bl HAL_RNG_MspDeInit
174 .LVL9:
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
175 .loc 1 244 3 view .LVU36
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
176 .loc 1 244 15 is_stmt 0 view .LVU37
177 001e 0020 movs r0, #0
178 0020 6071 strb r0, [r4, #5]
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
179 .loc 1 247 3 is_stmt 1 view .LVU38
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
180 .loc 1 247 19 is_stmt 0 view .LVU39
181 0022 A060 str r0, [r4, #8]
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
182 .loc 1 250 3 is_stmt 1 view .LVU40
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
183 .loc 1 250 3 view .LVU41
184 0024 2071 strb r0, [r4, #4]
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
185 .loc 1 250 3 view .LVU42
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
186 .loc 1 253 3 view .LVU43
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
187 .loc 1 254 1 is_stmt 0 view .LVU44
188 0026 10BD pop {r4, pc}
189 .LVL10:
190 .L14:
191 .LCFI3:
192 .cfi_def_cfa_offset 0
193 .cfi_restore 4
194 .cfi_restore 14
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
195 .loc 1 221 12 view .LVU45
196 0028 0120 movs r0, #1
ARM GAS /tmp/cciG7hz1.s page 10
197 .LVL11:
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
198 .loc 1 254 1 view .LVU46
199 002a 7047 bx lr
200 .cfi_endproc
201 .LFE135:
203 .section .text.HAL_RNG_GenerateRandomNumber,"ax",%progbits
204 .align 1
205 .global HAL_RNG_GenerateRandomNumber
206 .syntax unified
207 .thumb
208 .thumb_func
210 HAL_RNG_GenerateRandomNumber:
211 .LVL12:
212 .LFB138:
285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Register a User RNG Callback
289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * To be used instead of the weak predefined callback
290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng RNG handle
291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param CallbackID ID of the callback to be registered
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * This parameter can be one of the following values:
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @arg @ref HAL_RNG_ERROR_CB_ID Error callback ID
294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @arg @ref HAL_RNG_MSPINIT_CB_ID MspInit callback ID
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @arg @ref HAL_RNG_MSPDEINIT_CB_ID MspDeInit callback ID
296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param pCallback pointer to the Callback function
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Callb
300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** pRNG_CallbackTypeDef pCallback)
301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef status = HAL_OK;
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (pCallback == NULL)
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (HAL_RNG_STATE_READY == hrng->State)
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** switch (CallbackID)
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_ERROR_CB_ID :
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCallback = pCallback;
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPINIT_CB_ID :
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspInitCallback = pCallback;
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPDEINIT_CB_ID :
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspDeInitCallback = pCallback;
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
ARM GAS /tmp/cciG7hz1.s page 11
327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** default :
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else if (HAL_RNG_STATE_RESET == hrng->State)
336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** switch (CallbackID)
338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPINIT_CB_ID :
340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspInitCallback = pCallback;
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPDEINIT_CB_ID :
344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspDeInitCallback = pCallback;
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** default :
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return status;
364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Unregister an RNG Callback
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * RNG callback is redirected to the weak predefined callback
369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng RNG handle
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param CallbackID ID of the callback to be unregistered
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * This parameter can be one of the following values:
372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @arg @ref HAL_RNG_ERROR_CB_ID Error callback ID
373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @arg @ref HAL_RNG_MSPINIT_CB_ID MspInit callback ID
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @arg @ref HAL_RNG_MSPDEINIT_CB_ID MspDeInit callback ID
375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef Cal
378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef status = HAL_OK;
380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (HAL_RNG_STATE_READY == hrng->State)
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
ARM GAS /tmp/cciG7hz1.s page 12
384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** switch (CallbackID)
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_ERROR_CB_ID :
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCallback = HAL_RNG_ErrorCallback; /* Legacy weak ErrorCallback */
388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPINIT_CB_ID :
391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */
392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPDEINIT_CB_ID :
395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspDeInit */
396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** default :
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else if (HAL_RNG_STATE_RESET == hrng->State)
407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** switch (CallbackID)
409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPINIT_CB_ID :
411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspInitCallback = HAL_RNG_MspInit; /* Legacy weak MspInit */
412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** case HAL_RNG_MSPDEINIT_CB_ID :
415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->MspDeInitCallback = HAL_RNG_MspDeInit; /* Legacy weak MspInit */
416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** default :
419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** break;
424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return status;
435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Register Data Ready RNG Callback
439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * To be used instead of the weak HAL_RNG_ReadyDataCallback() predefined callback
440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng RNG handle
ARM GAS /tmp/cciG7hz1.s page 13
441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param pCallback pointer to the Data Ready Callback function
442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallback
445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef status = HAL_OK;
447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (pCallback == NULL)
449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process locked */
455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_LOCK(hrng);
456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (HAL_RNG_STATE_READY == hrng->State)
458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ReadyDataCallback = pCallback;
460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Release Lock */
470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return status;
472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief UnRegister the Data Ready RNG Callback
476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * Data Ready RNG Callback is redirected to the weak HAL_RNG_ReadyDataCallback() predefine
477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng RNG handle
478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng)
481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef status = HAL_OK;
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process locked */
485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_LOCK(hrng);
486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (HAL_RNG_STATE_READY == hrng->State)
488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ReadyDataCallback = HAL_RNG_ReadyDataCallback; /* Legacy weak ReadyDataCallback */
490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_INVALID_CALLBACK;
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return error status */
496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
ARM GAS /tmp/cciG7hz1.s page 14
498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Release Lock */
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return status;
502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @}
508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @addtogroup RNG_Exported_Functions_Group2
511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Peripheral Control functions
512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @verbatim
514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ===============================================================================
515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ##### Peripheral Control functions #####
516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ===============================================================================
517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..] This section provides functions allowing to:
518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) Get the 32 bit Random number
519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) Get the 32 bit Random number with interrupt enabled
520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** (+) Handle RNG interrupt request
521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @endverbatim
523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Generates a 32-bit random number.
528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @note Each time the random number data is read the RNG_FLAG_DRDY flag
529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * is automatically cleared.
530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param random32bit pointer to generated random number variable if successful.
533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit)
537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
213 .loc 1 537 1 is_stmt 1 view -0
214 .cfi_startproc
215 @ args = 0, pretend = 0, frame = 0
216 @ frame_needed = 0, uses_anonymous_args = 0
217 .loc 1 537 1 is_stmt 0 view .LVU48
218 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
219 .LCFI4:
220 .cfi_def_cfa_offset 24
221 .cfi_offset 3, -24
222 .cfi_offset 4, -20
223 .cfi_offset 5, -16
224 .cfi_offset 6, -12
225 .cfi_offset 7, -8
226 .cfi_offset 14, -4
538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t tickstart;
227 .loc 1 538 3 is_stmt 1 view .LVU49
539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef status = HAL_OK;
ARM GAS /tmp/cciG7hz1.s page 15
228 .loc 1 539 3 view .LVU50
229 .LVL13:
540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Locked */
542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_LOCK(hrng);
230 .loc 1 542 3 view .LVU51
231 .loc 1 542 3 view .LVU52
232 0002 0379 ldrb r3, [r0, #4] @ zero_extendqisi2
233 0004 012B cmp r3, #1
234 0006 30D0 beq .L25
235 0008 0446 mov r4, r0
236 000a 0E46 mov r6, r1
237 .loc 1 542 3 discriminator 2 view .LVU53
238 000c 0123 movs r3, #1
239 000e 0371 strb r3, [r0, #4]
240 .loc 1 542 3 discriminator 2 view .LVU54
543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check RNG peripheral state */
545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->State == HAL_RNG_STATE_READY)
241 .loc 1 545 3 discriminator 2 view .LVU55
242 .loc 1 545 11 is_stmt 0 discriminator 2 view .LVU56
243 0010 4579 ldrb r5, [r0, #5] @ zero_extendqisi2
244 0012 EDB2 uxtb r5, r5
245 .loc 1 545 6 discriminator 2 view .LVU57
246 0014 9D42 cmp r5, r3
247 0016 06D0 beq .L27
546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Change RNG peripheral state */
548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_BUSY;
549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Get tick */
551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** tickstart = HAL_GetTick();
552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check if data register contains valid random data */
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** while (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET)
555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if ((HAL_GetTick() - tickstart) > RNG_TIMEOUT_VALUE)
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* New check to avoid false timeout detection in case of preemption */
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (__HAL_RNG_GET_FLAG(hrng, RNG_FLAG_DRDY) == RESET)
560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_READY;
562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT;
563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Get a 32bit Random number */
571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->RandomNumber = hrng->Instance->DR;
572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *random32bit = hrng->RandomNumber;
573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_READY;
575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
ARM GAS /tmp/cciG7hz1.s page 16
577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_BUSY;
248 .loc 1 578 5 is_stmt 1 view .LVU58
249 .loc 1 578 21 is_stmt 0 view .LVU59
250 0018 0423 movs r3, #4
251 001a 8360 str r3, [r0, #8]
579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
252 .loc 1 579 5 is_stmt 1 view .LVU60
253 .LVL14:
254 .loc 1 579 12 is_stmt 0 view .LVU61
255 001c 0125 movs r5, #1
256 .LVL15:
257 .L24:
580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
258 .loc 1 583 3 is_stmt 1 view .LVU62
259 .loc 1 583 3 view .LVU63
260 001e 0023 movs r3, #0
261 0020 2371 strb r3, [r4, #4]
262 .loc 1 583 3 view .LVU64
584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return status;
263 .loc 1 585 3 view .LVU65
264 .LVL16:
265 .L20:
586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
266 .loc 1 586 1 is_stmt 0 view .LVU66
267 0022 2846 mov r0, r5
268 0024 F8BD pop {r3, r4, r5, r6, r7, pc}
269 .LVL17:
270 .L27:
548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
271 .loc 1 548 5 is_stmt 1 view .LVU67
548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
272 .loc 1 548 17 is_stmt 0 view .LVU68
273 0026 0223 movs r3, #2
274 0028 4371 strb r3, [r0, #5]
551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
275 .loc 1 551 5 is_stmt 1 view .LVU69
551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
276 .loc 1 551 17 is_stmt 0 view .LVU70
277 002a FFF7FEFF bl HAL_GetTick
278 .LVL18:
551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
279 .loc 1 551 17 view .LVU71
280 002e 0746 mov r7, r0
281 .LVL19:
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
282 .loc 1 554 5 is_stmt 1 view .LVU72
283 .L22:
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
284 .loc 1 554 11 view .LVU73
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
285 .loc 1 554 12 is_stmt 0 view .LVU74
286 0030 2368 ldr r3, [r4]
ARM GAS /tmp/cciG7hz1.s page 17
287 0032 5A68 ldr r2, [r3, #4]
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
288 .loc 1 554 11 view .LVU75
289 0034 12F0010F tst r2, #1
290 0038 10D1 bne .L28
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
291 .loc 1 556 7 is_stmt 1 view .LVU76
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
292 .loc 1 556 12 is_stmt 0 view .LVU77
293 003a FFF7FEFF bl HAL_GetTick
294 .LVL20:
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
295 .loc 1 556 26 view .LVU78
296 003e C01B subs r0, r0, r7
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
297 .loc 1 556 10 view .LVU79
298 0040 0228 cmp r0, #2
299 0042 F5D9 bls .L22
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
300 .loc 1 559 9 is_stmt 1 view .LVU80
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
301 .loc 1 559 13 is_stmt 0 view .LVU81
302 0044 2368 ldr r3, [r4]
303 0046 5B68 ldr r3, [r3, #4]
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
304 .loc 1 559 12 view .LVU82
305 0048 13F0010F tst r3, #1
306 004c F0D1 bne .L22
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT;
307 .loc 1 561 11 is_stmt 1 view .LVU83
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_TIMEOUT;
308 .loc 1 561 23 is_stmt 0 view .LVU84
309 004e 0123 movs r3, #1
310 0050 6371 strb r3, [r4, #5]
562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
311 .loc 1 562 11 is_stmt 1 view .LVU85
562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
312 .loc 1 562 27 is_stmt 0 view .LVU86
313 0052 0223 movs r3, #2
314 0054 A360 str r3, [r4, #8]
564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
315 .loc 1 564 11 is_stmt 1 view .LVU87
564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
316 .loc 1 564 11 view .LVU88
317 0056 0023 movs r3, #0
318 0058 2371 strb r3, [r4, #4]
564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return HAL_ERROR;
319 .loc 1 564 11 view .LVU89
565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
320 .loc 1 565 11 view .LVU90
565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
321 .loc 1 565 18 is_stmt 0 view .LVU91
322 005a E2E7 b .L20
323 .L28:
571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *random32bit = hrng->RandomNumber;
324 .loc 1 571 5 is_stmt 1 view .LVU92
571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *random32bit = hrng->RandomNumber;
ARM GAS /tmp/cciG7hz1.s page 18
325 .loc 1 571 40 is_stmt 0 view .LVU93
326 005c 9B68 ldr r3, [r3, #8]
571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *random32bit = hrng->RandomNumber;
327 .loc 1 571 24 view .LVU94
328 005e E360 str r3, [r4, #12]
572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
329 .loc 1 572 5 is_stmt 1 view .LVU95
572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
330 .loc 1 572 18 is_stmt 0 view .LVU96
331 0060 3360 str r3, [r6]
574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
332 .loc 1 574 5 is_stmt 1 view .LVU97
574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
333 .loc 1 574 17 is_stmt 0 view .LVU98
334 0062 0123 movs r3, #1
335 0064 6371 strb r3, [r4, #5]
539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
336 .loc 1 539 21 view .LVU99
337 0066 0025 movs r5, #0
338 0068 D9E7 b .L24
339 .LVL21:
340 .L25:
542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
341 .loc 1 542 3 view .LVU100
342 006a 0225 movs r5, #2
343 006c D9E7 b .L20
344 .cfi_endproc
345 .LFE138:
347 .section .text.HAL_RNG_GenerateRandomNumber_IT,"ax",%progbits
348 .align 1
349 .global HAL_RNG_GenerateRandomNumber_IT
350 .syntax unified
351 .thumb
352 .thumb_func
354 HAL_RNG_GenerateRandomNumber_IT:
355 .LVL22:
356 .LFB139:
587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Generates a 32-bit random number in interrupt mode.
590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL status
593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng)
595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
357 .loc 1 595 1 is_stmt 1 view -0
358 .cfi_startproc
359 @ args = 0, pretend = 0, frame = 0
360 @ frame_needed = 0, uses_anonymous_args = 0
361 @ link register save eliminated.
596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_StatusTypeDef status = HAL_OK;
362 .loc 1 596 3 view .LVU102
597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Locked */
599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_LOCK(hrng);
363 .loc 1 599 3 view .LVU103
ARM GAS /tmp/cciG7hz1.s page 19
364 .loc 1 599 3 view .LVU104
365 0000 0379 ldrb r3, [r0, #4] @ zero_extendqisi2
366 0002 012B cmp r3, #1
367 0004 14D0 beq .L32
368 .loc 1 599 3 discriminator 2 view .LVU105
369 0006 0123 movs r3, #1
370 0008 0371 strb r3, [r0, #4]
371 .loc 1 599 3 discriminator 2 view .LVU106
600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check RNG peripheral state */
602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->State == HAL_RNG_STATE_READY)
372 .loc 1 602 3 discriminator 2 view .LVU107
373 .loc 1 602 11 is_stmt 0 discriminator 2 view .LVU108
374 000a 4379 ldrb r3, [r0, #5] @ zero_extendqisi2
375 000c DBB2 uxtb r3, r3
376 .loc 1 602 6 discriminator 2 view .LVU109
377 000e 012B cmp r3, #1
378 0010 05D0 beq .L33
603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Change RNG peripheral state */
605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_BUSY;
606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Enable the RNG Interrupts: Data Ready, Clock error, Seed error */
608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_RNG_ENABLE_IT(hrng);
609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
379 .loc 1 613 5 is_stmt 1 view .LVU110
380 .loc 1 613 5 view .LVU111
381 0012 0023 movs r3, #0
382 0014 0371 strb r3, [r0, #4]
383 .loc 1 613 5 view .LVU112
614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_BUSY;
384 .loc 1 615 5 view .LVU113
385 .loc 1 615 21 is_stmt 0 view .LVU114
386 0016 0423 movs r3, #4
387 0018 8360 str r3, [r0, #8]
616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** status = HAL_ERROR;
388 .loc 1 616 5 is_stmt 1 view .LVU115
389 .LVL23:
390 .loc 1 616 12 is_stmt 0 view .LVU116
391 001a 0120 movs r0, #1
392 .LVL24:
393 .loc 1 616 12 view .LVU117
394 001c 7047 bx lr
395 .LVL25:
396 .L33:
605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
397 .loc 1 605 5 is_stmt 1 view .LVU118
605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
398 .loc 1 605 17 is_stmt 0 view .LVU119
399 001e 0223 movs r3, #2
400 0020 4371 strb r3, [r0, #5]
608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
ARM GAS /tmp/cciG7hz1.s page 20
401 .loc 1 608 5 is_stmt 1 view .LVU120
402 0022 0268 ldr r2, [r0]
403 0024 1368 ldr r3, [r2]
404 0026 43F00803 orr r3, r3, #8
405 002a 1360 str r3, [r2]
596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
406 .loc 1 596 21 is_stmt 0 view .LVU121
407 002c 0020 movs r0, #0
408 .LVL26:
596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
409 .loc 1 596 21 view .LVU122
410 002e 7047 bx lr
411 .LVL27:
412 .L32:
599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
413 .loc 1 599 3 view .LVU123
414 0030 0220 movs r0, #2
415 .LVL28:
617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return status;
620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
416 .loc 1 620 1 view .LVU124
417 0032 7047 bx lr
418 .cfi_endproc
419 .LFE139:
421 .section .text.HAL_RNG_GetRandomNumber,"ax",%progbits
422 .align 1
423 .global HAL_RNG_GetRandomNumber
424 .syntax unified
425 .thumb
426 .thumb_func
428 HAL_RNG_GetRandomNumber:
429 .LVL29:
430 .LFB140:
621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Returns generated random number in polling mode (Obsolete)
624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * Use HAL_RNG_GenerateRandomNumber() API instead.
625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval Random value
628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t HAL_RNG_GetRandomNumber(RNG_HandleTypeDef *hrng)
630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
431 .loc 1 630 1 is_stmt 1 view -0
432 .cfi_startproc
433 @ args = 0, pretend = 0, frame = 0
434 @ frame_needed = 0, uses_anonymous_args = 0
435 .loc 1 630 1 is_stmt 0 view .LVU126
436 0000 10B5 push {r4, lr}
437 .LCFI5:
438 .cfi_def_cfa_offset 8
439 .cfi_offset 4, -8
440 .cfi_offset 14, -4
441 0002 0446 mov r4, r0
631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (HAL_RNG_GenerateRandomNumber(hrng, &(hrng->RandomNumber)) == HAL_OK)
ARM GAS /tmp/cciG7hz1.s page 21
442 .loc 1 631 3 is_stmt 1 view .LVU127
443 .loc 1 631 7 is_stmt 0 view .LVU128
444 0004 00F10C01 add r1, r0, #12
445 0008 FFF7FEFF bl HAL_RNG_GenerateRandomNumber
446 .LVL30:
447 .loc 1 631 6 view .LVU129
448 000c 08B9 cbnz r0, .L36
632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return hrng->RandomNumber;
449 .loc 1 633 5 is_stmt 1 view .LVU130
450 .loc 1 633 16 is_stmt 0 view .LVU131
451 000e E068 ldr r0, [r4, #12]
452 .L34:
634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return 0U;
638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
453 .loc 1 639 1 view .LVU132
454 0010 10BD pop {r4, pc}
455 .LVL31:
456 .L36:
637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
457 .loc 1 637 12 view .LVU133
458 0012 0020 movs r0, #0
459 0014 FCE7 b .L34
460 .cfi_endproc
461 .LFE140:
463 .section .text.HAL_RNG_GetRandomNumber_IT,"ax",%progbits
464 .align 1
465 .global HAL_RNG_GetRandomNumber_IT
466 .syntax unified
467 .thumb
468 .thumb_func
470 HAL_RNG_GetRandomNumber_IT:
471 .LVL32:
472 .LFB141:
640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Returns a 32-bit random number with interrupt enabled (Obsolete),
643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * Use HAL_RNG_GenerateRandomNumber_IT() API instead.
644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval 32-bit random number
647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t HAL_RNG_GetRandomNumber_IT(RNG_HandleTypeDef *hrng)
649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
473 .loc 1 649 1 is_stmt 1 view -0
474 .cfi_startproc
475 @ args = 0, pretend = 0, frame = 0
476 @ frame_needed = 0, uses_anonymous_args = 0
477 @ link register save eliminated.
650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t random32bit = 0U;
478 .loc 1 650 3 view .LVU135
651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process locked */
ARM GAS /tmp/cciG7hz1.s page 22
653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_LOCK(hrng);
479 .loc 1 653 3 view .LVU136
480 .loc 1 653 3 view .LVU137
481 0000 0379 ldrb r3, [r0, #4] @ zero_extendqisi2
482 0002 012B cmp r3, #1
483 0004 0AD0 beq .L40
484 .loc 1 653 3 discriminator 2 view .LVU138
485 0006 0123 movs r3, #1
486 0008 0371 strb r3, [r0, #4]
487 .loc 1 653 3 discriminator 2 view .LVU139
654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Change RNG peripheral state */
656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_BUSY;
488 .loc 1 656 3 discriminator 2 view .LVU140
489 .loc 1 656 15 is_stmt 0 discriminator 2 view .LVU141
490 000a 0223 movs r3, #2
491 000c 4371 strb r3, [r0, #5]
657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Get a 32bit Random number */
659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** random32bit = hrng->Instance->DR;
492 .loc 1 659 3 is_stmt 1 discriminator 2 view .LVU142
493 .loc 1 659 21 is_stmt 0 discriminator 2 view .LVU143
494 000e 0368 ldr r3, [r0]
495 .loc 1 659 15 discriminator 2 view .LVU144
496 0010 9868 ldr r0, [r3, #8]
497 .LVL33:
660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Enable the RNG Interrupts: Data Ready, Clock error, Seed error */
662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_RNG_ENABLE_IT(hrng);
498 .loc 1 662 3 is_stmt 1 discriminator 2 view .LVU145
499 0012 1A68 ldr r2, [r3]
500 0014 42F00802 orr r2, r2, #8
501 0018 1A60 str r2, [r3]
663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return the 32 bit random number */
665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return random32bit;
502 .loc 1 665 3 discriminator 2 view .LVU146
503 .loc 1 665 10 is_stmt 0 discriminator 2 view .LVU147
504 001a 7047 bx lr
505 .LVL34:
506 .L40:
653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
507 .loc 1 653 3 view .LVU148
508 001c 0220 movs r0, #2
509 .LVL35:
666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
510 .loc 1 666 1 view .LVU149
511 001e 7047 bx lr
512 .cfi_endproc
513 .LFE141:
515 .section .text.HAL_RNG_ReadLastRandomNumber,"ax",%progbits
516 .align 1
517 .global HAL_RNG_ReadLastRandomNumber
518 .syntax unified
519 .thumb
520 .thumb_func
522 HAL_RNG_ReadLastRandomNumber:
ARM GAS /tmp/cciG7hz1.s page 23
523 .LVL36:
524 .LFB143:
667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Handles RNG interrupt request.
670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @note In the case of a clock error, the RNG is no more able to generate
671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * random numbers because the PLL48CLK clock is not correct. User has
672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * to check that the clock controller is correctly configured to provide
673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the RNG clock and clear the CEIS bit using __HAL_RNG_CLEAR_IT().
674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * The clock error has no impact on the previously generated
675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * random numbers, and the RNG_DR register contents can be used.
676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @note In the case of a seed error, the generation of random numbers is
677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * interrupted as long as the SECS bit is '1'. If a number is
678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * available in the RNG_DR register, it must not be used because it may
679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * not have enough entropy. In this case, it is recommended to clear the
680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * SEIS bit using __HAL_RNG_CLEAR_IT(), then disable and enable
681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the RNG peripheral to reinitialize and restart the RNG.
682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @note User-written HAL_RNG_ErrorCallback() API is called once whether SEIS
683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * or CEIS are set.
684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval None
687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng)
690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t rngclockerror = 0U;
692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t itflag = hrng->Instance->SR;
693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* RNG clock error interrupt occurred */
695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if ((itflag & RNG_IT_CEI) == RNG_IT_CEI)
696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_CLOCK;
699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else if ((itflag & RNG_IT_SEI) == RNG_IT_SEI)
702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Update the error code */
704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCode = HAL_RNG_ERROR_SEED;
705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** else
708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Nothing to do */
710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (rngclockerror == 1U)
713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Change RNG peripheral state */
715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_ERROR;
716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Call registered Error callback */
719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ErrorCallback(hrng);
720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #else
721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Call legacy weak Error callback */
ARM GAS /tmp/cciG7hz1.s page 24
722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_RNG_ErrorCallback(hrng);
723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Clear the clock error flag */
726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_RNG_CLEAR_IT(hrng, RNG_IT_CEI | RNG_IT_SEI);
727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return;
729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Check RNG data ready interrupt occurred */
732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if ((itflag & RNG_IT_DRDY) == RNG_IT_DRDY)
733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Generate random number once, so disable the IT */
735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_RNG_DISABLE_IT(hrng);
736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Get the 32bit Random number (DRDY flag automatically cleared) */
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->RandomNumber = hrng->Instance->DR;
739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** if (hrng->State != HAL_RNG_STATE_ERROR)
741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Change RNG peripheral state */
743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->State = HAL_RNG_STATE_READY;
744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __HAL_UNLOCK(hrng);
746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Call registered Data Ready callback */
749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** hrng->ReadyDataCallback(hrng, hrng->RandomNumber);
750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #else
751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Call legacy weak Data Ready callback */
752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_RNG_ReadyDataCallback(hrng, hrng->RandomNumber);
753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Read latest generated random number.
760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval random value
763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng)
765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
525 .loc 1 765 1 is_stmt 1 view -0
526 .cfi_startproc
527 @ args = 0, pretend = 0, frame = 0
528 @ frame_needed = 0, uses_anonymous_args = 0
529 @ link register save eliminated.
766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return (hrng->RandomNumber);
530 .loc 1 766 3 view .LVU151
767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
531 .loc 1 767 1 is_stmt 0 view .LVU152
532 0000 C068 ldr r0, [r0, #12]
533 .LVL37:
534 .loc 1 767 1 view .LVU153
535 0002 7047 bx lr
ARM GAS /tmp/cciG7hz1.s page 25
536 .cfi_endproc
537 .LFE143:
539 .section .text.HAL_RNG_ReadyDataCallback,"ax",%progbits
540 .align 1
541 .weak HAL_RNG_ReadyDataCallback
542 .syntax unified
543 .thumb
544 .thumb_func
546 HAL_RNG_ReadyDataCallback:
547 .LVL38:
548 .LFB144:
768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Data Ready callback in non-blocking mode.
771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param random32bit generated random number.
774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval None
775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __weak void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)
777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
549 .loc 1 777 1 is_stmt 1 view -0
550 .cfi_startproc
551 @ args = 0, pretend = 0, frame = 0
552 @ frame_needed = 0, uses_anonymous_args = 0
553 @ link register save eliminated.
778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Prevent unused argument(s) compilation warning */
779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** UNUSED(hrng);
554 .loc 1 779 3 view .LVU155
780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** UNUSED(random32bit);
555 .loc 1 780 3 view .LVU156
781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* NOTE : This function should not be modified. When the callback is needed,
782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** function HAL_RNG_ReadyDataCallback must be implemented in the user file.
783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
556 .loc 1 784 1 is_stmt 0 view .LVU157
557 0000 7047 bx lr
558 .cfi_endproc
559 .LFE144:
561 .section .text.HAL_RNG_ErrorCallback,"ax",%progbits
562 .align 1
563 .weak HAL_RNG_ErrorCallback
564 .syntax unified
565 .thumb
566 .thumb_func
568 HAL_RNG_ErrorCallback:
569 .LVL39:
570 .LFB145:
785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief RNG error callbacks.
788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval None
791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** __weak void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng)
793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
ARM GAS /tmp/cciG7hz1.s page 26
571 .loc 1 793 1 is_stmt 1 view -0
572 .cfi_startproc
573 @ args = 0, pretend = 0, frame = 0
574 @ frame_needed = 0, uses_anonymous_args = 0
575 @ link register save eliminated.
794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Prevent unused argument(s) compilation warning */
795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** UNUSED(hrng);
576 .loc 1 795 3 view .LVU159
796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* NOTE : This function should not be modified. When the callback is needed,
797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** function HAL_RNG_ErrorCallback must be implemented in the user file.
798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
577 .loc 1 799 1 is_stmt 0 view .LVU160
578 0000 7047 bx lr
579 .cfi_endproc
580 .LFE145:
582 .section .text.HAL_RNG_IRQHandler,"ax",%progbits
583 .align 1
584 .global HAL_RNG_IRQHandler
585 .syntax unified
586 .thumb
587 .thumb_func
589 HAL_RNG_IRQHandler:
590 .LVL40:
591 .LFB142:
690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t rngclockerror = 0U;
592 .loc 1 690 1 is_stmt 1 view -0
593 .cfi_startproc
594 @ args = 0, pretend = 0, frame = 0
595 @ frame_needed = 0, uses_anonymous_args = 0
690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t rngclockerror = 0U;
596 .loc 1 690 1 is_stmt 0 view .LVU162
597 0000 10B5 push {r4, lr}
598 .LCFI6:
599 .cfi_def_cfa_offset 8
600 .cfi_offset 4, -8
601 .cfi_offset 14, -4
602 0002 0446 mov r4, r0
691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t itflag = hrng->Instance->SR;
603 .loc 1 691 3 is_stmt 1 view .LVU163
604 .LVL41:
692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
605 .loc 1 692 3 view .LVU164
692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
606 .loc 1 692 27 is_stmt 0 view .LVU165
607 0004 0268 ldr r2, [r0]
692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
608 .loc 1 692 12 view .LVU166
609 0006 5368 ldr r3, [r2, #4]
610 .LVL42:
695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
611 .loc 1 695 3 is_stmt 1 view .LVU167
695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
612 .loc 1 695 6 is_stmt 0 view .LVU168
613 0008 13F0200F tst r3, #32
614 000c 17D1 bne .L51
701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
ARM GAS /tmp/cciG7hz1.s page 27
615 .loc 1 701 8 is_stmt 1 view .LVU169
701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
616 .loc 1 701 11 is_stmt 0 view .LVU170
617 000e 13F0400F tst r3, #64
618 0012 20D1 bne .L52
710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
619 .loc 1 710 3 is_stmt 1 view .LVU171
712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
620 .loc 1 712 3 view .LVU172
732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
621 .loc 1 732 3 view .LVU173
732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
622 .loc 1 732 6 is_stmt 0 view .LVU174
623 0014 13F0010F tst r3, #1
624 0018 1CD0 beq .L44
735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
625 .loc 1 735 5 is_stmt 1 view .LVU175
626 001a 1368 ldr r3, [r2]
627 .LVL43:
735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
628 .loc 1 735 5 is_stmt 0 view .LVU176
629 001c 23F00803 bic r3, r3, #8
630 0020 1360 str r3, [r2]
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
631 .loc 1 738 5 is_stmt 1 view .LVU177
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
632 .loc 1 738 30 is_stmt 0 view .LVU178
633 0022 0368 ldr r3, [r0]
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
634 .loc 1 738 40 view .LVU179
635 0024 9968 ldr r1, [r3, #8]
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
636 .loc 1 738 24 view .LVU180
637 0026 C160 str r1, [r0, #12]
740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
638 .loc 1 740 5 is_stmt 1 view .LVU181
740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
639 .loc 1 740 13 is_stmt 0 view .LVU182
640 0028 4379 ldrb r3, [r0, #5] @ zero_extendqisi2
641 002a DBB2 uxtb r3, r3
740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
642 .loc 1 740 8 view .LVU183
643 002c 042B cmp r3, #4
644 002e 11D0 beq .L44
743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
645 .loc 1 743 7 is_stmt 1 view .LVU184
743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Process Unlocked */
646 .loc 1 743 19 is_stmt 0 view .LVU185
647 0030 0123 movs r3, #1
648 0032 4371 strb r3, [r0, #5]
745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
649 .loc 1 745 7 is_stmt 1 view .LVU186
745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
650 .loc 1 745 7 view .LVU187
651 0034 0023 movs r3, #0
652 0036 0371 strb r3, [r0, #4]
745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
ARM GAS /tmp/cciG7hz1.s page 28
653 .loc 1 745 7 view .LVU188
752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
654 .loc 1 752 7 view .LVU189
655 0038 FFF7FEFF bl HAL_RNG_ReadyDataCallback
656 .LVL44:
752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
657 .loc 1 752 7 is_stmt 0 view .LVU190
658 003c 0AE0 b .L44
659 .LVL45:
660 .L51:
698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
661 .loc 1 698 5 is_stmt 1 view .LVU191
698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
662 .loc 1 698 21 is_stmt 0 view .LVU192
663 003e 1023 movs r3, #16
664 .LVL46:
698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
665 .loc 1 698 21 view .LVU193
666 0040 8360 str r3, [r0, #8]
699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
667 .loc 1 699 5 is_stmt 1 view .LVU194
668 .LVL47:
710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
669 .loc 1 710 3 view .LVU195
712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
670 .loc 1 712 3 view .LVU196
671 .L46:
715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
672 .loc 1 715 5 view .LVU197
715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
673 .loc 1 715 17 is_stmt 0 view .LVU198
674 0042 0423 movs r3, #4
675 0044 6371 strb r3, [r4, #5]
722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
676 .loc 1 722 5 is_stmt 1 view .LVU199
677 0046 2046 mov r0, r4
678 .LVL48:
722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
679 .loc 1 722 5 is_stmt 0 view .LVU200
680 0048 FFF7FEFF bl HAL_RNG_ErrorCallback
681 .LVL49:
726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
682 .loc 1 726 5 is_stmt 1 view .LVU201
683 004c 2368 ldr r3, [r4]
684 004e 6FF06002 mvn r2, #96
685 0052 5A60 str r2, [r3, #4]
728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
686 .loc 1 728 5 view .LVU202
687 .LVL50:
688 .L44:
756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
689 .loc 1 756 1 is_stmt 0 view .LVU203
690 0054 10BD pop {r4, pc}
691 .LVL51:
692 .L52:
704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
693 .loc 1 704 5 is_stmt 1 view .LVU204
ARM GAS /tmp/cciG7hz1.s page 29
704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
694 .loc 1 704 21 is_stmt 0 view .LVU205
695 0056 0823 movs r3, #8
696 .LVL52:
704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** rngclockerror = 1U;
697 .loc 1 704 21 view .LVU206
698 0058 8360 str r3, [r0, #8]
705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
699 .loc 1 705 5 is_stmt 1 view .LVU207
700 .LVL53:
710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
701 .loc 1 710 3 view .LVU208
712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
702 .loc 1 712 3 view .LVU209
703 005a F2E7 b .L46
704 .cfi_endproc
705 .LFE142:
707 .section .text.HAL_RNG_GetState,"ax",%progbits
708 .align 1
709 .global HAL_RNG_GetState
710 .syntax unified
711 .thumb
712 .thumb_func
714 HAL_RNG_GetState:
715 .LVL54:
716 .LFB146:
800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @}
802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /** @addtogroup RNG_Exported_Functions_Group3
806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Peripheral State functions
807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** *
808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @verbatim
809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ===============================================================================
810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ##### Peripheral State functions #####
811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** ===============================================================================
812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** [..]
813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** This subsection permits to get in run-time the status of the peripheral
814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** and the data flow.
815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** @endverbatim
817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @{
818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Returns the RNG state.
822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng pointer to a RNG_HandleTypeDef structure that contains
823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * the configuration information for RNG.
824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval HAL state
825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng)
827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
717 .loc 1 827 1 view -0
718 .cfi_startproc
719 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/cciG7hz1.s page 30
720 @ frame_needed = 0, uses_anonymous_args = 0
721 @ link register save eliminated.
828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return hrng->State;
722 .loc 1 828 3 view .LVU211
723 .loc 1 828 14 is_stmt 0 view .LVU212
724 0000 4079 ldrb r0, [r0, #5] @ zero_extendqisi2
725 .LVL55:
829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
726 .loc 1 829 1 view .LVU213
727 0002 7047 bx lr
728 .cfi_endproc
729 .LFE146:
731 .section .text.HAL_RNG_GetError,"ax",%progbits
732 .align 1
733 .global HAL_RNG_GetError
734 .syntax unified
735 .thumb
736 .thumb_func
738 HAL_RNG_GetError:
739 .LVL56:
740 .LFB147:
830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c ****
831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /**
832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @brief Return the RNG handle error code.
833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @param hrng: pointer to a RNG_HandleTypeDef structure.
834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** * @retval RNG Error Code
835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** */
836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng)
837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** {
741 .loc 1 837 1 is_stmt 1 view -0
742 .cfi_startproc
743 @ args = 0, pretend = 0, frame = 0
744 @ frame_needed = 0, uses_anonymous_args = 0
745 @ link register save eliminated.
838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** /* Return RNG Error Code */
839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** return hrng->ErrorCode;
746 .loc 1 839 3 view .LVU215
747 .loc 1 839 14 is_stmt 0 view .LVU216
748 0000 8068 ldr r0, [r0, #8]
749 .LVL57:
840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c **** }
750 .loc 1 840 1 view .LVU217
751 0002 7047 bx lr
752 .cfi_endproc
753 .LFE147:
755 .text
756 .Letext0:
757 .file 2 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_defaul
758 .file 3 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h"
759 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
760 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
761 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
762 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h"
763 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h"
ARM GAS /tmp/cciG7hz1.s page 31
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f4xx_hal_rng.c
/tmp/cciG7hz1.s:20 .text.HAL_RNG_MspInit:0000000000000000 $t
/tmp/cciG7hz1.s:26 .text.HAL_RNG_MspInit:0000000000000000 HAL_RNG_MspInit
/tmp/cciG7hz1.s:42 .text.HAL_RNG_Init:0000000000000000 $t
/tmp/cciG7hz1.s:48 .text.HAL_RNG_Init:0000000000000000 HAL_RNG_Init
/tmp/cciG7hz1.s:118 .text.HAL_RNG_MspDeInit:0000000000000000 $t
/tmp/cciG7hz1.s:124 .text.HAL_RNG_MspDeInit:0000000000000000 HAL_RNG_MspDeInit
/tmp/cciG7hz1.s:139 .text.HAL_RNG_DeInit:0000000000000000 $t
/tmp/cciG7hz1.s:145 .text.HAL_RNG_DeInit:0000000000000000 HAL_RNG_DeInit
/tmp/cciG7hz1.s:204 .text.HAL_RNG_GenerateRandomNumber:0000000000000000 $t
/tmp/cciG7hz1.s:210 .text.HAL_RNG_GenerateRandomNumber:0000000000000000 HAL_RNG_GenerateRandomNumber
/tmp/cciG7hz1.s:348 .text.HAL_RNG_GenerateRandomNumber_IT:0000000000000000 $t
/tmp/cciG7hz1.s:354 .text.HAL_RNG_GenerateRandomNumber_IT:0000000000000000 HAL_RNG_GenerateRandomNumber_IT
/tmp/cciG7hz1.s:422 .text.HAL_RNG_GetRandomNumber:0000000000000000 $t
/tmp/cciG7hz1.s:428 .text.HAL_RNG_GetRandomNumber:0000000000000000 HAL_RNG_GetRandomNumber
/tmp/cciG7hz1.s:464 .text.HAL_RNG_GetRandomNumber_IT:0000000000000000 $t
/tmp/cciG7hz1.s:470 .text.HAL_RNG_GetRandomNumber_IT:0000000000000000 HAL_RNG_GetRandomNumber_IT
/tmp/cciG7hz1.s:516 .text.HAL_RNG_ReadLastRandomNumber:0000000000000000 $t
/tmp/cciG7hz1.s:522 .text.HAL_RNG_ReadLastRandomNumber:0000000000000000 HAL_RNG_ReadLastRandomNumber
/tmp/cciG7hz1.s:540 .text.HAL_RNG_ReadyDataCallback:0000000000000000 $t
/tmp/cciG7hz1.s:546 .text.HAL_RNG_ReadyDataCallback:0000000000000000 HAL_RNG_ReadyDataCallback
/tmp/cciG7hz1.s:562 .text.HAL_RNG_ErrorCallback:0000000000000000 $t
/tmp/cciG7hz1.s:568 .text.HAL_RNG_ErrorCallback:0000000000000000 HAL_RNG_ErrorCallback
/tmp/cciG7hz1.s:583 .text.HAL_RNG_IRQHandler:0000000000000000 $t
/tmp/cciG7hz1.s:589 .text.HAL_RNG_IRQHandler:0000000000000000 HAL_RNG_IRQHandler
/tmp/cciG7hz1.s:708 .text.HAL_RNG_GetState:0000000000000000 $t
/tmp/cciG7hz1.s:714 .text.HAL_RNG_GetState:0000000000000000 HAL_RNG_GetState
/tmp/cciG7hz1.s:732 .text.HAL_RNG_GetError:0000000000000000 $t
/tmp/cciG7hz1.s:738 .text.HAL_RNG_GetError:0000000000000000 HAL_RNG_GetError
UNDEFINED SYMBOLS
HAL_GetTick