RFC: Boot sequence callouts?
gregory.menke at gsfc.nasa.gov
gregory.menke at gsfc.nasa.gov
Wed Aug 27 15:08:02 UTC 2003
Thomas Doerfler writes:
> Hello,
>
> in the past, I have brought up RTEMS on various boards,
> sometimes with almost no debugging tools. Today in a private
> email contact I once again got the question "My board does not
> boot. What's wrong?".
>
> I just got an idea that might help a bit to find the reason
> for a hanging boot sequence. How about a standard callout
> function pointer (let's say "BSP_boot_checkpoint_reached")
> that is called, whenever a new part of the boot sequence has
> been reached.
>
> Normally this pointer would be NULL and therefore no call
> would be executed at all, but in the basic startup code, this
> pointer could be tweaked to a useful function (like blinking
> an LED, sending a character to the UART, beeping a beeper or
> so), just to monitor, which checkpoints have been reached (and
> which have not).
>
> My recommendation is still very rough (and I hope no software
> patents already claim this fantastic idea as IP :-> ), but
> maybe this would be of some help...
>
> Any comments appreciated,
Thats not a bad idea, but I think it might be hard to implement. THe
Mongoose and motorola_shared bsps both have similar features already;
basically they print (or can print) chars at each phase in the
startup.
It might work for the Mongoose which has the bootstrap linked right in
with the OS- there the printchar is a very efficient call to a simple
routine which could be ifdef'ed out without much trouble for a quiet
startup.
Even so, a standardized approach would be troublesome because the code
doing the startup is relocatable; all the OS relocation, hardware
config and memory zeroing code runs without linked code ready in
memory. Any linker-generated pointer doesn't point to anything until
the bootstrap is done- and step is often the hardest to get going.
Gregm
More information about the users
mailing list