STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_cortex.c
Go to the documentation of this file.
1 
100 /* Includes ------------------------------------------------------------------*/
101 #include "stm32f7xx_hal.h"
102 
112 #ifdef HAL_CORTEX_MODULE_ENABLED
113 
114 /* Private types -------------------------------------------------------------*/
115 /* Private variables ---------------------------------------------------------*/
116 /* Private constants ---------------------------------------------------------*/
117 /* Private macros ------------------------------------------------------------*/
118 /* Private functions ---------------------------------------------------------*/
119 /* Exported functions --------------------------------------------------------*/
120 
161 void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
162 {
163  /* Check the parameters */
164  assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup));
165 
166  /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */
167  NVIC_SetPriorityGrouping(PriorityGroup);
168 }
169 
183 void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
184 {
185  uint32_t prioritygroup = 0x00;
186 
187  /* Check the parameters */
188  assert_param(IS_NVIC_SUB_PRIORITY(SubPriority));
189  assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
190 
191  prioritygroup = NVIC_GetPriorityGrouping();
192 
193  NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
194 }
195 
205 void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
206 {
207  /* Check the parameters */
209 
210  /* Enable interrupt */
211  NVIC_EnableIRQ(IRQn);
212 }
213 
222 {
223  /* Check the parameters */
225 
226  /* Disable interrupt */
227  NVIC_DisableIRQ(IRQn);
228 }
229 
234 void HAL_NVIC_SystemReset(void)
235 {
236  /* System Reset */
238 }
239 
247 uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
248 {
249  return SysTick_Config(TicksNumb);
250 }
271 #if (__MPU_PRESENT == 1)
272 
278 void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init)
279 {
280  /* Check the parameters */
281  assert_param(IS_MPU_REGION_NUMBER(MPU_Init->Number));
282  assert_param(IS_MPU_REGION_ENABLE(MPU_Init->Enable));
283 
284  /* Set the Region number */
285  MPU->RNR = MPU_Init->Number;
286 
287  if ((MPU_Init->Enable) != RESET)
288  {
289  /* Check the parameters */
290  assert_param(IS_MPU_INSTRUCTION_ACCESS(MPU_Init->DisableExec));
291  assert_param(IS_MPU_REGION_PERMISSION_ATTRIBUTE(MPU_Init->AccessPermission));
292  assert_param(IS_MPU_TEX_LEVEL(MPU_Init->TypeExtField));
293  assert_param(IS_MPU_ACCESS_SHAREABLE(MPU_Init->IsShareable));
294  assert_param(IS_MPU_ACCESS_CACHEABLE(MPU_Init->IsCacheable));
295  assert_param(IS_MPU_ACCESS_BUFFERABLE(MPU_Init->IsBufferable));
296  assert_param(IS_MPU_SUB_REGION_DISABLE(MPU_Init->SubRegionDisable));
297  assert_param(IS_MPU_REGION_SIZE(MPU_Init->Size));
298 
299  MPU->RBAR = MPU_Init->BaseAddress;
300  MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) |
301  ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) |
302  ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos) |
303  ((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) |
304  ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) |
305  ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos) |
306  ((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) |
307  ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) |
308  ((uint32_t)MPU_Init->Enable << MPU_RASR_ENABLE_Pos);
309  }
310  else
311  {
312  MPU->RBAR = 0x00;
313  MPU->RASR = 0x00;
314  }
315 }
316 #endif /* __MPU_PRESENT */
317 
322 uint32_t HAL_NVIC_GetPriorityGrouping(void)
323 {
324  /* Get the PRIGROUP[10:8] field value */
325  return NVIC_GetPriorityGrouping();
326 }
327 
349 void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t *pPreemptPriority, uint32_t *pSubPriority)
350 {
351  /* Check the parameters */
352  assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup));
353  /* Get priority for Cortex-M system or device specific interrupts */
354  NVIC_DecodePriority(NVIC_GetPriority(IRQn), PriorityGroup, pPreemptPriority, pSubPriority);
355 }
356 
365 {
366  /* Check the parameters */
368 
369  /* Set interrupt pending */
370  NVIC_SetPendingIRQ(IRQn);
371 }
372 
382 uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn)
383 {
384  /* Check the parameters */
386 
387  /* Return 1 if pending else 0 */
388  return NVIC_GetPendingIRQ(IRQn);
389 }
390 
399 {
400  /* Check the parameters */
402 
403  /* Clear pending interrupt */
404  NVIC_ClearPendingIRQ(IRQn);
405 }
406 
415 uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn)
416 {
417  /* Check the parameters */
419 
420  /* Return 1 if active else 0 */
421  return NVIC_GetActive(IRQn);
422 }
423 
432 void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource)
433 {
434  /* Check the parameters */
436  if (CLKSource == SYSTICK_CLKSOURCE_HCLK)
437  {
439  }
440  else
441  {
443  }
444 }
445 
450 void HAL_SYSTICK_IRQHandler(void)
451 {
453 }
454 
459 __weak void HAL_SYSTICK_Callback(void)
460 {
461  /* NOTE : This function Should not be modified, when the callback is needed,
462  the HAL_SYSTICK_Callback could be implemented in the user file
463  */
464 }
465 
474 #endif /* HAL_CORTEX_MODULE_ENABLED */
475 
483 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
Get Pending Interrupt.
Definition: core_cm0.h:653
__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
Set Pending Interrupt.
Definition: core_cm0.h:664
#define assert_param(expr)
Include module&#39;s header file.
void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn)
__STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void)
Get Priority Grouping.
Definition: core_cm3.h:1441
#define IS_NVIC_DEVICE_IRQ(IRQ)
#define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY)
#define SysTick
Definition: core_cm0.h:588
void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn)
uint32_t HAL_NVIC_GetPriorityGrouping(void)
uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn)
#define IS_SYSTICK_CLK_SOURCE(SOURCE)
__STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t PriorityGroup, uint32_t *const pPreemptPriority, uint32_t *const pSubPriority)
Decode Priority.
Definition: core_cm3.h:1598
uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t *pPreemptPriority, uint32_t *pSubPriority)
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
Enable External Interrupt.
Definition: core_cm0.h:629
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
This file contains all the functions prototypes for the HAL module driver.
IRQn_Type
STM32F7xx Interrupt Number Definition, according to the selected device in Library_configuration_sect...
Definition: stm32f745xx.h:67
__STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
Set Priority Grouping.
Definition: core_cm3.h:1422
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
System Tick Configuration.
Definition: core_cm0.h:769
__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
Get Interrupt Priority.
Definition: core_cm0.h:712
void HAL_SYSTICK_Callback(void)
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
Set Interrupt Priority.
Definition: core_cm0.h:688
void HAL_SYSTICK_IRQHandler(void)
__STATIC_INLINE void NVIC_SystemReset(void)
System Reset.
Definition: core_cm0.h:730
#define IS_NVIC_SUB_PRIORITY(PRIORITY)
__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
Disable External Interrupt.
Definition: core_cm0.h:640
#define IS_NVIC_PRIORITY_GROUP(GROUP)
void HAL_NVIC_SystemReset(void)
void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource)
uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn)
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
Clear Pending Interrupt.
Definition: core_cm0.h:675
__STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
Encode Priority.
Definition: core_cm3.h:1571
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
Get Active Interrupt.
Definition: core_cm3.h:1511
#define SYSTICK_CLKSOURCE_HCLK