We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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