hello world debug info
Brendan Simon
brendan at dgs.monash.edu.au
Wed Nov 11 16:01:42 UTC 1998
I've debugged hello world running to the following point. I have put
break points in critical parts of the code and the following was
observed.
set breakpoint at bssclr in dlentry.S
set breakpoint at boot_card in .../libbsp/shared/main.c
set breakpoint at rtems_initialize_executive_early in
.../sapi/src/exinit.c
set breakpoint at rtems_initialize_executive_late in
.../sapi/src/exinit.c
go start
break at bssclr
break at boot_card
break at rtems_initialize_executive_early
break at rtems_initialize_executive_late
break at boot_card
break at rtems_initialize_executive_early
break at rtems_initialize_executive_late
break at boot_card
break at rtems_initialize_executive_early
break at rtems_initialize_executive_late
break at boot_card
break at rtems_initialize_executive_early
break at rtems_initialize_executive_late
as can be seen, boot_card is being continually called for some reason.
It seems when boot_card returns back to the code in dlentry.S it then
calls boot_card again. I'm not sure why it does that because I can't
see any code in dlentry.S that continually calls boot_card (unless there
is some fancy way to do it via the link register).
If I put a breakpoint on main() it never breaks. But
rtems_initialize_executive_late is only called from within main() so I'm
not sure how it gets invoked. Maybe main() has been optimized and
compiled inline ???
What part of the code actually starts/runs the kernel ??
It either never gets called or for some reason terminates and normal
flow continues.
Please help if you have any ideas.
Brendan Simon.
More information about the users
mailing list