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
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