/** * @file * * @ingroup bsp_bootcard * * @brief Standard system startup. * * This is the C entry point for ALL RTEMS BSPs. It is invoked * from the assembly language initialization file usually called * start.S. It provides the framework for the BSP initialization * sequence. For the basic flow of initialization see RTEMS C User's Guide, * Initialization Manager. * * This style of initialization ensures that the C++ global * constructors are executed after RTEMS is initialized. * Thanks to Chris Johns for the idea * to move C++ global constructors into the first task. */ /* * COPYRIGHT (c) 1989-2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license/LICENSE. */ #include #include #include /* * At most a single pointer to the cmdline for those target * short on memory and not supporting a command line. */ const char *bsp_boot_cmdline; RTEMS_SYSINIT_ITEM( bsp_work_area_initialize, RTEMS_SYSINIT_BSP_WORK_AREAS, RTEMS_SYSINIT_ORDER_MIDDLE ); RTEMS_SYSINIT_ITEM( bsp_start, RTEMS_SYSINIT_BSP_START, RTEMS_SYSINIT_ORDER_MIDDLE ); RTEMS_SYSINIT_ITEM( bsp_libc_init, RTEMS_SYSINIT_BSP_LIBC, RTEMS_SYSINIT_ORDER_MIDDLE ); RTEMS_SYSINIT_ITEM( bsp_predriver_hook, RTEMS_SYSINIT_BSP_PRE_DRIVERS, RTEMS_SYSINIT_ORDER_MIDDLE ); RTEMS_SYSINIT_ITEM( bsp_postdriver_hook, RTEMS_SYSINIT_BSP_POST_DRIVERS, RTEMS_SYSINIT_ORDER_MIDDLE ); /* * This is the initialization framework routine that weaves together * calls to RTEMS and the BSP in the proper sequence to initialize * the system while maximizing shared code and keeping BSP code in C * as much as possible. */ void boot_card( const char *cmdline ) { rtems_interrupt_level bsp_isr_level; /* * Make sure interrupts are disabled. */ (void) bsp_isr_level; rtems_interrupt_local_disable( bsp_isr_level ); bsp_boot_cmdline = cmdline; rtems_initialize_executive(); /*************************************************************** *************************************************************** * APPLICATION RUNS NOW!!! We will not return to here!!! * *************************************************************** ***************************************************************/ }