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

Supervisor Mode vs Users Mode

First of all I'm using STR735

The start-up code enters the Supervisor Mode, sets up the stack pointer followed by the User Mode seting up the stack pointer; then jumps to main.

Im my application I need to disable interrupts during critical memcpy's and also during Maxim 1-wire communication. This is a lengthy process in user mode but quit straight forward in supervisor mode.

My question is WHY the start-up code is entering user mode for my single user embedded processor? If I comment out switching to User Mode, what issues would I encounter? I am not using any OS.

Barry

Parents
  • Declare your critical functions as __swi functions. They execute in supervisor mode and can not be interrupted by an IRQ interrupt. You need to add a SWI.s handler to your project.

    See the SWI example located under: \Keil\ARM\Examples\SWI folder.

    Franc

Reply
  • Declare your critical functions as __swi functions. They execute in supervisor mode and can not be interrupted by an IRQ interrupt. You need to add a SWI.s handler to your project.

    See the SWI example located under: \Keil\ARM\Examples\SWI folder.

    Franc

Children
No data