- problem in start.asm ?

grautvornix wrote on Monday, June 27, 2005:


it was me wohl started the thread "for what purpose is start.asm ?"
last friday and I guess now I have found a problem in start.asm which has caused the trouble i was in:

the stack apparently gets initialised before the call to _hw_initialise, but in the function hw_initialise the external RAM gets initialised, wherein the stack is located according to the linkerscripts.

If I call the _hw_initialise before this line:

    mov.l   #_stack,er7

then everything works fine with external RAM.
So: why is _hw_initialise called after this line at all ? Shouldn’t the hardware gets initialised first at all ?
And do I introduce any bug when calling _hw_initialise right upon
the overall entrypoint as I do now ?


rtel wrote on Monday, June 27, 2005:

The start.asm file is not something I wrote but part of the standard files that come with the compiler (or at least one of the demo projects that came with the compiler(?)).  I would guess that the stack pointer is set first to allow the _hw_initialise function to use the stack - or call functions that use the stack.

As long as your RAM init code does not use the stack I cannot see any reason why it should not be done first.