Arm Community
Site
Search
User
Site
Search
User
Support forums
Arm Development Studio forum
Prefetch Abort due to unaligned PC.
Locked
Locked
Replies
9 replies
Subscribers
119 subscribers
Views
6960 views
Users
0 members are here
Options
Share
More actions
Related
How was your experience today?
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
Prefetch Abort due to unaligned PC.
Nikhil Girdhar
over 12 years ago
Note: This was originally posted on 22nd August 2011 at
http://forums.arm.com
Hi,
I am working on ARM1136 processor in Thumb mode.
Problem
I am getting a prefetch abort while executing an instruction. Program Counter at this instant is odd.
Description
My source code has few instructions as below...
....
[color=#FF0000] [/color]bx lr [color=#FF0000] [/color];lr = 0xB76B2A39 i.e. some odd value
After executing this instruction the code jumps to the location 0xB76B2A38 (pc = lr & 0xFFFFFFFE) which has the instruction as below
Address 0xB76B2A38: [color=#FF0000] [/color]ldr r0, #0xB76B5DAC [color=#FF0000] [/color];prefetch abort.
The above instruction generates a prefetch abort as the pc value is odd 0xB76B2A39.
BX Instruction description
BX Rm instruction ensures that the location that you jump to is half a word aligned. i.e. pc = lr & 0xFFFFFFE
ARM thumb mode requires that pc should always be half a word aligned.
In this case pc alignment (to be done by the processor) did not take place.
How can I figure out whether the processor is goofing up or there is some software issue?
Thank you.
Nikhil.
0
Quote