This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
ARM vectors.S hang issue
- To: ecos-discuss at sources dot redhat dot com
- Subject: [ECOS] ARM vectors.S hang issue
- From: Bill Diehls <billabloke at yahoo dot com>
- Date: Mon, 8 Oct 2001 22:32:14 -0700 (PDT)
Hi All,
I have been working with a couple of friends porting
eCos to the Gameboy Advance which uses an ARM7TDMI
core. We have ported the hal and we have Redboot up
and running with console and flash support. We also
have the debug stubs working under Redboot. But we
are experiencing a strange issue in the ISR routine in
vectors.s. When running the periodic timer test
program (intr.c) for 1000 ticks or so, we get a hang
in the program -- but only if we call diag_printf to
indicate the number of ticks in the while loop. If we
remove diag_printf, the problem goes away completely.
More interestingly though, if we remove the switch to
supervisor mode (and the switch back to irq mode) in
the IRQ routine in vectors.s, the hang problem
disappears as well, regardless of calling diag_printf.
(Note, sprintf instead of diag_printf exhibits the
same behavior as well as other homemade routines that
don't use variable args.) This would probably
indicate a stack overflow in the supervisor stack, but
resizing __startup_stack to large values (say 8k) has
no effect. Any thoughts on what might be happening
would be greatly appreciated.
thanks,
--bill
__________________________________________________
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1