On Thu, Mar 22, 2012 at 5:06 PM, Justin Drake <drakefjus...@gmail.com> wrote: > I am getting the following error on the OpenOCD terminal: > > Error: address + size wrapped(0xfffffffe, 0x00000004) > > What address is referred to? What do the two addresses 0xfffffffe and > 0x00000004 correspond to?
In ARMv7-M, 0xfffffffX is a special value for the return address that is placed in the link register when an exception is taken. When the exception handler returns and the PC gets loaded with this special value, the core knows that it should perform exception return instead of a normal branch. This is one of the nifty features that makes it possible to write exception handlers as regular C functions. However, when GDB follows the stack trace from inside an exception handler, it ignores the fact that 0xfffffffX is a special value and tries to load a word (0x00000004 bytes) from that address as if it was a regular return address. OpenOCD warns that the read wraps around the 32-bit address space, and also emits some MEM_AP errors from trying to access these locations. Upon receiving the errors, GDB assumes it has reached the start of the stack trace and stops. The error is completely harmless but could be avoided if GDB was made aware of the special value and how to get the true return address. /Andreas ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel