The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32h7xx_hal_hsem.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of HSEM HAL module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
AnnaBridge 172:65be27845400 10 * All rights reserved.</center></h2>
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 172:65be27845400 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 172:65be27845400 14 * License. You may obtain a copy of the License at:
AnnaBridge 172:65be27845400 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 172:65be27845400 16 *
AnnaBridge 172:65be27845400 17 ******************************************************************************
AnnaBridge 172:65be27845400 18 */
AnnaBridge 172:65be27845400 19
AnnaBridge 172:65be27845400 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 21 #ifndef STM32H7xx_HAL_HSEM_H
AnnaBridge 172:65be27845400 22 #define STM32H7xx_HAL_HSEM_H
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #ifdef __cplusplus
AnnaBridge 172:65be27845400 25 extern "C" {
AnnaBridge 172:65be27845400 26 #endif
AnnaBridge 172:65be27845400 27
AnnaBridge 172:65be27845400 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 29 #include "stm32h7xx_hal_def.h"
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31 /** @addtogroup STM32H7xx_HAL_Driver
AnnaBridge 172:65be27845400 32 * @{
AnnaBridge 172:65be27845400 33 */
AnnaBridge 172:65be27845400 34
AnnaBridge 172:65be27845400 35 /** @addtogroup HSEM
AnnaBridge 172:65be27845400 36 * @{
AnnaBridge 172:65be27845400 37 */
AnnaBridge 172:65be27845400 38
AnnaBridge 172:65be27845400 39 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 40 /** @defgroup HSEM_Exported_Macros HSEM Exported Macros
AnnaBridge 172:65be27845400 41 * @{
AnnaBridge 172:65be27845400 42 */
AnnaBridge 172:65be27845400 43
AnnaBridge 172:65be27845400 44 /**
AnnaBridge 172:65be27845400 45 * @brief SemID to mask helper Macro.
AnnaBridge 172:65be27845400 46 * @param __SEMID__: semaphore ID from 0 to 31
AnnaBridge 172:65be27845400 47 * @retval Semaphore Mask.
AnnaBridge 172:65be27845400 48 */
AnnaBridge 172:65be27845400 49 #define __HAL_HSEM_SEMID_TO_MASK(__SEMID__) (1 << (__SEMID__))
AnnaBridge 172:65be27845400 50
AnnaBridge 172:65be27845400 51 /**
AnnaBridge 172:65be27845400 52 * @brief Enables the specified HSEM interrupts.
AnnaBridge 172:65be27845400 53 * @param __SEM_MASK__: semaphores Mask
AnnaBridge 172:65be27845400 54 * @retval None.
AnnaBridge 172:65be27845400 55 */
AnnaBridge 172:65be27845400 56 #define __HAL_HSEM_ENABLE_IT(__SEM_MASK__) (HSEM->IER |= (__SEM_MASK__))
AnnaBridge 172:65be27845400 57 /**
AnnaBridge 172:65be27845400 58 * @brief Disables the specified HSEM interrupts.
AnnaBridge 172:65be27845400 59 * @param __SEM_MASK__: semaphores Mask
AnnaBridge 172:65be27845400 60 * @retval None.
AnnaBridge 172:65be27845400 61 */
AnnaBridge 172:65be27845400 62 #define __HAL_HSEM_DISABLE_IT(__SEM_MASK__) (HSEM->IER &= ~(__SEM_MASK__))
AnnaBridge 172:65be27845400 63
AnnaBridge 172:65be27845400 64 /**
AnnaBridge 172:65be27845400 65 * @brief Checks whether interrupt has occurred or not for semaphores specified by a mask.
AnnaBridge 172:65be27845400 66 * @param __SEM_MASK__: semaphores Mask
AnnaBridge 172:65be27845400 67 * @retval semaphores Mask : Semaphores where an interrupt occurred.
AnnaBridge 172:65be27845400 68 */
AnnaBridge 172:65be27845400 69 #define __HAL_HSEM_GET_IT(__SEM_MASK__) ((__SEM_MASK__) & HSEM->MISR)
AnnaBridge 172:65be27845400 70
AnnaBridge 172:65be27845400 71 /**
AnnaBridge 172:65be27845400 72 * @brief Get the semaphores release status flags.
AnnaBridge 172:65be27845400 73 * @param __SEM_MASK__: semaphores Mask
AnnaBridge 172:65be27845400 74 * @retval semaphores Mask : Semaphores where Release flags rise.
AnnaBridge 172:65be27845400 75 */
AnnaBridge 172:65be27845400 76 #define __HAL_HSEM_GET_FLAG(__SEM_MASK__) ((__SEM_MASK__) & HSEM->ISR)
AnnaBridge 172:65be27845400 77
AnnaBridge 172:65be27845400 78 /**
AnnaBridge 172:65be27845400 79 * @brief Clears the HSEM Interrupt flags.
AnnaBridge 172:65be27845400 80 * @param __SEM_MASK__: semaphores Mask
AnnaBridge 172:65be27845400 81 * @retval None.
AnnaBridge 172:65be27845400 82 */
AnnaBridge 172:65be27845400 83 #define __HAL_HSEM_CLEAR_FLAG(__SEM_MASK__) (HSEM->ICR |= (__SEM_MASK__))
AnnaBridge 172:65be27845400 84
AnnaBridge 172:65be27845400 85 /**
AnnaBridge 172:65be27845400 86 * @}
AnnaBridge 172:65be27845400 87 */
AnnaBridge 172:65be27845400 88
AnnaBridge 172:65be27845400 89 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 90 /** @defgroup HSEM_Exported_Functions HSEM Exported Functions
AnnaBridge 172:65be27845400 91 * @{
AnnaBridge 172:65be27845400 92 */
AnnaBridge 172:65be27845400 93
AnnaBridge 172:65be27845400 94 /** @addtogroup HSEM_Exported_Functions_Group1 Take and Release functions
AnnaBridge 172:65be27845400 95 * @brief HSEM Take and Release functions
AnnaBridge 172:65be27845400 96 * @{
AnnaBridge 172:65be27845400 97 */
AnnaBridge 172:65be27845400 98
AnnaBridge 172:65be27845400 99 /* HSEM semaphore take (lock) using 2-Step method ****************************/
AnnaBridge 172:65be27845400 100 HAL_StatusTypeDef HAL_HSEM_Take(uint32_t SemID, uint32_t ProcessID);
AnnaBridge 172:65be27845400 101 /* HSEM semaphore fast take (lock) using 1-Step method ***********************/
AnnaBridge 172:65be27845400 102 HAL_StatusTypeDef HAL_HSEM_FastTake(uint32_t SemID);
AnnaBridge 172:65be27845400 103 /* HSEM Check semaphore state Taken or not **********************************/
AnnaBridge 172:65be27845400 104 uint32_t HAL_HSEM_IsSemTaken(uint32_t SemID);
AnnaBridge 172:65be27845400 105 /* HSEM Release **************************************************************/
AnnaBridge 172:65be27845400 106 void HAL_HSEM_Release(uint32_t SemID, uint32_t ProcessID);
AnnaBridge 172:65be27845400 107 /* HSEM Release All************************************************************/
AnnaBridge 172:65be27845400 108 void HAL_HSEM_ReleaseAll(uint32_t Key, uint32_t CoreID);
AnnaBridge 172:65be27845400 109
AnnaBridge 172:65be27845400 110 /**
AnnaBridge 172:65be27845400 111 * @}
AnnaBridge 172:65be27845400 112 */
AnnaBridge 172:65be27845400 113
AnnaBridge 172:65be27845400 114 /** @addtogroup HSEM_Exported_Functions_Group2 HSEM Set and Get Key functions
AnnaBridge 172:65be27845400 115 * @brief HSEM Set and Get Key functions.
AnnaBridge 172:65be27845400 116 * @{
AnnaBridge 172:65be27845400 117 */
AnnaBridge 172:65be27845400 118 /* HSEM Set Clear Key *********************************************************/
AnnaBridge 172:65be27845400 119 void HAL_HSEM_SetClearKey(uint32_t Key);
AnnaBridge 172:65be27845400 120 /* HSEM Get Clear Key *********************************************************/
AnnaBridge 172:65be27845400 121 uint32_t HAL_HSEM_GetClearKey(void);
AnnaBridge 172:65be27845400 122 /**
AnnaBridge 172:65be27845400 123 * @}
AnnaBridge 172:65be27845400 124 */
AnnaBridge 172:65be27845400 125
AnnaBridge 172:65be27845400 126 /** @addtogroup HSEM_Exported_Functions_Group3
AnnaBridge 172:65be27845400 127 * @brief HSEM Notification functions
AnnaBridge 172:65be27845400 128 * @{
AnnaBridge 172:65be27845400 129 */
AnnaBridge 172:65be27845400 130 /* HSEM Activate HSEM Notification (When a semaphore is released) ) *****************/
AnnaBridge 172:65be27845400 131 void HAL_HSEM_ActivateNotification(uint32_t SemMask);
AnnaBridge 172:65be27845400 132 /* HSEM Deactivate HSEM Notification (When a semaphore is released) ****************/
AnnaBridge 172:65be27845400 133 void HAL_HSEM_DeactivateNotification(uint32_t SemMask);
AnnaBridge 172:65be27845400 134 /* HSEM Free Callback (When a semaphore is released) *******************************/
AnnaBridge 172:65be27845400 135 void HAL_HSEM_FreeCallback(uint32_t SemMask);
AnnaBridge 172:65be27845400 136 /* HSEM IRQ Handler **********************************************************/
AnnaBridge 172:65be27845400 137 void HAL_HSEM_IRQHandler(void);
AnnaBridge 172:65be27845400 138
AnnaBridge 172:65be27845400 139 /**
AnnaBridge 172:65be27845400 140 * @}
AnnaBridge 172:65be27845400 141 */
AnnaBridge 172:65be27845400 142
AnnaBridge 172:65be27845400 143 /**
AnnaBridge 172:65be27845400 144 * @}
AnnaBridge 172:65be27845400 145 */
AnnaBridge 172:65be27845400 146
AnnaBridge 172:65be27845400 147 /* Private macros ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 148 /** @defgroup HSEM_Private_Macros HSEM Private Macros
AnnaBridge 172:65be27845400 149 * @{
AnnaBridge 172:65be27845400 150 */
AnnaBridge 172:65be27845400 151
AnnaBridge 172:65be27845400 152 #define IS_HSEM_SEMID(__SEMID__) ((__SEMID__) <= HSEM_SEMID_MAX )
AnnaBridge 172:65be27845400 153
AnnaBridge 172:65be27845400 154 #define IS_HSEM_PROCESSID(__PROCESSID__) ((__PROCESSID__) <= HSEM_PROCESSID_MAX )
AnnaBridge 172:65be27845400 155
AnnaBridge 172:65be27845400 156 #define IS_HSEM_KEY(__KEY__) ((__KEY__) <= HSEM_CLEAR_KEY_MAX )
AnnaBridge 172:65be27845400 157
AnnaBridge 172:65be27845400 158 #define IS_HSEM_COREID(__COREID__) ((__COREID__) == HSEM_CPU1_COREID)
AnnaBridge 172:65be27845400 159
AnnaBridge 172:65be27845400 160 /**
AnnaBridge 172:65be27845400 161 * @}
AnnaBridge 172:65be27845400 162 */
AnnaBridge 172:65be27845400 163
AnnaBridge 172:65be27845400 164 /**
AnnaBridge 172:65be27845400 165 * @}
AnnaBridge 172:65be27845400 166 */
AnnaBridge 172:65be27845400 167
AnnaBridge 172:65be27845400 168 /**
AnnaBridge 172:65be27845400 169 * @}
AnnaBridge 172:65be27845400 170 */
AnnaBridge 172:65be27845400 171
AnnaBridge 172:65be27845400 172 #ifdef __cplusplus
AnnaBridge 172:65be27845400 173 }
AnnaBridge 172:65be27845400 174 #endif
AnnaBridge 172:65be27845400 175
AnnaBridge 172:65be27845400 176 #endif /* STM32H7xx_HAL_HSEM_H */
AnnaBridge 172:65be27845400 177
AnnaBridge 172:65be27845400 178 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/