STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
stm32h7xx_ll_hsem.h
Go to the documentation of this file.
1/**
2 ******************************************************************************
3 * @file stm32h7xx_ll_hsem.h
4 * @author MCD Application Team
5 * @brief Header file of HSEM LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2017 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 */
18
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_LL_HSEM_H
21#define STM32H7xx_LL_HSEM_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32h7xx.h"
29
30/** @addtogroup STM32H7xx_LL_Driver
31 * @{
32 */
33
34#if defined(HSEM)
35
36/** @defgroup HSEM_LL HSEM
37 * @{
38 */
39
40/* Private types -------------------------------------------------------------*/
41/* Private variables ---------------------------------------------------------*/
42/* Private constants ---------------------------------------------------------*/
43/* Private macros ------------------------------------------------------------*/
44
45/* Exported types ------------------------------------------------------------*/
46/* Exported constants --------------------------------------------------------*/
47
48/** @defgroup HSEM_LL_Exported_Constants HSEM Exported Constants
49 * @{
50 */
51
52/** @defgroup HSEM_LL_EC_COREID COREID Defines
53 * @{
54 */
55#define LL_HSEM_COREID_NONE 0U
56#define LL_HSEM_COREID_CPU1 HSEM_CR_COREID_CPU1
57#if defined(DUAL_CORE)
58#define LL_HSEM_COREID_CPU2 HSEM_CR_COREID_CPU2
59#endif /* DUAL_CORE */
60#define LL_HSEM_COREID HSEM_CR_COREID_CURRENT
61/**
62 * @}
63 */
64
65
66/** @defgroup HSEM_LL_EC_GET_FLAG Get Flags Defines
67 * @brief Flags defines which can be used with LL_HSEM_ReadReg function
68 * @{
69 */
70
71#define LL_HSEM_SEMAPHORE_0 HSEM_C1IER_ISE0
72#define LL_HSEM_SEMAPHORE_1 HSEM_C1IER_ISE1
73#define LL_HSEM_SEMAPHORE_2 HSEM_C1IER_ISE2
74#define LL_HSEM_SEMAPHORE_3 HSEM_C1IER_ISE3
75#define LL_HSEM_SEMAPHORE_4 HSEM_C1IER_ISE4
76#define LL_HSEM_SEMAPHORE_5 HSEM_C1IER_ISE5
77#define LL_HSEM_SEMAPHORE_6 HSEM_C1IER_ISE6
78#define LL_HSEM_SEMAPHORE_7 HSEM_C1IER_ISE7
79#define LL_HSEM_SEMAPHORE_8 HSEM_C1IER_ISE8
80#define LL_HSEM_SEMAPHORE_9 HSEM_C1IER_ISE9
81#define LL_HSEM_SEMAPHORE_10 HSEM_C1IER_ISE10
82#define LL_HSEM_SEMAPHORE_11 HSEM_C1IER_ISE11
83#define LL_HSEM_SEMAPHORE_12 HSEM_C1IER_ISE12
84#define LL_HSEM_SEMAPHORE_13 HSEM_C1IER_ISE13
85#define LL_HSEM_SEMAPHORE_14 HSEM_C1IER_ISE14
86#define LL_HSEM_SEMAPHORE_15 HSEM_C1IER_ISE15
87#if (HSEM_SEMID_MAX == 15)
88#define LL_HSEM_SEMAPHORE_ALL 0x0000FFFFU
89#else /* HSEM_SEMID_MAX == 31 */
90#define LL_HSEM_SEMAPHORE_16 HSEM_C1IER_ISE16
91#define LL_HSEM_SEMAPHORE_17 HSEM_C1IER_ISE17
92#define LL_HSEM_SEMAPHORE_18 HSEM_C1IER_ISE18
93#define LL_HSEM_SEMAPHORE_19 HSEM_C1IER_ISE19
94#define LL_HSEM_SEMAPHORE_20 HSEM_C1IER_ISE20
95#define LL_HSEM_SEMAPHORE_21 HSEM_C1IER_ISE21
96#define LL_HSEM_SEMAPHORE_22 HSEM_C1IER_ISE22
97#define LL_HSEM_SEMAPHORE_23 HSEM_C1IER_ISE23
98#define LL_HSEM_SEMAPHORE_24 HSEM_C1IER_ISE24
99#define LL_HSEM_SEMAPHORE_25 HSEM_C1IER_ISE25
100#define LL_HSEM_SEMAPHORE_26 HSEM_C1IER_ISE26
101#define LL_HSEM_SEMAPHORE_27 HSEM_C1IER_ISE27
102#define LL_HSEM_SEMAPHORE_28 HSEM_C1IER_ISE28
103#define LL_HSEM_SEMAPHORE_29 HSEM_C1IER_ISE29
104#define LL_HSEM_SEMAPHORE_30 HSEM_C1IER_ISE30
105#define LL_HSEM_SEMAPHORE_31 HSEM_C1IER_ISE31
106#define LL_HSEM_SEMAPHORE_ALL 0xFFFFFFFFU
107#endif /* HSEM_SEMID_MAX == 15 */
108/**
109 * @}
110 */
111
112/**
113 * @}
114 */
115
116/* Exported macro ------------------------------------------------------------*/
117/** @defgroup HSEM_LL_Exported_Macros HSEM Exported Macros
118 * @{
119 */
120
121/** @defgroup HSEM_LL_EM_WRITE_READ Common Write and read registers Macros
122 * @{
123 */
124
125/**
126 * @brief Write a value in HSEM register
127 * @param __INSTANCE__ HSEM Instance
128 * @param __REG__ Register to be written
129 * @param __VALUE__ Value to be written in the register
130 * @retval None
131 */
132#define LL_HSEM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
133
134/**
135 * @brief Read a value in HSEM register
136 * @param __INSTANCE__ HSEM Instance
137 * @param __REG__ Register to be read
138 * @retval Register value
139 */
140#define LL_HSEM_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
141/**
142 * @}
143 */
144
145/**
146 * @}
147 */
148
149/* Exported functions --------------------------------------------------------*/
150/** @defgroup HSEM_LL_Exported_Functions HSEM Exported Functions
151 * @{
152 */
153
154/** @defgroup HSEM_LL_EF_Data_Management Data_Management
155 * @{
156 */
157
158
159/**
160 * @brief Return 1 if the semaphore is locked, else return 0.
161 * @rmtoll R LOCK LL_HSEM_IsSemaphoreLocked
162 * @param HSEMx HSEM Instance.
163 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
164 * @retval State of bit (1 or 0).
165 */
166__STATIC_INLINE uint32_t LL_HSEM_IsSemaphoreLocked(const HSEM_TypeDef *HSEMx, uint32_t Semaphore)
167{
168 return ((READ_BIT(HSEMx->R[Semaphore], HSEM_R_LOCK) == (HSEM_R_LOCK_Msk)) ? 1UL : 0UL);
169}
170
171/**
172 * @brief Get core id.
173 * @rmtoll R COREID LL_HSEM_GetCoreId
174 * @param HSEMx HSEM Instance.
175 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
176 * @retval Returned value can be one of the following values:
177 * @arg @ref LL_HSEM_COREID_NONE
178 * @arg @ref LL_HSEM_COREID_CPU1
179 * @arg @ref LL_HSEM_COREID_CPU2
180 */
181__STATIC_INLINE uint32_t LL_HSEM_GetCoreId(const HSEM_TypeDef *HSEMx, uint32_t Semaphore)
182{
183 return (uint32_t)(READ_BIT(HSEMx->R[Semaphore], HSEM_R_COREID_Msk));
184}
185
186/**
187 * @brief Get process id.
188 * @rmtoll R PROCID LL_HSEM_GetProcessId
189 * @param HSEMx HSEM Instance.
190 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
191 * @retval Process number. Value between Min_Data=0 and Max_Data=255
192 */
193__STATIC_INLINE uint32_t LL_HSEM_GetProcessId(const HSEM_TypeDef *HSEMx, uint32_t Semaphore)
194{
195 return (uint32_t)(READ_BIT(HSEMx->R[Semaphore], HSEM_R_PROCID_Msk));
196}
197
198/**
199 * @brief Get the lock by writing in R register.
200 * @note The R register has to be read to determined if the lock is taken.
201 * @rmtoll R LOCK LL_HSEM_SetLock
202 * @rmtoll R COREID LL_HSEM_SetLock
203 * @rmtoll R PROCID LL_HSEM_SetLock
204 * @param HSEMx HSEM Instance.
205 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
206 * @param process Process id. Value between Min_Data=0 and Max_Data=255
207 * @retval None
208 */
209__STATIC_INLINE void LL_HSEM_SetLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore, uint32_t process)
210{
211 WRITE_REG(HSEMx->R[Semaphore], (HSEM_R_LOCK | LL_HSEM_COREID | process));
212}
213
214/**
215 * @brief Get the lock with 2-step lock.
216 * @rmtoll R LOCK LL_HSEM_2StepLock
217 * @rmtoll R COREID LL_HSEM_2StepLock
218 * @rmtoll R PROCID LL_HSEM_2StepLock
219 * @param HSEMx HSEM Instance.
220 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
221 * @param process Process id. Value between Min_Data=0 and Max_Data=255
222 * @retval 1 lock fail, 0 lock successful or already locked by same process and core
223 */
224__STATIC_INLINE uint32_t LL_HSEM_2StepLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore, uint32_t process)
225{
226 WRITE_REG(HSEMx->R[Semaphore], (HSEM_R_LOCK | LL_HSEM_COREID | process));
227 return ((HSEMx->R[Semaphore] != (HSEM_R_LOCK | LL_HSEM_COREID | process)) ? 1UL : 0UL);
228}
229
230/**
231 * @brief Get the lock with 1-step lock.
232 * @rmtoll RLR LOCK LL_HSEM_1StepLock
233 * @rmtoll RLR COREID LL_HSEM_1StepLock
234 * @rmtoll RLR PROCID LL_HSEM_1StepLock
235 * @param HSEMx HSEM Instance.
236 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
237 * @retval 1 lock fail, 0 lock successful or already locked by same core
238 */
239__STATIC_INLINE uint32_t LL_HSEM_1StepLock(const HSEM_TypeDef *HSEMx, uint32_t Semaphore)
240{
241 return ((HSEMx->RLR[Semaphore] != (HSEM_RLR_LOCK | LL_HSEM_COREID)) ? 1UL : 0UL);
242}
243
244/**
245 * @brief Release the lock of the semaphore.
246 * @note In case of LL_HSEM_1StepLock usage to lock a semaphore, the process is 0.
247 * @rmtoll R LOCK LL_HSEM_ReleaseLock
248 * @param HSEMx HSEM Instance.
249 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
250 * @param process Process number. Value between Min_Data=0 and Max_Data=255
251 * @retval None
252 */
253__STATIC_INLINE void LL_HSEM_ReleaseLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore, uint32_t process)
254{
255 WRITE_REG(HSEMx->R[Semaphore], (LL_HSEM_COREID | process));
256}
257
258/**
259 * @brief Get the lock status of the semaphore.
260 * @rmtoll R LOCK LL_HSEM_GetStatus
261 * @param HSEMx HSEM Instance.
262 * @param Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
263 * @retval 0 semaphore is free, 1 semaphore is locked */
264__STATIC_INLINE uint32_t LL_HSEM_GetStatus(const HSEM_TypeDef *HSEMx, uint32_t Semaphore)
265{
266 return ((HSEMx->R[Semaphore] != 0U) ? 1UL : 0UL);
267}
268
269/**
270 * @brief Set the key.
271 * @rmtoll KEYR KEY LL_HSEM_SetKey
272 * @param HSEMx HSEM Instance.
273 * @param key Key value.
274 * @retval None
275 */
276__STATIC_INLINE void LL_HSEM_SetKey(HSEM_TypeDef *HSEMx, uint32_t key)
277{
278 WRITE_REG(HSEMx->KEYR, key << HSEM_KEYR_KEY_Pos);
279}
280
281/**
282 * @brief Get the key.
283 * @rmtoll KEYR KEY LL_HSEM_GetKey
284 * @param HSEMx HSEM Instance.
285 * @retval key to unlock all semaphore from the same core
286 */
287__STATIC_INLINE uint32_t LL_HSEM_GetKey(const HSEM_TypeDef *HSEMx)
288{
289 return (uint32_t)(READ_BIT(HSEMx->KEYR, HSEM_KEYR_KEY) >> HSEM_KEYR_KEY_Pos);
290}
291
292/**
293 * @brief Release all semaphore with the same core id.
294 * @rmtoll CR KEY LL_HSEM_ResetAllLock
295 * @rmtoll CR SEC LL_HSEM_ResetAllLock
296 * @rmtoll CR PRIV LL_HSEM_ResetAllLock
297 * @param HSEMx HSEM Instance.
298 * @param key Key value.
299 * @param core This parameter can be one of the following values:
300 * @arg @ref LL_HSEM_COREID_CPU1
301 * @arg @ref LL_HSEM_COREID_CPU2
302 * @retval None
303 */
304__STATIC_INLINE void LL_HSEM_ResetAllLock(HSEM_TypeDef *HSEMx, uint32_t key, uint32_t core)
305{
306 WRITE_REG(HSEMx->CR, (key << HSEM_CR_KEY_Pos) | core);
307}
308
309/**
310 * @}
311 */
312
313/** @defgroup HSEM_LL_EF_IT_Management IT_Management
314 * @{
315 */
316
317/**
318 * @brief Enable interrupt.
319 * @rmtoll C1IER ISEM LL_HSEM_EnableIT_C1IER
320 * @param HSEMx HSEM Instance.
321 * @param SemaphoreMask This parameter can be a combination of the following values:
322 * @arg @ref LL_HSEM_SEMAPHORE_0
323 * @arg @ref LL_HSEM_SEMAPHORE_1
324 * @arg @ref LL_HSEM_SEMAPHORE_2
325 * @arg @ref LL_HSEM_SEMAPHORE_3
326 * @arg @ref LL_HSEM_SEMAPHORE_4
327 * @arg @ref LL_HSEM_SEMAPHORE_5
328 * @arg @ref LL_HSEM_SEMAPHORE_6
329 * @arg @ref LL_HSEM_SEMAPHORE_7
330 * @arg @ref LL_HSEM_SEMAPHORE_8
331 * @arg @ref LL_HSEM_SEMAPHORE_9
332 * @arg @ref LL_HSEM_SEMAPHORE_10
333 * @arg @ref LL_HSEM_SEMAPHORE_11
334 * @arg @ref LL_HSEM_SEMAPHORE_12
335 * @arg @ref LL_HSEM_SEMAPHORE_13
336 * @arg @ref LL_HSEM_SEMAPHORE_14
337 * @arg @ref LL_HSEM_SEMAPHORE_15
338 * @arg @ref LL_HSEM_SEMAPHORE_16
339 * @arg @ref LL_HSEM_SEMAPHORE_17
340 * @arg @ref LL_HSEM_SEMAPHORE_18
341 * @arg @ref LL_HSEM_SEMAPHORE_19
342 * @arg @ref LL_HSEM_SEMAPHORE_20
343 * @arg @ref LL_HSEM_SEMAPHORE_21
344 * @arg @ref LL_HSEM_SEMAPHORE_22
345 * @arg @ref LL_HSEM_SEMAPHORE_23
346 * @arg @ref LL_HSEM_SEMAPHORE_24
347 * @arg @ref LL_HSEM_SEMAPHORE_25
348 * @arg @ref LL_HSEM_SEMAPHORE_26
349 * @arg @ref LL_HSEM_SEMAPHORE_27
350 * @arg @ref LL_HSEM_SEMAPHORE_28
351 * @arg @ref LL_HSEM_SEMAPHORE_29
352 * @arg @ref LL_HSEM_SEMAPHORE_30
353 * @arg @ref LL_HSEM_SEMAPHORE_31
354 * @arg @ref LL_HSEM_SEMAPHORE_ALL
355 * @note Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
356 * depends on devices.
357 * @retval None
358 */
359__STATIC_INLINE void LL_HSEM_EnableIT_C1IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
360{
361 SET_BIT(HSEMx->C1IER, SemaphoreMask);
362}
363
364/**
365 * @brief Disable interrupt.
366 * @rmtoll C1IER ISEM LL_HSEM_DisableIT_C1IER
367 * @param HSEMx HSEM Instance.
368 * @param SemaphoreMask This parameter can be a combination of the following values:
369 * @arg @ref LL_HSEM_SEMAPHORE_0
370 * @arg @ref LL_HSEM_SEMAPHORE_1
371 * @arg @ref LL_HSEM_SEMAPHORE_2
372 * @arg @ref LL_HSEM_SEMAPHORE_3
373 * @arg @ref LL_HSEM_SEMAPHORE_4
374 * @arg @ref LL_HSEM_SEMAPHORE_5
375 * @arg @ref LL_HSEM_SEMAPHORE_6
376 * @arg @ref LL_HSEM_SEMAPHORE_7
377 * @arg @ref LL_HSEM_SEMAPHORE_8
378 * @arg @ref LL_HSEM_SEMAPHORE_9
379 * @arg @ref LL_HSEM_SEMAPHORE_10
380 * @arg @ref LL_HSEM_SEMAPHORE_11
381 * @arg @ref LL_HSEM_SEMAPHORE_12
382 * @arg @ref LL_HSEM_SEMAPHORE_13
383 * @arg @ref LL_HSEM_SEMAPHORE_14
384 * @arg @ref LL_HSEM_SEMAPHORE_15
385 * @arg @ref LL_HSEM_SEMAPHORE_16
386 * @arg @ref LL_HSEM_SEMAPHORE_17
387 * @arg @ref LL_HSEM_SEMAPHORE_18
388 * @arg @ref LL_HSEM_SEMAPHORE_19
389 * @arg @ref LL_HSEM_SEMAPHORE_20
390 * @arg @ref LL_HSEM_SEMAPHORE_21
391 * @arg @ref LL_HSEM_SEMAPHORE_22
392 * @arg @ref LL_HSEM_SEMAPHORE_23
393 * @arg @ref LL_HSEM_SEMAPHORE_24
394 * @arg @ref LL_HSEM_SEMAPHORE_25
395 * @arg @ref LL_HSEM_SEMAPHORE_26
396 * @arg @ref LL_HSEM_SEMAPHORE_27
397 * @arg @ref LL_HSEM_SEMAPHORE_28
398 * @arg @ref LL_HSEM_SEMAPHORE_29
399 * @arg @ref LL_HSEM_SEMAPHORE_30
400 * @arg @ref LL_HSEM_SEMAPHORE_31
401 * @arg @ref LL_HSEM_SEMAPHORE_ALL
402 * @note Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
403 * depends on devices.
404 * @retval None
405 */
406__STATIC_INLINE void LL_HSEM_DisableIT_C1IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
407{
408 CLEAR_BIT(HSEMx->C1IER, SemaphoreMask);
409}
410
411/**
412 * @brief Check if interrupt is enabled.
413 * @rmtoll C1IER ISEM LL_HSEM_IsEnabledIT_C1IER
414 * @param HSEMx HSEM Instance.
415 * @param SemaphoreMask This parameter can be a combination of the following values:
416 * @arg @ref LL_HSEM_SEMAPHORE_0
417 * @arg @ref LL_HSEM_SEMAPHORE_1
418 * @arg @ref LL_HSEM_SEMAPHORE_2
419 * @arg @ref LL_HSEM_SEMAPHORE_3
420 * @arg @ref LL_HSEM_SEMAPHORE_4
421 * @arg @ref LL_HSEM_SEMAPHORE_5
422 * @arg @ref LL_HSEM_SEMAPHORE_6
423 * @arg @ref LL_HSEM_SEMAPHORE_7
424 * @arg @ref LL_HSEM_SEMAPHORE_8
425 * @arg @ref LL_HSEM_SEMAPHORE_9
426 * @arg @ref LL_HSEM_SEMAPHORE_10
427 * @arg @ref LL_HSEM_SEMAPHORE_11
428 * @arg @ref LL_HSEM_SEMAPHORE_12
429 * @arg @ref LL_HSEM_SEMAPHORE_13
430 * @arg @ref LL_HSEM_SEMAPHORE_14
431 * @arg @ref LL_HSEM_SEMAPHORE_15
432 * @arg @ref LL_HSEM_SEMAPHORE_16
433 * @arg @ref LL_HSEM_SEMAPHORE_17
434 * @arg @ref LL_HSEM_SEMAPHORE_18
435 * @arg @ref LL_HSEM_SEMAPHORE_19
436 * @arg @ref LL_HSEM_SEMAPHORE_20
437 * @arg @ref LL_HSEM_SEMAPHORE_21
438 * @arg @ref LL_HSEM_SEMAPHORE_22
439 * @arg @ref LL_HSEM_SEMAPHORE_23
440 * @arg @ref LL_HSEM_SEMAPHORE_24
441 * @arg @ref LL_HSEM_SEMAPHORE_25
442 * @arg @ref LL_HSEM_SEMAPHORE_26
443 * @arg @ref LL_HSEM_SEMAPHORE_27
444 * @arg @ref LL_HSEM_SEMAPHORE_28
445 * @arg @ref LL_HSEM_SEMAPHORE_29
446 * @arg @ref LL_HSEM_SEMAPHORE_30
447 * @arg @ref LL_HSEM_SEMAPHORE_31
448 * @arg @ref LL_HSEM_SEMAPHORE_ALL
449 * @note Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
450 * depends on devices.
451 * @retval State of bit (1 or 0).
452 */
453__STATIC_INLINE uint32_t LL_HSEM_IsEnabledIT_C1IER(const HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
454{
455 return ((READ_BIT(HSEMx->C1IER, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
456}
457
458#if defined(DUAL_CORE)
459/**
460 * @brief Enable interrupt.
461 * @rmtoll C2IER ISEM LL_HSEM_EnableIT_C2IER
462 * @param HSEMx HSEM Instance.
463 * @param SemaphoreMask This parameter can be a combination of the following values:
464 * @arg @ref LL_HSEM_SEMAPHORE_0
465 * @arg @ref LL_HSEM_SEMAPHORE_1
466 * @arg @ref LL_HSEM_SEMAPHORE_2
467 * @arg @ref LL_HSEM_SEMAPHORE_3
468 * @arg @ref LL_HSEM_SEMAPHORE_4
469 * @arg @ref LL_HSEM_SEMAPHORE_5
470 * @arg @ref LL_HSEM_SEMAPHORE_6
471 * @arg @ref LL_HSEM_SEMAPHORE_7
472 * @arg @ref LL_HSEM_SEMAPHORE_8
473 * @arg @ref LL_HSEM_SEMAPHORE_9
474 * @arg @ref LL_HSEM_SEMAPHORE_10
475 * @arg @ref LL_HSEM_SEMAPHORE_11
476 * @arg @ref LL_HSEM_SEMAPHORE_12
477 * @arg @ref LL_HSEM_SEMAPHORE_13
478 * @arg @ref LL_HSEM_SEMAPHORE_14
479 * @arg @ref LL_HSEM_SEMAPHORE_15
480 * @arg @ref LL_HSEM_SEMAPHORE_16
481 * @arg @ref LL_HSEM_SEMAPHORE_17
482 * @arg @ref LL_HSEM_SEMAPHORE_18
483 * @arg @ref LL_HSEM_SEMAPHORE_19
484 * @arg @ref LL_HSEM_SEMAPHORE_20
485 * @arg @ref LL_HSEM_SEMAPHORE_21
486 * @arg @ref LL_HSEM_SEMAPHORE_22
487 * @arg @ref LL_HSEM_SEMAPHORE_23
488 * @arg @ref LL_HSEM_SEMAPHORE_24
489 * @arg @ref LL_HSEM_SEMAPHORE_25
490 * @arg @ref LL_HSEM_SEMAPHORE_26
491 * @arg @ref LL_HSEM_SEMAPHORE_27
492 * @arg @ref LL_HSEM_SEMAPHORE_28
493 * @arg @ref LL_HSEM_SEMAPHORE_29
494 * @arg @ref LL_HSEM_SEMAPHORE_30
495 * @arg @ref LL_HSEM_SEMAPHORE_31
496 * @arg @ref LL_HSEM_SEMAPHORE_ALL
497 * @retval None
498 */
499__STATIC_INLINE void LL_HSEM_EnableIT_C2IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
500{
501 SET_BIT(HSEMx->C2IER, SemaphoreMask);
502}
503
504/**
505 * @brief Disable interrupt.
506 * @rmtoll C2IER ISEM LL_HSEM_DisableIT_C2IER
507 * @param HSEMx HSEM Instance.
508 * @param SemaphoreMask This parameter can be a combination of the following values:
509 * @arg @ref LL_HSEM_SEMAPHORE_0
510 * @arg @ref LL_HSEM_SEMAPHORE_1
511 * @arg @ref LL_HSEM_SEMAPHORE_2
512 * @arg @ref LL_HSEM_SEMAPHORE_3
513 * @arg @ref LL_HSEM_SEMAPHORE_4
514 * @arg @ref LL_HSEM_SEMAPHORE_5
515 * @arg @ref LL_HSEM_SEMAPHORE_6
516 * @arg @ref LL_HSEM_SEMAPHORE_7
517 * @arg @ref LL_HSEM_SEMAPHORE_8
518 * @arg @ref LL_HSEM_SEMAPHORE_9
519 * @arg @ref LL_HSEM_SEMAPHORE_10
520 * @arg @ref LL_HSEM_SEMAPHORE_11
521 * @arg @ref LL_HSEM_SEMAPHORE_12
522 * @arg @ref LL_HSEM_SEMAPHORE_13
523 * @arg @ref LL_HSEM_SEMAPHORE_14
524 * @arg @ref LL_HSEM_SEMAPHORE_15
525 * @arg @ref LL_HSEM_SEMAPHORE_16
526 * @arg @ref LL_HSEM_SEMAPHORE_17
527 * @arg @ref LL_HSEM_SEMAPHORE_18
528 * @arg @ref LL_HSEM_SEMAPHORE_19
529 * @arg @ref LL_HSEM_SEMAPHORE_20
530 * @arg @ref LL_HSEM_SEMAPHORE_21
531 * @arg @ref LL_HSEM_SEMAPHORE_22
532 * @arg @ref LL_HSEM_SEMAPHORE_23
533 * @arg @ref LL_HSEM_SEMAPHORE_24
534 * @arg @ref LL_HSEM_SEMAPHORE_25
535 * @arg @ref LL_HSEM_SEMAPHORE_26
536 * @arg @ref LL_HSEM_SEMAPHORE_27
537 * @arg @ref LL_HSEM_SEMAPHORE_28
538 * @arg @ref LL_HSEM_SEMAPHORE_29
539 * @arg @ref LL_HSEM_SEMAPHORE_30
540 * @arg @ref LL_HSEM_SEMAPHORE_31
541 * @arg @ref LL_HSEM_SEMAPHORE_ALL
542 * @retval None
543 */
544__STATIC_INLINE void LL_HSEM_DisableIT_C2IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
545{
546 CLEAR_BIT(HSEMx->C2IER, SemaphoreMask);
547}
548
549/**
550 * @brief Check if interrupt is enabled.
551 * @rmtoll C2IER ISEM LL_HSEM_IsEnabledIT_C2IER
552 * @param HSEMx HSEM Instance.
553 * @param SemaphoreMask This parameter can be a combination of the following values:
554 * @arg @ref LL_HSEM_SEMAPHORE_0
555 * @arg @ref LL_HSEM_SEMAPHORE_1
556 * @arg @ref LL_HSEM_SEMAPHORE_2
557 * @arg @ref LL_HSEM_SEMAPHORE_3
558 * @arg @ref LL_HSEM_SEMAPHORE_4
559 * @arg @ref LL_HSEM_SEMAPHORE_5
560 * @arg @ref LL_HSEM_SEMAPHORE_6
561 * @arg @ref LL_HSEM_SEMAPHORE_7
562 * @arg @ref LL_HSEM_SEMAPHORE_8
563 * @arg @ref LL_HSEM_SEMAPHORE_9
564 * @arg @ref LL_HSEM_SEMAPHORE_10
565 * @arg @ref LL_HSEM_SEMAPHORE_11
566 * @arg @ref LL_HSEM_SEMAPHORE_12
567 * @arg @ref LL_HSEM_SEMAPHORE_13
568 * @arg @ref LL_HSEM_SEMAPHORE_14
569 * @arg @ref LL_HSEM_SEMAPHORE_15
570 * @arg @ref LL_HSEM_SEMAPHORE_16
571 * @arg @ref LL_HSEM_SEMAPHORE_17
572 * @arg @ref LL_HSEM_SEMAPHORE_18
573 * @arg @ref LL_HSEM_SEMAPHORE_19
574 * @arg @ref LL_HSEM_SEMAPHORE_20
575 * @arg @ref LL_HSEM_SEMAPHORE_21
576 * @arg @ref LL_HSEM_SEMAPHORE_22
577 * @arg @ref LL_HSEM_SEMAPHORE_23
578 * @arg @ref LL_HSEM_SEMAPHORE_24
579 * @arg @ref LL_HSEM_SEMAPHORE_25
580 * @arg @ref LL_HSEM_SEMAPHORE_26
581 * @arg @ref LL_HSEM_SEMAPHORE_27
582 * @arg @ref LL_HSEM_SEMAPHORE_28
583 * @arg @ref LL_HSEM_SEMAPHORE_29
584 * @arg @ref LL_HSEM_SEMAPHORE_30
585 * @arg @ref LL_HSEM_SEMAPHORE_31
586 * @arg @ref LL_HSEM_SEMAPHORE_ALL
587 * @retval State of bit (1 or 0).
588 */
589__STATIC_INLINE uint32_t LL_HSEM_IsEnabledIT_C2IER(const HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
590{
591 return ((READ_BIT(HSEMx->C2IER, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
592}
593#endif /* DUAL_CORE */
594
595/**
596 * @}
597 */
598
599/** @defgroup HSEM_LL_EF_FLAG_Management FLAG_Management
600 * @{
601 */
602
603/**
604 * @brief Clear interrupt status.
605 * @rmtoll C1ICR ISEM LL_HSEM_ClearFlag_C1ICR
606 * @param HSEMx HSEM Instance.
607 * @param SemaphoreMask This parameter can be a combination of the following values:
608 * @arg @ref LL_HSEM_SEMAPHORE_0
609 * @arg @ref LL_HSEM_SEMAPHORE_1
610 * @arg @ref LL_HSEM_SEMAPHORE_2
611 * @arg @ref LL_HSEM_SEMAPHORE_3
612 * @arg @ref LL_HSEM_SEMAPHORE_4
613 * @arg @ref LL_HSEM_SEMAPHORE_5
614 * @arg @ref LL_HSEM_SEMAPHORE_6
615 * @arg @ref LL_HSEM_SEMAPHORE_7
616 * @arg @ref LL_HSEM_SEMAPHORE_8
617 * @arg @ref LL_HSEM_SEMAPHORE_9
618 * @arg @ref LL_HSEM_SEMAPHORE_10
619 * @arg @ref LL_HSEM_SEMAPHORE_11
620 * @arg @ref LL_HSEM_SEMAPHORE_12
621 * @arg @ref LL_HSEM_SEMAPHORE_13
622 * @arg @ref LL_HSEM_SEMAPHORE_14
623 * @arg @ref LL_HSEM_SEMAPHORE_15
624 * @arg @ref LL_HSEM_SEMAPHORE_16
625 * @arg @ref LL_HSEM_SEMAPHORE_17
626 * @arg @ref LL_HSEM_SEMAPHORE_18
627 * @arg @ref LL_HSEM_SEMAPHORE_19
628 * @arg @ref LL_HSEM_SEMAPHORE_20
629 * @arg @ref LL_HSEM_SEMAPHORE_21
630 * @arg @ref LL_HSEM_SEMAPHORE_22
631 * @arg @ref LL_HSEM_SEMAPHORE_23
632 * @arg @ref LL_HSEM_SEMAPHORE_24
633 * @arg @ref LL_HSEM_SEMAPHORE_25
634 * @arg @ref LL_HSEM_SEMAPHORE_26
635 * @arg @ref LL_HSEM_SEMAPHORE_27
636 * @arg @ref LL_HSEM_SEMAPHORE_28
637 * @arg @ref LL_HSEM_SEMAPHORE_29
638 * @arg @ref LL_HSEM_SEMAPHORE_30
639 * @arg @ref LL_HSEM_SEMAPHORE_31
640 * @arg @ref LL_HSEM_SEMAPHORE_ALL
641 * @note Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
642 * depends on devices.
643 * @retval None
644 */
645__STATIC_INLINE void LL_HSEM_ClearFlag_C1ICR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
646{
647 WRITE_REG(HSEMx->C1ICR, SemaphoreMask);
648}
649
650/**
651 * @brief Get interrupt status from ISR register.
652 * @rmtoll C1ISR ISEM LL_HSEM_IsActiveFlag_C1ISR
653 * @param HSEMx HSEM Instance.
654 * @param SemaphoreMask This parameter can be a combination of the following values:
655 * @arg @ref LL_HSEM_SEMAPHORE_0
656 * @arg @ref LL_HSEM_SEMAPHORE_1
657 * @arg @ref LL_HSEM_SEMAPHORE_2
658 * @arg @ref LL_HSEM_SEMAPHORE_3
659 * @arg @ref LL_HSEM_SEMAPHORE_4
660 * @arg @ref LL_HSEM_SEMAPHORE_5
661 * @arg @ref LL_HSEM_SEMAPHORE_6
662 * @arg @ref LL_HSEM_SEMAPHORE_7
663 * @arg @ref LL_HSEM_SEMAPHORE_8
664 * @arg @ref LL_HSEM_SEMAPHORE_9
665 * @arg @ref LL_HSEM_SEMAPHORE_10
666 * @arg @ref LL_HSEM_SEMAPHORE_11
667 * @arg @ref LL_HSEM_SEMAPHORE_12
668 * @arg @ref LL_HSEM_SEMAPHORE_13
669 * @arg @ref LL_HSEM_SEMAPHORE_14
670 * @arg @ref LL_HSEM_SEMAPHORE_15
671 * @arg @ref LL_HSEM_SEMAPHORE_16
672 * @arg @ref LL_HSEM_SEMAPHORE_17
673 * @arg @ref LL_HSEM_SEMAPHORE_18
674 * @arg @ref LL_HSEM_SEMAPHORE_19
675 * @arg @ref LL_HSEM_SEMAPHORE_20
676 * @arg @ref LL_HSEM_SEMAPHORE_21
677 * @arg @ref LL_HSEM_SEMAPHORE_22
678 * @arg @ref LL_HSEM_SEMAPHORE_23
679 * @arg @ref LL_HSEM_SEMAPHORE_24
680 * @arg @ref LL_HSEM_SEMAPHORE_25
681 * @arg @ref LL_HSEM_SEMAPHORE_26
682 * @arg @ref LL_HSEM_SEMAPHORE_27
683 * @arg @ref LL_HSEM_SEMAPHORE_28
684 * @arg @ref LL_HSEM_SEMAPHORE_29
685 * @arg @ref LL_HSEM_SEMAPHORE_30
686 * @arg @ref LL_HSEM_SEMAPHORE_31
687 * @arg @ref LL_HSEM_SEMAPHORE_ALL
688 * @note Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
689 * depends on devices.
690 * @retval State of bit (1 or 0).
691 */
692__STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C1ISR(const HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
693{
694 return ((READ_BIT(HSEMx->C1ISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
695}
696
697/**
698 * @brief Get interrupt status from MISR register.
699 * @rmtoll C1MISR ISEM LL_HSEM_IsActiveFlag_C1MISR
700 * @param HSEMx HSEM Instance.
701 * @param SemaphoreMask This parameter can be a combination of the following values:
702 * @arg @ref LL_HSEM_SEMAPHORE_0
703 * @arg @ref LL_HSEM_SEMAPHORE_1
704 * @arg @ref LL_HSEM_SEMAPHORE_2
705 * @arg @ref LL_HSEM_SEMAPHORE_3
706 * @arg @ref LL_HSEM_SEMAPHORE_4
707 * @arg @ref LL_HSEM_SEMAPHORE_5
708 * @arg @ref LL_HSEM_SEMAPHORE_6
709 * @arg @ref LL_HSEM_SEMAPHORE_7
710 * @arg @ref LL_HSEM_SEMAPHORE_8
711 * @arg @ref LL_HSEM_SEMAPHORE_9
712 * @arg @ref LL_HSEM_SEMAPHORE_10
713 * @arg @ref LL_HSEM_SEMAPHORE_11
714 * @arg @ref LL_HSEM_SEMAPHORE_12
715 * @arg @ref LL_HSEM_SEMAPHORE_13
716 * @arg @ref LL_HSEM_SEMAPHORE_14
717 * @arg @ref LL_HSEM_SEMAPHORE_15
718 * @arg @ref LL_HSEM_SEMAPHORE_16
719 * @arg @ref LL_HSEM_SEMAPHORE_17
720 * @arg @ref LL_HSEM_SEMAPHORE_18
721 * @arg @ref LL_HSEM_SEMAPHORE_19
722 * @arg @ref LL_HSEM_SEMAPHORE_20
723 * @arg @ref LL_HSEM_SEMAPHORE_21
724 * @arg @ref LL_HSEM_SEMAPHORE_22
725 * @arg @ref LL_HSEM_SEMAPHORE_23
726 * @arg @ref LL_HSEM_SEMAPHORE_24
727 * @arg @ref LL_HSEM_SEMAPHORE_25
728 * @arg @ref LL_HSEM_SEMAPHORE_26
729 * @arg @ref LL_HSEM_SEMAPHORE_27
730 * @arg @ref LL_HSEM_SEMAPHORE_28
731 * @arg @ref LL_HSEM_SEMAPHORE_29
732 * @arg @ref LL_HSEM_SEMAPHORE_30
733 * @arg @ref LL_HSEM_SEMAPHORE_31
734 * @arg @ref LL_HSEM_SEMAPHORE_ALL
735 * @note Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
736 * depends on devices.
737 * @retval State of bit (1 or 0).
738 */
739__STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C1MISR(const HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
740{
741 return ((READ_BIT(HSEMx->C1MISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
742}
743
744#if defined(DUAL_CORE)
745/**
746 * @brief Clear interrupt status.
747 * @rmtoll C2ICR ISEM LL_HSEM_ClearFlag_C2ICR
748 * @param HSEMx HSEM Instance.
749 * @param SemaphoreMask This parameter can be a combination of the following values:
750 * @arg @ref LL_HSEM_SEMAPHORE_0
751 * @arg @ref LL_HSEM_SEMAPHORE_1
752 * @arg @ref LL_HSEM_SEMAPHORE_2
753 * @arg @ref LL_HSEM_SEMAPHORE_3
754 * @arg @ref LL_HSEM_SEMAPHORE_4
755 * @arg @ref LL_HSEM_SEMAPHORE_5
756 * @arg @ref LL_HSEM_SEMAPHORE_6
757 * @arg @ref LL_HSEM_SEMAPHORE_7
758 * @arg @ref LL_HSEM_SEMAPHORE_8
759 * @arg @ref LL_HSEM_SEMAPHORE_9
760 * @arg @ref LL_HSEM_SEMAPHORE_10
761 * @arg @ref LL_HSEM_SEMAPHORE_11
762 * @arg @ref LL_HSEM_SEMAPHORE_12
763 * @arg @ref LL_HSEM_SEMAPHORE_13
764 * @arg @ref LL_HSEM_SEMAPHORE_14
765 * @arg @ref LL_HSEM_SEMAPHORE_15
766 * @arg @ref LL_HSEM_SEMAPHORE_16
767 * @arg @ref LL_HSEM_SEMAPHORE_17
768 * @arg @ref LL_HSEM_SEMAPHORE_18
769 * @arg @ref LL_HSEM_SEMAPHORE_19
770 * @arg @ref LL_HSEM_SEMAPHORE_20
771 * @arg @ref LL_HSEM_SEMAPHORE_21
772 * @arg @ref LL_HSEM_SEMAPHORE_22
773 * @arg @ref LL_HSEM_SEMAPHORE_23
774 * @arg @ref LL_HSEM_SEMAPHORE_24
775 * @arg @ref LL_HSEM_SEMAPHORE_25
776 * @arg @ref LL_HSEM_SEMAPHORE_26
777 * @arg @ref LL_HSEM_SEMAPHORE_27
778 * @arg @ref LL_HSEM_SEMAPHORE_28
779 * @arg @ref LL_HSEM_SEMAPHORE_29
780 * @arg @ref LL_HSEM_SEMAPHORE_30
781 * @arg @ref LL_HSEM_SEMAPHORE_31
782 * @arg @ref LL_HSEM_SEMAPHORE_ALL
783 * @retval None
784 */
785__STATIC_INLINE void LL_HSEM_ClearFlag_C2ICR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
786{
787 WRITE_REG(HSEMx->C2ICR, SemaphoreMask);
788}
789
790/**
791 * @brief Get interrupt status from ISR register.
792 * @rmtoll C2ISR ISEM LL_HSEM_IsActiveFlag_C2ISR
793 * @param HSEMx HSEM Instance.
794 * @param SemaphoreMask This parameter can be a combination of the following values:
795 * @arg @ref LL_HSEM_SEMAPHORE_0
796 * @arg @ref LL_HSEM_SEMAPHORE_1
797 * @arg @ref LL_HSEM_SEMAPHORE_2
798 * @arg @ref LL_HSEM_SEMAPHORE_3
799 * @arg @ref LL_HSEM_SEMAPHORE_4
800 * @arg @ref LL_HSEM_SEMAPHORE_5
801 * @arg @ref LL_HSEM_SEMAPHORE_6
802 * @arg @ref LL_HSEM_SEMAPHORE_7
803 * @arg @ref LL_HSEM_SEMAPHORE_8
804 * @arg @ref LL_HSEM_SEMAPHORE_9
805 * @arg @ref LL_HSEM_SEMAPHORE_10
806 * @arg @ref LL_HSEM_SEMAPHORE_11
807 * @arg @ref LL_HSEM_SEMAPHORE_12
808 * @arg @ref LL_HSEM_SEMAPHORE_13
809 * @arg @ref LL_HSEM_SEMAPHORE_14
810 * @arg @ref LL_HSEM_SEMAPHORE_15
811 * @arg @ref LL_HSEM_SEMAPHORE_16
812 * @arg @ref LL_HSEM_SEMAPHORE_17
813 * @arg @ref LL_HSEM_SEMAPHORE_18
814 * @arg @ref LL_HSEM_SEMAPHORE_19
815 * @arg @ref LL_HSEM_SEMAPHORE_20
816 * @arg @ref LL_HSEM_SEMAPHORE_21
817 * @arg @ref LL_HSEM_SEMAPHORE_22
818 * @arg @ref LL_HSEM_SEMAPHORE_23
819 * @arg @ref LL_HSEM_SEMAPHORE_24
820 * @arg @ref LL_HSEM_SEMAPHORE_25
821 * @arg @ref LL_HSEM_SEMAPHORE_26
822 * @arg @ref LL_HSEM_SEMAPHORE_27
823 * @arg @ref LL_HSEM_SEMAPHORE_28
824 * @arg @ref LL_HSEM_SEMAPHORE_29
825 * @arg @ref LL_HSEM_SEMAPHORE_30
826 * @arg @ref LL_HSEM_SEMAPHORE_31
827 * @arg @ref LL_HSEM_SEMAPHORE_ALL
828 * @retval State of bit (1 or 0).
829 */
830__STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C2ISR(const HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
831{
832 return ((READ_BIT(HSEMx->C2ISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
833}
834
835/**
836 * @brief Get interrupt status from MISR register.
837 * @rmtoll C2MISR ISEM LL_HSEM_IsActiveFlag_C2MISR
838 * @param HSEMx HSEM Instance.
839 * @param SemaphoreMask This parameter can be a combination of the following values:
840 * @arg @ref LL_HSEM_SEMAPHORE_0
841 * @arg @ref LL_HSEM_SEMAPHORE_1
842 * @arg @ref LL_HSEM_SEMAPHORE_2
843 * @arg @ref LL_HSEM_SEMAPHORE_3
844 * @arg @ref LL_HSEM_SEMAPHORE_4
845 * @arg @ref LL_HSEM_SEMAPHORE_5
846 * @arg @ref LL_HSEM_SEMAPHORE_6
847 * @arg @ref LL_HSEM_SEMAPHORE_7
848 * @arg @ref LL_HSEM_SEMAPHORE_8
849 * @arg @ref LL_HSEM_SEMAPHORE_9
850 * @arg @ref LL_HSEM_SEMAPHORE_10
851 * @arg @ref LL_HSEM_SEMAPHORE_11
852 * @arg @ref LL_HSEM_SEMAPHORE_12
853 * @arg @ref LL_HSEM_SEMAPHORE_13
854 * @arg @ref LL_HSEM_SEMAPHORE_14
855 * @arg @ref LL_HSEM_SEMAPHORE_15
856 * @arg @ref LL_HSEM_SEMAPHORE_16
857 * @arg @ref LL_HSEM_SEMAPHORE_17
858 * @arg @ref LL_HSEM_SEMAPHORE_18
859 * @arg @ref LL_HSEM_SEMAPHORE_19
860 * @arg @ref LL_HSEM_SEMAPHORE_20
861 * @arg @ref LL_HSEM_SEMAPHORE_21
862 * @arg @ref LL_HSEM_SEMAPHORE_22
863 * @arg @ref LL_HSEM_SEMAPHORE_23
864 * @arg @ref LL_HSEM_SEMAPHORE_24
865 * @arg @ref LL_HSEM_SEMAPHORE_25
866 * @arg @ref LL_HSEM_SEMAPHORE_26
867 * @arg @ref LL_HSEM_SEMAPHORE_27
868 * @arg @ref LL_HSEM_SEMAPHORE_28
869 * @arg @ref LL_HSEM_SEMAPHORE_29
870 * @arg @ref LL_HSEM_SEMAPHORE_30
871 * @arg @ref LL_HSEM_SEMAPHORE_31
872 * @arg @ref LL_HSEM_SEMAPHORE_ALL
873 * @retval State of bit (1 or 0).
874 */
875__STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C2MISR(const HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
876{
877 return ((READ_BIT(HSEMx->C2MISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
878}
879#endif /* DUAL_CORE */
880/**
881 * @}
882 */
883
884/**
885 * @}
886 */
887
888/**
889 * @}
890 */
891
892#endif /* defined(HSEM) */
893
894/**
895 * @}
896 */
897
898#ifdef __cplusplus
899}
900#endif
901
902#endif /* __STM32H7xx_LL_HSEM_H */
#define __STATIC_INLINE
Definition cmsis_armcc.h:64
static gnss_core_t core
Definition gnss_task.c:12
#define CLEAR_BIT(REG, BIT)
Definition stm32h7xx.h:209
#define SET_BIT(REG, BIT)
Definition stm32h7xx.h:207
#define WRITE_REG(REG, VAL)
Definition stm32h7xx.h:215
#define READ_BIT(REG, BIT)
Definition stm32h7xx.h:211
#define HSEM_R_PROCID_Msk
0x000000FF
#define HSEM_RLR_LOCK
Lock indication.
#define HSEM_R_COREID_Msk
0x0000FF00
#define HSEM_CR_KEY_Pos
#define HSEM_KEYR_KEY_Pos
#define HSEM_KEYR_KEY
semaphores clear key.
#define HSEM_R_LOCK
Lock indication.
#define HSEM_R_LOCK_Msk
0x80000000
CMSIS STM32H7xx Device Peripheral Access Layer Header File.
HW Semaphore HSEM.
__IO uint32_t KEYR
HSEM Semaphore clear key register , Address offset: 144h.
__IO uint32_t C1ISR
HSEM Interrupt Status register , Address offset: 108h.
__IO uint32_t C1IER
HSEM Interrupt enable register , Address offset: 100h.
__IO uint32_t C1MISR
HSEM Interrupt Masked Status register , Address offset: 10Ch.
__IO uint32_t CR
HSEM Semaphore clear register , Address offset: 140h.
__IO uint32_t R[32]
2-step write lock and read back registers, Address offset: 00h-7Ch
__IO uint32_t C1ICR
HSEM Interrupt clear register , Address offset: 104h.
__IO uint32_t RLR[32]
1-step read lock registers, Address offset: 80h-FCh