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