So I’m getting a “prefetch abort” exception on our arm9 system. This system does not have an MMU, so is there anyway this could be a software problem? All the registers seem correct to me, and the code looks right (not corrupted) from the JTAG point of view.
Right now I’m thinking this is some kind of hardware issue (although I hate to say it – the hardware has been fine until now).
What exactly is the exception you’re getting?
Last time this happened to me, I went up the wrong creek for a while because I didn’t realize an ARM “prefetch abort” meant the instruction prefetch, not data prefetch, and I’d just been playing with data prefetch instructions. It simply means that the program has attempted to jump to a memory location that doesn’t exist. (The actual problem was that I’d mistyped “go 81000000” as “go 81000” in the bootloader.)
See also: