...
- Command line is in first argument
- Disable interrupts
- Store command line
- Call
bsp_start()
- Determine RTEMS work area and heap
- Initialize RTEMS data structures
- Initialize the C library
- Call
bsp_pretasking_hook()
- Optional: Enable RTEMS debugging capabilities
- RTEMS initialization before loading device drivers
- Call
bsp_predriver_hook()
- Initialize device drivers
- Call
bsp_postdriver_hook()
- Start multitasking
- Thread with entry point
Init
runs - Not clear how this returns. Perhaps when the last task is deleted?
- Thread with entry point
- Call
bsp_cleanup()
- Return to start code
- Not clear what's in the
lr
at this point, i.e., where do we return to?
- Not clear what's in the
RTEMS BSP
bsp_start()
- Set up default character output function
- Get CPU type and revision cached
- Initialize device driver parameters
- Rate of timer source for
clock.c
bsp_timer_internal_clock
bsp_timer_average_overhead
bsp_timer_least_valid
- Rate of timer source for
- Initialize default raw exception handlers
- Call
app_bsp_start()
bsp_pretasking_hook()
bsp_predriver_hook()
bsp_postdriver_hook()
- Call
rtems_libio_supp_helper()
to open/dev/console
forstdin
,stdout
andstderr
, if it exists - Call
app_bsp_postdriver_hook()
- Call
bsp_cleanup()
- Call
app_bsp_cleanup()
- Call
RCE BSP
app_bsp_start()
- Replace the character output function with one that writes to the
syslog
- Replace the character output function with one that writes to the
app_bsp_pretasking_hook()
- Initialize
RceDebug
- Initialize
RcePic
- Initialize
app_bsp_predriver_hook()
- Initialize
RceEthernet
- Initialize
RceBsdnet
- Initialize
app_bsp_postdriver_hook()
app_bsp_cleanup()