
"Woodruff, Richard" r-woodruff2@ti.com schreibt:
After tracing though the code I found a couple bugs in the patch. I think I corrected them and included the version of start.S for the ARM925 which I am using. I now get the expected register dump (or alternative function I've defined).
Hi Richard,
the power of peer review simply cannot be overestimated :-) I'll copy your changes from arm925 to the other ARMs and submit a patch.
-- The 3 reserved words for abort info is carved out at the top of the stack (high addr). The converted macro's treated this info as if it were at the "bottom" of the stack by subtracting off CONFIG_STACKSIZE.
Duh. I'll fix that, too.
-- I noticed that get_bad_stack() actually was not correct for SWI's and would crash my board in an unexpected way. The reason is that the SWI enters the system in SVC mode and the get_bad_stack() macro assumes a banked SP (R13)...ie it destroys the SVC mode SP, then switches to SVC mode (its already there) and there it tries to write on the bad stack. I added a new macro to my build which I think fixed the problem (assuming the svc stack is good).
This is probably true for all ARMs...
-- the introduction of CFG_GBL_DATA_SIZE is sort of a hollow gesture.
Seems you're right about that, too. I'll look back into my pool of changes to find out why I did it that way.
Other than those few bits everything else seems to be working. Thanks for the effort. Your work is forcing me to switch to the preferred memory setup.
Thanks for taking the time to dig through the mess I created ;-)
Cheers Anders