I was working on a code to setup ARM MMU. I work using fast models.
I put some dummy values in the VTTBR register and I got a data abort.
I have seen this post How to handle this Data Abort exception in ARM 7? mode in CPSR 0x17 and board stucked at 0x10 and I tried to look at the link register.
From there I found that the abort happened with this instruction: MOVT r3,#0x8400
.
But before this already a move has happened like MOV r3,#0x9240
. I am quite perplexed about what went wrong with the second move. I want to know precisely which type of data abort happened out of the four types possible (1.alignment faults 2.translation faults 3.domain faults 4.permission faults.).
My code goes like this
840000A4 : MOV r3,#0x9240
840000A8 : MOVT r3,#0x8400
I know that MOVT moves values in to upper(top) half word without affecting the bottom half word.
My LR
contains 840000A8
.