Hitting Exception address (undefined vectors) - 0xFFFF0288
Greg J <[email protected]>
| Newsgroups | gmane.linux.ports.arm.general |
|---|---|
| Message-ID | <[email protected]> |
I run linux and some firmware on my xscale and I see an issue where the PC has an address in the General Jump table area of the exception handlers ( Between 0xFFFF0000 and 0xFFFF0400). In the area -0xFFFF0200 onwards, I see that there are addresses to abort hanlders like irq_svc, __dabt_invalid etc. However, my PC register seems to be stuck at 0xFFFF0288 or 0xFFFF030C or 0xFFFF0010 etc. This is eventually reset by my watchdog and I dump the PC into nvram - This is how I get to see the last instruction. The region 0xFFFF0288/ 0xFFFF030C / 0xFFFF0010 don't have any valid addresses. I have been successful at simluating this condition by over writing the stack from kernel level functions and the PC is stuck at 0xFFFF0288. My question is, is it expected that when we overwrite the stack ( possible memory corruption) etc, is the ARM core expected to jump to such locations. Is there any other reason why the CPU could end up jumping to some such vector location which has garbage in it. Appreciate it if anyone could share their experiences/insights on this. Thanks, Greg. ------------------------------------------------------------------- List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php