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

why do we need two priviledged modes? cant one do the thing in cortex m3

we have two modes which are privileged in ARM cortex M3 .they are Thread privileged  and handler mode .

if there is already one privileged mode then why we need the other mode? i mean cant we do work with only one privileged mode?

is there any difference between Thread Privileged and handler mode?(i know that cortex m3 executes ISR in handler mode what are the other differences)

are there things which thread privileged mode cannot access and handler mode can access?

Parents
  • Hi  srikar,

    have you already read "A2.3.4 Privileged execution" section of ARMARM of ARMv7-M?

    It is important to divide the execution modes into Thread and Handler from a security aspect.
    Applications are assumed in Thread mode and interrupts or exceptions handling are assumed in Handler mode.
    In some use cases, the unpriviledge mode is not used.
    Therefore, there are the priviledged Thread and the the priviledged Handler modes.
    Also, in Thread mode, the PSP (or SP_process) is basically used as the current stack pointer.
    In the Handler mode, the MSP (or SP_main) is always used as the current stack pointer.
    By default, the MSP is used even in Thread mode.


    Best regards,
    Yasuhiko Koumoto.

Reply
  • Hi  srikar,

    have you already read "A2.3.4 Privileged execution" section of ARMARM of ARMv7-M?

    It is important to divide the execution modes into Thread and Handler from a security aspect.
    Applications are assumed in Thread mode and interrupts or exceptions handling are assumed in Handler mode.
    In some use cases, the unpriviledge mode is not used.
    Therefore, there are the priviledged Thread and the the priviledged Handler modes.
    Also, in Thread mode, the PSP (or SP_process) is basically used as the current stack pointer.
    In the Handler mode, the MSP (or SP_main) is always used as the current stack pointer.
    By default, the MSP is used even in Thread mode.


    Best regards,
    Yasuhiko Koumoto.

Children
No data