This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to change CM33 State from secure to non-secure

Dear All,

Please help me to change the cpu state from secure to non-secure hust after starting in reset handler itself.

Is there any way to change its state to the non-secure region.

  • From the docs:

    C2.4.25 BLX, BLXNS
    Branch with Link and Exchange (Non-secure). Branch with Link and Exchange calls a subroutine at an address,
    with the address and instruction set specified by a register. Bit[0] complies with the Arm architecture interworking
    rules for switching between the A32 and T32 instruction sets. However, Armv8-M only supports the T32 instruction
    set, so bit[0] must be 1. If bit[0] is 0 the PE takes an INVSTATE UsageFault exception on the instruction at the
    target address.
    Branch with Link and Exchange Non-secure calls a subroutine at an address specified by a register, and if bit[0] of
    the target address is 0 then the instruction causes a transition from Secure to Non-secure state. This variant of the
    instruction must only be used when the additional steps required to make such a transition safe have been taken.