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.
as we know supervisor mode is priviliged and user is not. at reset time in debugging mode, i read the cpsr it is 0x1d3 means in supervisor mode, so i can change CPSR so i changed it to 0x1d0 which is user mode, since user mode is unpriviliged so i must not able to modify CPSR, but when i again write it to 0x1d3, i updates. why is it so?
You have to execute an instruction which does what you want to check. So in your test you need to try and execute an MSR instruction to change CPSR from user mode to set supervisor mode and you should find it doesn't do it. If you want to be absolutely certain the result has nothing to do with debug state just set up a program with an MRS after the MSR and print the value out.