ams-master/Software/build/debug/stm32h7xx_hal_hsem.lst
2025-03-21 15:35:07 +01:00

922 lines
62 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

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

ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 1
1 .cpu cortex-m7
2 .arch armv7e-m
3 .fpu fpv5-d16
4 .eabi_attribute 28, 1
5 .eabi_attribute 20, 1
6 .eabi_attribute 21, 1
7 .eabi_attribute 23, 3
8 .eabi_attribute 24, 1
9 .eabi_attribute 25, 1
10 .eabi_attribute 26, 1
11 .eabi_attribute 30, 1
12 .eabi_attribute 34, 1
13 .eabi_attribute 18, 4
14 .file "stm32h7xx_hal_hsem.c"
15 .text
16 .Ltext0:
17 .cfi_sections .debug_frame
18 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c"
19 .section .text.HAL_HSEM_Take,"ax",%progbits
20 .align 1
21 .global HAL_HSEM_Take
22 .syntax unified
23 .thumb
24 .thumb_func
26 HAL_HSEM_Take:
27 .LVL0:
28 .LFB335:
1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ******************************************************************************
3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @file stm32h7xx_hal_hsem.c
4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @author MCD Application Team
5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief HSEM HAL module driver.
6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * functionalities of the semaphore peripheral:
8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + Semaphore Take function (2-Step Procedure) , non blocking
9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + Semaphore FastTake function (1-Step Procedure) , non blocking
10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + Semaphore Status check
11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + Semaphore Clear Key Set and Get
12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + Release and release all functions
13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + Semaphore notification enabling and disabling and callnack functions
14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * + IRQ handler management
15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ******************************************************************************
18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @attention
19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * Copyright (c) 2017 STMicroelectronics.
21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * All rights reserved.
22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * This software is licensed under terms that can be found in the LICENSE file
24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * in the root directory of this software component.
25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ******************************************************************************
28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @verbatim
29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ##### How to use this driver #####
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 2
31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..]
33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#)Take a semaphore In 2-Step mode Using function HAL_HSEM_Take. This function takes as param
34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the semaphore ID from 0 to 31
35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the process ID from 0 to 255
36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#) Fast Take semaphore In 1-Step mode Using function HAL_HSEM_FastTake. This function takes
37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the semaphore ID from 0_ID to 31. Note that the process ID value is implicitly assu
38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#) Check if a semaphore is Taken using function HAL_HSEM_IsSemTaken. This function takes as
39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the semaphore ID from 0_ID to 31
40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) It returns 1 if the given semaphore is taken otherwise (Free) zero
41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#)Release a semaphore using function with HAL_HSEM_Release. This function takes as parameter
42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the semaphore ID from 0 to 31
43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the process ID from 0 to 255:
44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) Note: If ProcessID and MasterID match, semaphore is freed, and an interrupt
45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** may be generated when enabled (notification activated). If ProcessID or MasterID does not
46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** semaphore remains taken (locked)
47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#)Release all semaphores at once taken by a given Master using function HAL_HSEM_Release_All
49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** This function takes as parameters :
50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the Release Key (value from 0 to 0xFFFF) can be Set or Get respectively by
51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HAL_HSEM_SetClearKey() or HAL_HSEM_GetClearKey functions
52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) the Master ID:
53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) Note: If the Key and MasterID match, all semaphores taken by the given CPU that cor
54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** to MasterID will be freed, and an interrupt may be generated when enabled (notification
55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** Key or the MasterID doesn't match, semaphores remains taken (locked)
56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#)Semaphores Release all key functions:
58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) HAL_HSEM_SetClearKey() to set semaphore release all Key
59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) HAL_HSEM_GetClearKey() to get release all Key
60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (#)Semaphores notification functions :
61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) HAL_HSEM_ActivateNotification to activate a notification callback on
62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** a given semaphores Mask (bitfield). When one or more semaphores defined by the mask
63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** the callback HAL_HSEM_FreeCallback will be asserted giving as parameters a mask of t
64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** semaphores (bitfield).
65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) HAL_HSEM_DeactivateNotification to deactivate the notification of a given semaphores
67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (++) See the description of the macro __HAL_HSEM_SEMID_TO_MASK to check how to calculate a
68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** Used by the notification functions
69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *** HSEM HAL driver macros list ***
70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** =============================================
71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] Below the list of most used macros in HSEM HAL driver.
72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) __HAL_HSEM_SEMID_TO_MASK: Helper macro to convert a Semaphore ID to a Mask.
74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] Example of use :
75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] mask = __HAL_HSEM_SEMID_TO_MASK(8) | __HAL_HSEM_SEMID_TO_MASK(21) | __HAL_HSEM_SEMID_T
76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] All next macros take as parameter a semaphore Mask (bitfiled) that can be constructed us
77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) __HAL_HSEM_ENABLE_IT: Enable the specified semaphores Mask interrupts.
78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) __HAL_HSEM_DISABLE_IT: Disable the specified semaphores Mask interrupts.
79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) __HAL_HSEM_GET_IT: Checks whether the specified semaphore interrupt has occurred or not.
80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) __HAL_HSEM_GET_FLAG: Get the semaphores status release flags.
81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) __HAL_HSEM_CLEAR_FLAG: Clear the semaphores status release flags.
82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @endverbatim
84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ******************************************************************************
85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Includes ------------------------------------------------------------------*/
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 3
88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #include "stm32h7xx_hal.h"
89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @addtogroup STM32H7xx_HAL_Driver
91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @defgroup HSEM HSEM
95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief HSEM HAL module driver
96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #ifdef HAL_HSEM_MODULE_ENABLED
100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Private typedef -----------------------------------------------------------*/
102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Private define ------------------------------------------------------------*/
103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if defined(DUAL_CORE)
104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @defgroup HSEM_Private_Constants HSEM Private Constants
105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #ifndef HSEM_R_MASTERID
109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #define HSEM_R_MASTERID HSEM_R_COREID
110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #ifndef HSEM_RLR_MASTERID
113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #define HSEM_RLR_MASTERID HSEM_RLR_COREID
114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #ifndef HSEM_CR_MASTERID
117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #define HSEM_CR_MASTERID HSEM_CR_COREID
118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @}
122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif /* DUAL_CORE */
124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Private macro -------------------------------------------------------------*/
125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Private variables ---------------------------------------------------------*/
126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Private function prototypes -----------------------------------------------*/
127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Private functions ---------------------------------------------------------*/
128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Exported functions --------------------------------------------------------*/
129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @defgroup HSEM_Exported_Functions HSEM Exported Functions
131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @defgroup HSEM_Exported_Functions_Group1 Take and Release functions
135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief HSEM Take and Release functions
136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @verbatim
138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ##### HSEM Take and Release functions #####
140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] This section provides functions allowing to:
142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Take a semaphore with 2 Step method
143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Fast Take a semaphore with 1 Step method
144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Check semaphore state Taken or not
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 4
145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Release a semaphore
146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Release all semaphore at once
147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @endverbatim
149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Take a semaphore in 2 Step mode.
155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemID: semaphore ID from 0 to 31
156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param ProcessID: Process ID from 0 to 255
157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval HAL status
158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HAL_StatusTypeDef HAL_HSEM_Take(uint32_t SemID, uint32_t ProcessID)
160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
29 .loc 1 160 1 view -0
30 .cfi_startproc
31 @ args = 0, pretend = 0, frame = 0
32 @ frame_needed = 0, uses_anonymous_args = 0
33 @ link register save eliminated.
161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Check the parameters */
162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_SEMID(SemID));
34 .loc 1 162 3 view .LVU1
163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_PROCESSID(ProcessID));
35 .loc 1 163 3 view .LVU2
164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* First step write R register with MasterID, processID and take bit=1*/
167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->R[SemID] = ((ProcessID & HSEM_R_PROCID) | ((HAL_GetCurrentCPUID() << POSITION_VAL(HSEM_R_MA
168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* second step : read the R register . Take achieved if MasterID and processID match and take bit
170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HSEM->R[SemID] == ((ProcessID & HSEM_R_PROCID) | ((HAL_GetCurrentCPUID() << POSITION_VAL(HSEM
171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*take success when MasterID and ProcessID match and take bit set*/
173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return HAL_OK;
174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #else
176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* First step write R register with MasterID, processID and take bit=1*/
177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->R[SemID] = (ProcessID | HSEM_CR_COREID_CURRENT | HSEM_R_LOCK);
36 .loc 1 177 3 view .LVU3
37 .loc 1 177 56 is_stmt 0 view .LVU4
38 0000 064B ldr r3, .L4
39 0002 0B43 orrs r3, r3, r1
40 .loc 1 177 18 view .LVU5
41 0004 064A ldr r2, .L4+4
42 0006 42F82030 str r3, [r2, r0, lsl #2]
178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* second step : read the R register . Take achieved if MasterID and processID match and take bit
180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HSEM->R[SemID] == (ProcessID | HSEM_CR_COREID_CURRENT | HSEM_R_LOCK))
43 .loc 1 180 3 is_stmt 1 view .LVU6
44 .loc 1 180 14 is_stmt 0 view .LVU7
45 000a 52F82020 ldr r2, [r2, r0, lsl #2]
46 .loc 1 180 6 view .LVU8
47 000e 9342 cmp r3, r2
48 0010 01D0 beq .L3
181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 5
182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*take success when MasterID and ProcessID match and take bit set*/
183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return HAL_OK;
184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Semaphore take fails*/
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return HAL_ERROR;
49 .loc 1 188 10 view .LVU9
50 0012 0120 movs r0, #1
51 .LVL1:
52 .loc 1 188 10 view .LVU10
53 0014 7047 bx lr
54 .LVL2:
55 .L3:
183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
56 .loc 1 183 12 view .LVU11
57 0016 0020 movs r0, #0
58 .LVL3:
189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
59 .loc 1 189 1 view .LVU12
60 0018 7047 bx lr
61 .L5:
62 001a 00BF .align 2
63 .L4:
64 001c 00010080 .word -2147483392
65 0020 00080248 .word 1208092672
66 .cfi_endproc
67 .LFE335:
69 .section .text.HAL_HSEM_FastTake,"ax",%progbits
70 .align 1
71 .global HAL_HSEM_FastTake
72 .syntax unified
73 .thumb
74 .thumb_func
76 HAL_HSEM_FastTake:
77 .LVL4:
78 .LFB336:
190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Fast Take a semaphore with 1 Step mode.
193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemID: semaphore ID from 0 to 31
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval HAL status
195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HAL_StatusTypeDef HAL_HSEM_FastTake(uint32_t SemID)
197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
79 .loc 1 197 1 is_stmt 1 view -0
80 .cfi_startproc
81 @ args = 0, pretend = 0, frame = 0
82 @ frame_needed = 0, uses_anonymous_args = 0
83 @ link register save eliminated.
198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Check the parameters */
199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_SEMID(SemID));
84 .loc 1 199 3 view .LVU14
200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Read the RLR register to take the semaphore */
203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HSEM->RLR[SemID] == (((HAL_GetCurrentCPUID() << POSITION_VAL(HSEM_R_MASTERID)) & HSEM_RLR_MAS
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 6
204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*take success when MasterID match and take bit set*/
206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return HAL_OK;
207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #else
209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Read the RLR register to take the semaphore */
210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HSEM->RLR[SemID] == (HSEM_CR_COREID_CURRENT | HSEM_RLR_LOCK))
85 .loc 1 210 3 view .LVU15
86 .loc 1 210 16 is_stmt 0 view .LVU16
87 0000 2030 adds r0, r0, #32
88 .LVL5:
89 .loc 1 210 16 view .LVU17
90 0002 054B ldr r3, .L9
91 0004 53F82020 ldr r2, [r3, r0, lsl #2]
92 .loc 1 210 6 view .LVU18
93 0008 044B ldr r3, .L9+4
94 000a 9A42 cmp r2, r3
95 000c 01D0 beq .L8
211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*take success when MasterID match and take bit set*/
213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return HAL_OK;
214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Semaphore take fails */
218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return HAL_ERROR;
96 .loc 1 218 10 view .LVU19
97 000e 0120 movs r0, #1
98 .LVL6:
99 .loc 1 218 10 view .LVU20
100 0010 7047 bx lr
101 .L8:
213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
102 .loc 1 213 12 view .LVU21
103 0012 0020 movs r0, #0
219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
104 .loc 1 219 1 view .LVU22
105 0014 7047 bx lr
106 .L10:
107 0016 00BF .align 2
108 .L9:
109 0018 00080248 .word 1208092672
110 001c 00010080 .word -2147483392
111 .cfi_endproc
112 .LFE336:
114 .section .text.HAL_HSEM_IsSemTaken,"ax",%progbits
115 .align 1
116 .global HAL_HSEM_IsSemTaken
117 .syntax unified
118 .thumb
119 .thumb_func
121 HAL_HSEM_IsSemTaken:
122 .LVL7:
123 .LFB337:
220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Check semaphore state Taken or not.
222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemID: semaphore ID
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 7
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval HAL HSEM state
224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** uint32_t HAL_HSEM_IsSemTaken(uint32_t SemID)
226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
124 .loc 1 226 1 is_stmt 1 view -0
125 .cfi_startproc
126 @ args = 0, pretend = 0, frame = 0
127 @ frame_needed = 0, uses_anonymous_args = 0
128 @ link register save eliminated.
227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return (((HSEM->R[SemID] & HSEM_R_LOCK) != 0U) ? 1UL : 0UL);
129 .loc 1 227 3 view .LVU24
130 .loc 1 227 20 is_stmt 0 view .LVU25
131 0000 044B ldr r3, .L15
132 0002 53F82030 ldr r3, [r3, r0, lsl #2]
133 .loc 1 227 56 view .LVU26
134 0006 002B cmp r3, #0
135 0008 01DB blt .L14
136 .loc 1 227 56 discriminator 2 view .LVU27
137 000a 0020 movs r0, #0
138 .LVL8:
228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
139 .loc 1 228 1 view .LVU28
140 000c 7047 bx lr
141 .LVL9:
142 .L14:
227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return (((HSEM->R[SemID] & HSEM_R_LOCK) != 0U) ? 1UL : 0UL);
143 .loc 1 227 56 discriminator 1 view .LVU29
144 000e 0120 movs r0, #1
145 .LVL10:
227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return (((HSEM->R[SemID] & HSEM_R_LOCK) != 0U) ? 1UL : 0UL);
146 .loc 1 227 56 discriminator 1 view .LVU30
147 0010 7047 bx lr
148 .L16:
149 0012 00BF .align 2
150 .L15:
151 0014 00080248 .word 1208092672
152 .cfi_endproc
153 .LFE337:
155 .section .text.HAL_HSEM_Release,"ax",%progbits
156 .align 1
157 .global HAL_HSEM_Release
158 .syntax unified
159 .thumb
160 .thumb_func
162 HAL_HSEM_Release:
163 .LVL11:
164 .LFB338:
229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Release a semaphore.
233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemID: semaphore ID from 0 to 31
234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param ProcessID: Process ID from 0 to 255
235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval None
236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** void HAL_HSEM_Release(uint32_t SemID, uint32_t ProcessID)
238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 8
165 .loc 1 238 1 is_stmt 1 view -0
166 .cfi_startproc
167 @ args = 0, pretend = 0, frame = 0
168 @ frame_needed = 0, uses_anonymous_args = 0
169 @ link register save eliminated.
239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Check the parameters */
240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_SEMID(SemID));
170 .loc 1 240 3 view .LVU32
241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_PROCESSID(ProcessID));
171 .loc 1 241 3 view .LVU33
242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Clear the semaphore by writing to the R register : the MasterID , the processID and take bit =
244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->R[SemID] = (ProcessID | ((HAL_GetCurrentCPUID() << POSITION_VAL(HSEM_R_MASTERID)) & HSEM_R_
246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #else
247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->R[SemID] = (ProcessID | HSEM_CR_COREID_CURRENT);
172 .loc 1 247 3 view .LVU34
173 .loc 1 247 31 is_stmt 0 view .LVU35
174 0000 41F48071 orr r1, r1, #256
175 .LVL12:
176 .loc 1 247 18 view .LVU36
177 0004 014B ldr r3, .L18
178 0006 43F82010 str r1, [r3, r0, lsl #2]
248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
179 .loc 1 250 1 view .LVU37
180 000a 7047 bx lr
181 .L19:
182 .align 2
183 .L18:
184 000c 00080248 .word 1208092672
185 .cfi_endproc
186 .LFE338:
188 .section .text.HAL_HSEM_ReleaseAll,"ax",%progbits
189 .align 1
190 .global HAL_HSEM_ReleaseAll
191 .syntax unified
192 .thumb
193 .thumb_func
195 HAL_HSEM_ReleaseAll:
196 .LVL13:
197 .LFB339:
251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Release All semaphore used by a given Master .
254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param Key: Semaphore Key , value from 0 to 0xFFFF
255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param CoreID: CoreID of the CPU that is using semaphores to be released
256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval None
257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** void HAL_HSEM_ReleaseAll(uint32_t Key, uint32_t CoreID)
259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
198 .loc 1 259 1 is_stmt 1 view -0
199 .cfi_startproc
200 @ args = 0, pretend = 0, frame = 0
201 @ frame_needed = 0, uses_anonymous_args = 0
202 @ link register save eliminated.
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 9
260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_KEY(Key));
203 .loc 1 260 3 view .LVU39
261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_COREID(CoreID));
204 .loc 1 261 3 view .LVU40
262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->CR = ((Key << HSEM_CR_KEY_Pos) | (CoreID << HSEM_CR_COREID_Pos));
205 .loc 1 263 3 view .LVU41
206 .loc 1 263 50 is_stmt 0 view .LVU42
207 0000 0902 lsls r1, r1, #8
208 .LVL14:
209 .loc 1 263 40 view .LVU43
210 0002 41EA0041 orr r1, r1, r0, lsl #16
211 .loc 1 263 12 view .LVU44
212 0006 024B ldr r3, .L21
213 0008 C3F84011 str r1, [r3, #320]
264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
214 .loc 1 264 1 view .LVU45
215 000c 7047 bx lr
216 .L22:
217 000e 00BF .align 2
218 .L21:
219 0010 00080248 .word 1208092672
220 .cfi_endproc
221 .LFE339:
223 .section .text.HAL_HSEM_SetClearKey,"ax",%progbits
224 .align 1
225 .global HAL_HSEM_SetClearKey
226 .syntax unified
227 .thumb
228 .thumb_func
230 HAL_HSEM_SetClearKey:
231 .LVL15:
232 .LFB340:
265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @}
268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @defgroup HSEM_Exported_Functions_Group2 HSEM Set and Get Key functions
271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief HSEM Set and Get Key functions.
272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @verbatim
274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ##### HSEM Set and Get Key functions #####
276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] This section provides functions allowing to:
278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Set semaphore Key
279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** (+) Get semaphore Key
280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @endverbatim
281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Set semaphore Key .
287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param Key: Semaphore Key , value from 0 to 0xFFFF
288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval None
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 10
289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** void HAL_HSEM_SetClearKey(uint32_t Key)
291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
233 .loc 1 291 1 is_stmt 1 view -0
234 .cfi_startproc
235 @ args = 0, pretend = 0, frame = 0
236 @ frame_needed = 0, uses_anonymous_args = 0
237 @ link register save eliminated.
292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** assert_param(IS_HSEM_KEY(Key));
238 .loc 1 292 3 view .LVU47
293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** MODIFY_REG(HSEM->KEYR, HSEM_KEYR_KEY, (Key << HSEM_KEYR_KEY_Pos));
239 .loc 1 294 3 view .LVU48
240 0000 044A ldr r2, .L24
241 0002 D2F84431 ldr r3, [r2, #324]
242 0006 9BB2 uxth r3, r3
243 0008 43EA0043 orr r3, r3, r0, lsl #16
244 000c C2F84431 str r3, [r2, #324]
295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
245 .loc 1 296 1 is_stmt 0 view .LVU49
246 0010 7047 bx lr
247 .L25:
248 0012 00BF .align 2
249 .L24:
250 0014 00080248 .word 1208092672
251 .cfi_endproc
252 .LFE340:
254 .section .text.HAL_HSEM_GetClearKey,"ax",%progbits
255 .align 1
256 .global HAL_HSEM_GetClearKey
257 .syntax unified
258 .thumb
259 .thumb_func
261 HAL_HSEM_GetClearKey:
262 .LFB341:
297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Get semaphore Key .
300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval Semaphore Key , value from 0 to 0xFFFF
301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** uint32_t HAL_HSEM_GetClearKey(void)
303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
263 .loc 1 303 1 is_stmt 1 view -0
264 .cfi_startproc
265 @ args = 0, pretend = 0, frame = 0
266 @ frame_needed = 0, uses_anonymous_args = 0
267 @ link register save eliminated.
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** return (HSEM->KEYR >> HSEM_KEYR_KEY_Pos);
268 .loc 1 304 3 view .LVU51
269 .loc 1 304 15 is_stmt 0 view .LVU52
270 0000 024B ldr r3, .L27
271 0002 D3F84401 ldr r0, [r3, #324]
305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
272 .loc 1 305 1 view .LVU53
273 0006 000C lsrs r0, r0, #16
274 0008 7047 bx lr
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 11
275 .L28:
276 000a 00BF .align 2
277 .L27:
278 000c 00080248 .word 1208092672
279 .cfi_endproc
280 .LFE341:
282 .section .text.HAL_HSEM_ActivateNotification,"ax",%progbits
283 .align 1
284 .global HAL_HSEM_ActivateNotification
285 .syntax unified
286 .thumb
287 .thumb_func
289 HAL_HSEM_ActivateNotification:
290 .LVL16:
291 .LFB342:
306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @}
309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /** @defgroup HSEM_Exported_Functions_Group3 HSEM IRQ handler management
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief HSEM Notification functions.
313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** *
314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @verbatim
315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ##### HSEM IRQ handler management and Notification functions #####
317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** ==============================================================================
318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** [..] This section provides HSEM IRQ handler and Notification function.
319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** @endverbatim
321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @{
322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Activate Semaphore release Notification for a given Semaphores Mask .
326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemMask: Mask of Released semaphores
327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval Semaphore Key
328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** void HAL_HSEM_ActivateNotification(uint32_t SemMask)
330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
292 .loc 1 330 1 is_stmt 1 view -0
293 .cfi_startproc
294 @ args = 0, pretend = 0, frame = 0
295 @ frame_needed = 0, uses_anonymous_args = 0
296 @ link register save eliminated.
331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*enable the semaphore mask interrupts */
333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HAL_GetCurrentCPUID() == HSEM_CPU1_COREID)
334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Use interrupt line 0 for CPU1 Master */
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C1IER |= SemMask;
337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** else /* HSEM_CPU2_COREID */
339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Use interrupt line 1 for CPU2 Master*/
341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C2IER |= SemMask;
342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 12
343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #else
344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM_COMMON->IER |= SemMask;
297 .loc 1 344 3 view .LVU55
298 .loc 1 344 14 is_stmt 0 view .LVU56
299 0000 024A ldr r2, .L30
300 0002 1368 ldr r3, [r2]
301 .loc 1 344 20 view .LVU57
302 0004 0343 orrs r3, r3, r0
303 0006 1360 str r3, [r2]
345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
304 .loc 1 346 1 view .LVU58
305 0008 7047 bx lr
306 .L31:
307 000a 00BF .align 2
308 .L30:
309 000c 00090248 .word 1208092928
310 .cfi_endproc
311 .LFE342:
313 .section .text.HAL_HSEM_DeactivateNotification,"ax",%progbits
314 .align 1
315 .global HAL_HSEM_DeactivateNotification
316 .syntax unified
317 .thumb
318 .thumb_func
320 HAL_HSEM_DeactivateNotification:
321 .LVL17:
322 .LFB343:
347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Deactivate Semaphore release Notification for a given Semaphores Mask .
350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemMask: Mask of Released semaphores
351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval Semaphore Key
352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** void HAL_HSEM_DeactivateNotification(uint32_t SemMask)
354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
323 .loc 1 354 1 is_stmt 1 view -0
324 .cfi_startproc
325 @ args = 0, pretend = 0, frame = 0
326 @ frame_needed = 0, uses_anonymous_args = 0
327 @ link register save eliminated.
355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*enable the semaphore mask interrupts */
357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HAL_GetCurrentCPUID() == HSEM_CPU1_COREID)
358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Use interrupt line 0 for CPU1 Master */
360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C1IER &= ~SemMask;
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** else /* HSEM_CPU2_COREID */
363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Use interrupt line 1 for CPU2 Master*/
365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C2IER &= ~SemMask;
366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #else
368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM_COMMON->IER &= ~SemMask;
328 .loc 1 368 3 view .LVU60
329 .loc 1 368 14 is_stmt 0 view .LVU61
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 13
330 0000 024A ldr r2, .L33
331 0002 1368 ldr r3, [r2]
332 .loc 1 368 20 view .LVU62
333 0004 23EA0003 bic r3, r3, r0
334 0008 1360 str r3, [r2]
369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
335 .loc 1 370 1 view .LVU63
336 000a 7047 bx lr
337 .L34:
338 .align 2
339 .L33:
340 000c 00090248 .word 1208092928
341 .cfi_endproc
342 .LFE343:
344 .section .text.HAL_HSEM_FreeCallback,"ax",%progbits
345 .align 1
346 .weak HAL_HSEM_FreeCallback
347 .syntax unified
348 .thumb
349 .thumb_func
351 HAL_HSEM_FreeCallback:
352 .LVL18:
353 .LFB345:
371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief This function handles HSEM interrupt request
374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval None
375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** void HAL_HSEM_IRQHandler(void)
377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** uint32_t statusreg;
379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** if (HAL_GetCurrentCPUID() == HSEM_CPU1_COREID)
381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Get the list of masked freed semaphores*/
383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** statusreg = HSEM->C1MISR; /*Use interrupt line 0 for CPU1 Master*/
384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Disable Interrupts*/
386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C1IER &= ~((uint32_t)statusreg);
387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Clear Flags*/
389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C1ICR = ((uint32_t)statusreg);
390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** else /* HSEM_CPU2_COREID */
392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Get the list of masked freed semaphores*/
394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** statusreg = HSEM->C2MISR;/*Use interrupt line 1 for CPU2 Master*/
395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Disable Interrupts*/
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C2IER &= ~((uint32_t)statusreg);
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Clear Flags*/
400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM->C2ICR = ((uint32_t)statusreg);
401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #else
403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Get the list of masked freed semaphores*/
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 14
404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** statusreg = HSEM_COMMON->MISR;
405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Disable Interrupts*/
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM_COMMON->IER &= ~((uint32_t)statusreg);
408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /*Clear Flags*/
410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HSEM_COMMON->ICR = ((uint32_t)statusreg);
411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #endif
413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Call FreeCallback */
414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** HAL_HSEM_FreeCallback(statusreg);
415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /**
418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @brief Semaphore Released Callback.
419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @param SemMask: Mask of Released semaphores
420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** * @retval None
421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** __weak void HAL_HSEM_FreeCallback(uint32_t SemMask)
423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** {
354 .loc 1 423 1 is_stmt 1 view -0
355 .cfi_startproc
356 @ args = 0, pretend = 0, frame = 0
357 @ frame_needed = 0, uses_anonymous_args = 0
358 @ link register save eliminated.
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* Prevent unused argument(s) compilation warning */
425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** UNUSED(SemMask);
359 .loc 1 425 3 view .LVU65
426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** /* NOTE : This function should not be modified, when the callback is needed,
428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** the HAL_HSEM_FreeCallback can be implemented in the user file
429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** */
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
360 .loc 1 430 1 is_stmt 0 view .LVU66
361 0000 7047 bx lr
362 .cfi_endproc
363 .LFE345:
365 .section .text.HAL_HSEM_IRQHandler,"ax",%progbits
366 .align 1
367 .global HAL_HSEM_IRQHandler
368 .syntax unified
369 .thumb
370 .thumb_func
372 HAL_HSEM_IRQHandler:
373 .LFB344:
377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** uint32_t statusreg;
374 .loc 1 377 1 is_stmt 1 view -0
375 .cfi_startproc
376 @ args = 0, pretend = 0, frame = 0
377 @ frame_needed = 0, uses_anonymous_args = 0
378 0000 08B5 push {r3, lr}
379 .cfi_def_cfa_offset 8
380 .cfi_offset 3, -8
381 .cfi_offset 14, -4
378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** #if USE_MULTI_CORE_SHARED_CODE != 0U
382 .loc 1 378 3 view .LVU68
404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 15
383 .loc 1 404 3 view .LVU69
404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
384 .loc 1 404 13 is_stmt 0 view .LVU70
385 0002 054B ldr r3, .L38
386 0004 D868 ldr r0, [r3, #12]
387 .LVL19:
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
388 .loc 1 407 3 is_stmt 1 view .LVU71
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
389 .loc 1 407 14 is_stmt 0 view .LVU72
390 0006 1A68 ldr r2, [r3]
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
391 .loc 1 407 20 view .LVU73
392 0008 22EA0002 bic r2, r2, r0
393 000c 1A60 str r2, [r3]
410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
394 .loc 1 410 3 is_stmt 1 view .LVU74
410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
395 .loc 1 410 20 is_stmt 0 view .LVU75
396 000e 5860 str r0, [r3, #4]
414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c **** }
397 .loc 1 414 3 is_stmt 1 view .LVU76
398 0010 FFF7FEFF bl HAL_HSEM_FreeCallback
399 .LVL20:
415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c ****
400 .loc 1 415 1 is_stmt 0 view .LVU77
401 0014 08BD pop {r3, pc}
402 .L39:
403 0016 00BF .align 2
404 .L38:
405 0018 00090248 .word 1208092928
406 .cfi_endproc
407 .LFE344:
409 .text
410 .Letext0:
411 .file 2 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to
412 .file 3 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to
413 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h"
414 .file 5 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h"
ARM GAS C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s page 16
DEFINED SYMBOLS
*ABS*:00000000 stm32h7xx_hal_hsem.c
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:20 .text.HAL_HSEM_Take:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:26 .text.HAL_HSEM_Take:00000000 HAL_HSEM_Take
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:64 .text.HAL_HSEM_Take:0000001c $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:70 .text.HAL_HSEM_FastTake:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:76 .text.HAL_HSEM_FastTake:00000000 HAL_HSEM_FastTake
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:109 .text.HAL_HSEM_FastTake:00000018 $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:115 .text.HAL_HSEM_IsSemTaken:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:121 .text.HAL_HSEM_IsSemTaken:00000000 HAL_HSEM_IsSemTaken
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:151 .text.HAL_HSEM_IsSemTaken:00000014 $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:156 .text.HAL_HSEM_Release:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:162 .text.HAL_HSEM_Release:00000000 HAL_HSEM_Release
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:184 .text.HAL_HSEM_Release:0000000c $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:189 .text.HAL_HSEM_ReleaseAll:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:195 .text.HAL_HSEM_ReleaseAll:00000000 HAL_HSEM_ReleaseAll
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:219 .text.HAL_HSEM_ReleaseAll:00000010 $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:224 .text.HAL_HSEM_SetClearKey:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:230 .text.HAL_HSEM_SetClearKey:00000000 HAL_HSEM_SetClearKey
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:250 .text.HAL_HSEM_SetClearKey:00000014 $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:255 .text.HAL_HSEM_GetClearKey:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:261 .text.HAL_HSEM_GetClearKey:00000000 HAL_HSEM_GetClearKey
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:278 .text.HAL_HSEM_GetClearKey:0000000c $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:283 .text.HAL_HSEM_ActivateNotification:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:289 .text.HAL_HSEM_ActivateNotification:00000000 HAL_HSEM_ActivateNotification
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:309 .text.HAL_HSEM_ActivateNotification:0000000c $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:314 .text.HAL_HSEM_DeactivateNotification:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:320 .text.HAL_HSEM_DeactivateNotification:00000000 HAL_HSEM_DeactivateNotification
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:340 .text.HAL_HSEM_DeactivateNotification:0000000c $d
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:345 .text.HAL_HSEM_FreeCallback:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:351 .text.HAL_HSEM_FreeCallback:00000000 HAL_HSEM_FreeCallback
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:366 .text.HAL_HSEM_IRQHandler:00000000 $t
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:372 .text.HAL_HSEM_IRQHandler:00000000 HAL_HSEM_IRQHandler
C:\Users\lenex\AppData\Local\Temp\ccfcmKyG.s:405 .text.HAL_HSEM_IRQHandler:00000018 $d
NO UNDEFINED SYMBOLS