Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Command line is in the first and only argument
    • In our system this is always a null pointer
  • Disable interrupts
  • Store command line
  • Call bsp_start()
  • Determine RTEMS work area and heap location and size
  • Initialize RTEMS data structures
  • Initialize the C library
    • This also installs the heap
  • Call bsp_pretasking_hook()
  • Wiki Markup
    \[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?
  • Call bsp_cleanup()
  • Return to the start code
    • Not clear what's in the lr at this point, i.e., where do we return to?

...

RCE BSP

This is the portion of the BSP that is specific to the RCE project. It can be found in release/rce/init/src/Init.cc.

RceDebug
RcePic
  • Set up a single PIC Manager
    • Set up a vector of PEBs (question)
    • Set up a vector of ECDs (question)
    • Set up a vector of FLBs (question)
    • Set up a vector of PIBs (question)
    • Install a BOOK-E Critical exception handler
    • Install an External Interrupt handler
    • Return to app_bsp_pretasking_hook()
RceEthernet
RceBsdnet

Init task

This task is automatically launched by the act of enabling multitasking in boot_card()

init_executive()

This function runs in its own RTEMS task that was launched by Init task. This forms the intent of the loaded executable

...

. Other possibilities exist, but generally, this will be one of the core executables.

  • Announce what's running
  • Configure the network from DHCP
  • Set up the dynamic linker
  • Wiki Markup
    \[Start the shell\]
  • Wiki Markup
    \[Start the debugger daemon ({{gdb}} stub)\]
  • Create a Task
  • Determine what the Task should run
    • Read metadata from flash
    • Read the front panel rotary switch
  • Dynamically link the code
  • Run the Task