CMSIS-Core (Cortex-M): NVIC Functions

| CMSIS-Core (Cortex-M) Version 5.4.0 CMSIS-Core support for Cortex-M processor-based devices

- Main Page
- Usage and Description
- Reference

All Data Structures Files Functions Variables Enumerations Enumerator Groups Pages
Functions
NVIC Functions
TrustZone for Armv8-M/v8.1-M

Nested Vector Interrupt Controller (NVIC) functions related to TrustZone for Armv8-M. More...

## Functions

void | TZ_NVIC_SetPriorityGrouping_NS (uint32_t PriorityGroup)
| Set Priority Grouping (non-secure) More...
uint32_t | TZ_NVIC_GetPriorityGrouping_NS (void)
| Get Priority Grouping (non-secure) More...
void | TZ_NVIC_EnableIRQ_NS (IRQn_Type IRQn)
| Enable External Interrupt (non-secure) More...
uint32_t | TZ_NVIC_GetEnableIRQ_NS (IRQn_Type IRQn)
| Get Interrupt Enable status (non-secure) More...
void | TZ_NVIC_DisableIRQ_NS (IRQn_Type IRQn)
| Disable External Interrupt (non-secure) More...
uint32_t | TZ_NVIC_GetPendingIRQ_NS (IRQn_Type IRQn)
| Get Pending Interrupt (non-secure) More...
void | TZ_NVIC_SetPendingIRQ_NS (IRQn_Type IRQn)
| Set Pending Interrupt (non-secure) More...
void | TZ_NVIC_ClearPendingIRQ_NS (IRQn_Type IRQn)
| Clear Pending Interrupt (non-secure) More...
uint32_t | TZ_NVIC_GetActive_NS (IRQn_Type IRQn)
| Get Active Interrupt (non-secure) More...
void | TZ_NVIC_SetPriority_NS (IRQn_Type IRQn, uint32_t priority)
| Set Interrupt Priority (non-secure) More...
uint32_t | TZ_NVIC_GetPriority_NS (IRQn_Type IRQn)
| Get Interrupt Priority (non-secure) More...

## Description

Nested Vector Interrupt Controller (NVIC) functions related to TrustZone for Armv8-M.

## Function Documentation

void TZ_NVIC_ClearPendingIRQ_NS | ( | IRQn_Type | IRQn | ) |

Clear Pending Interrupt (non-secure)

Clears the pending bit of an non-secure external interrupt when in secure state.

Parameters

  [in] | IRQn | External interrupt number. Value cannot be negative.

See Also
  - NVIC_ClearPendingIRQ

void TZ_NVIC_DisableIRQ_NS | ( | IRQn_Type | IRQn | ) |

Disable External Interrupt (non-secure)

Disables a device-specific interrupt in the non-secure NVIC when in secure state.

Parameters

  [in] | IRQn | External interrupt number. Value cannot be negative.

See Also
  - NVIC_DisableIRQ

void TZ_NVIC_EnableIRQ_NS | ( | IRQn_Type | IRQn | ) |

Enable External Interrupt (non-secure)

Enables a device-specific interrupt in the non-secure NVIC when in secure state.

Parameters

  [in] | IRQn | External interrupt number. Value cannot be negative.

See Also
  - NVIC_EnableIRQ

uint32_t TZ_NVIC_GetActive_NS | ( | IRQn_Type | IRQn | ) |

Get Active Interrupt (non-secure)

Reads the active register in non-secure NVIC when in secure state and returns the active bit.

Parameters

  [in] | IRQn | Interrupt number.

Returns
  0 Interrupt status is not active.
  1 Interrupt status is active.

See Also
  - NVIC_GetActive

uint32_t TZ_NVIC_GetEnableIRQ_NS | ( | IRQn_Type | IRQn | ) |

Get Interrupt Enable status (non-secure)

Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state.

Parameters

  [in] | IRQn | Interrupt number.

Returns
  0 Interrupt is not enabled.
  1 Interrupt is enabled.

See Also
  - NVIC_EnableIRQ; NVIC_DisableIRQ;

uint32_t TZ_NVIC_GetPendingIRQ_NS | ( | IRQn_Type | IRQn | ) |

Get Pending Interrupt (non-secure)

Reads the pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified interrupt.

Parameters

  [in] | IRQn | Interrupt number.

Returns
  0 Interrupt status is not pending.
  1 Interrupt status is pending.

See Also
  - NVIC_GetPendingIRQ

uint32_t TZ_NVIC_GetPriority_NS | ( | IRQn_Type | IRQn | ) |

Get Interrupt Priority (non-secure)

Reads the priority of an non-secure interrupt when in secure state. The interrupt number can be positive to specify an external (device specific) interrupt, or negative to specify an internal (core) interrupt.

Parameters

  [in] | IRQn | Interrupt number.

Returns
  Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller.

See Also
  - NVIC_GetPriority

uint32_t TZ_NVIC_GetPriorityGrouping_NS | ( | void |  | ) |

Get Priority Grouping (non-secure)

Reads the priority grouping field from the non-secure NVIC when in secure state.

Returns
  Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).

Note
  Only available for Armv8-M Mainline.

See Also
  - NVIC_GetPriorityGrouping

void TZ_NVIC_SetPendingIRQ_NS | ( | IRQn_Type | IRQn | ) |

Set Pending Interrupt (non-secure)

Sets the pending bit of an non-secure external interrupt when in secure state.

Parameters

  [in] | IRQn | Interrupt number. Value cannot be negative.

See Also
  - NVIC_SetPendingIRQ

void TZ_NVIC_SetPriority_NS | ( | IRQn_Type | IRQn,
|  | uint32_t | priority
| ) |  |

Set Interrupt Priority (non-secure)

Sets the priority of an non-secure interrupt when in secure state.

Note
  The priority cannot be set for every core interrupt.

Parameters

  [in] | IRQn | Interrupt number.
  [in] | priority | Priority to set.

See Also
  - NVIC_SetPriority

void TZ_NVIC_SetPriorityGrouping_NS | ( | uint32_t | PriorityGroup | ) |

Set Priority Grouping (non-secure)

Sets the non-secure priority grouping field when in secure state using the required unlock sequence. The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.

Parameters

  [in] | PriorityGroup | Priority grouping field.

Note
  Only available for Armv8-M Mainline.

See Also
  - NVIC_SetPriorityGrouping