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 !!!
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
Thank you very much Peter and Martin!
So I should look into the MMU configuration for page tables, am I right?
View all questions in Cortex-A / A-Profile forum