Align exception (was: MMC cards support)
Stanislav Sedov
stas at FreeBSD.org
Sat Dec 15 08:43:52 PST 2007
On Sat, Dec 15, 2007 at 06:22:42PM +0300 Stanislav Sedov mentioned:
>
> Also the faults tend to be in different places depending on code layout,
> but the faulting address always the same: 42203735 (r6). Obviously, it's
> wrong.
>
This address always comes from it->it_thread. and should obviously
reflect thread td structure:
td = it->it_thread;
c00ee064: e51b301c ldr r3, [fp, #-28]
c00ee068: e5933004 ldr r3, [r3, #4]
c00ee06c: e50b3018 str r3, [fp, #-24]
p = td->td_proc;
c00ee070: e51b3018 ldr r3, [fp, #-24]
c00ee074: e5933004 ldr r3, [r3, #4]
However the contents of td (r3) is always 42203735 when
it's loaded from it->it_thread. It looks like uart does
something awful with the interrupt thread pointer.
--
Stanislav Sedov
ST4096-RIPE
More information about the freebsd-arm
mailing list