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

updating CPSR in USER UNPRIVILEGED mode

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?

Parents
  • i know and hope this will work. but since i am new to ARM , and i want to check for learning and debugging also.  i want to be sure at the initial stage.

    so by this discussion i came to know that  debugging mode is not constraint to priviliged or unpriviliged modes.

Reply
  • i know and hope this will work. but since i am new to ARM , and i want to check for learning and debugging also.  i want to be sure at the initial stage.

    so by this discussion i came to know that  debugging mode is not constraint to priviliged or unpriviliged modes.

Children
  • I understand. However, I can assure you that you do not need to check things like this. Where a certain feature or behavior is mandated by the architecture, it is absolutely guaranteed to work the way it is described in the Architecture Reference Manual.

    Good luck with your investigations. Let us know if there is any otherway we can help.

    Chris

  • Well to quote HMS Pinafore: And I'm never, never sick at sea! Chorus. What, never? Captain. No, never! Chorus. What, never? Captain. Hardly ever! Chorus. He's hardly ever sick at sea!

    But yes it is simply not worth worrying about hardware errata though it is a good idea to read the  notices occasionally. If you do have the  misfortune to come across one of these you'll probably pull your hair out investigating everything else first - and quite rightly too. They tend to involve some very obscure combination of circumstance such that any change like for instance sticking in a trace message which changes the alignment in a cache line makes it disappear.