PendSV target secure state


As we know, PendSV can be used for context switching, for example in RTOS and software in non-secure state typicall trigger the non-secure PendSV handler.

However, whether we can make the RTOS triggers the secure PendSV handler to process some logics regarding to security purposes and then return to non-secure PendSV handler to process the normal context switching?


  • Hi Jiameng,

    As per Armv8-M architecture, PendSV exception is banked between security states.

    A secure software can program AIRCR.PRIS bit such that non-secure exceptions are forcibly made to have lower priority than the lowest priority secure exception. Hence a secure exception always gets triggered before non-secure exception when pended.



  • The Nested Vectored Interrupt Controller (NVIC) dialog (for ARMv8 architecture) shows the status of all exceptions, including exceptions that have Secure (S) and Non-secure (NS) states. For example, SYSTICK (S) and SYSTICK (NS). For each exception, the dialog shows the number, source, name, state, and priority.  >>  MyBalanceNow

  • Hello...,

    To set up a SAU region the following procedure happens:

    1. SAU_RNR (0xE000EDD8, Region Number Register): Write the selected region number into SAU_RNR.
    2. SAU_RBAR (0xE000EDDC, Region Base Address Register): Write the base address of the region selected in SAU_RNR into SAU_RBAR
    3. SAU_RLAR (0xE000EDE0, Region Limit Address Register): Write the highest address of the region selected in SAU_RNR into SAU_RBAR. To mark a region as non-secure callable write 1 in bit[1] from SAU_RLAR. 0 indicates that the region is non-secure.