Are there any notorious or common causes for the prefetch abort that I should be aware of in programming for my LPC2103? I’ve got a simple program that blinks an LED in a busy wait loop, and uses an interrupt to service UART0 with a simple routine that just echoes characters back on the terminal. I can run it fine, but after a few interrupt cycles, I get a prefetch abort and I have to reset the program to get it to work again.
-
Is there a subtle reason that my prefetch abort might be happening (If I’m relatively certain I’m not jumping off into the weeds in my program)
-
Where should I look in memory to begin to trace this problem back to its root cause (I’m relatively new to the ARM architecture)
Cheers!
-R
It could be a stack overflow or corruption among many other things.
I think I can pretty well rule out a stack overflow. (Though I suppose you never know) I’m not sure how the stack might be getting corrupted, but with interrupts again I guess it’s possible.
I never had this issue in any programs before I started messing about with interrupts. Is it possible that (now with interrupts enacted) I am trying to fork to a bogus interrupt vector? I guess that’s unlikely as well, since my VIC says I’m not servicing an interrupt.
Here’s some pseudocode:
uart_isr() {
echo character on uart
}
delay() {
for i=0 i<a bunch i++ ;
}
main() {
init()
while(1) {
led on
delay()
led off
delay()
}
}
There is code in the LPC2000 Yahoo group library that works.
Leon