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

Differences between Privilege Modes and Non-Privilege Mode ?

Hi everyone ,

I'm currently using a Cortex-A9 processor (NXP Freescale i.MX6S).

My project is to develop a simple OS, but I met a problem:   

When I am trying to control some peripherals (such as UART and GPIO) directly under ARM USER MODE, the program stopped and jumped into some other exceptional handlers.

However, if I control these peripherals under ARM SYSTEM MODE, everything is fine.

I know that there are 7 ARM modes, USER mode is the non-privilege mode and the others are privilege modes. USER mode is redistricted in accessing some resources, but I didn't find out any document explain these restrictions explicitly.

Could you give me some advises? Very Appreciate it !!!

Parents
  • There are restrictions in terms of control register accesses, but there's no specific restriction in terms of memory mapped peripheral access; it all depends on the permissions you have set in your page tables.

    The fault address and fault status registers should be able to give you a good clue what is going wrong.

    More info here: ARM Information Center

    Cheers,
    Pete

Reply
  • There are restrictions in terms of control register accesses, but there's no specific restriction in terms of memory mapped peripheral access; it all depends on the permissions you have set in your page tables.

    The fault address and fault status registers should be able to give you a good clue what is going wrong.

    More info here: ARM Information Center

    Cheers,
    Pete

Children