sched/os_start.c
/*
 * _start - initialize the OS resources
 *
 *  Mount the virtual file system and initialize the device drivers. Pass
 *  the execution to os_appstart to start spwanning the initial tasks.
 *  This function should not return and it should be called after the
 *  HEAP memory was initialized and the SysTick was configured to allow
 *  context switching.
 */
initialize the OS resources
Mount the virtual file system and initialize the device drivers. Pass
the execution to os_appstart to start spwanning the initial tasks.
This function should not return and it should be called after the
HEAP memory was initialized and the SysTick was configured to allow
context switching.
initialize the OS resources Mount the virtual file system and initialize the device drivers . Pass the execution to os_appstart to start spwanning the initial tasks . This function should not return and it should be called after the HEAP memory was initialized and the SysTick was configured to allow context switching .
void __start(void)
{
  volatile unsigned long *src, *dst;
  volatile unsigned long heap_start, heap_end;
#ifndef CONFIG_SIM_BUILD
  heap_start =  (unsigned long)&_sheap;
  heap_end   =  (unsigned long)&_eheap;
#else
  heap_start = _sheap;
  heap_end   = _eheap;
#endif
#ifndef CONFIG_RUN_FROM_RAM
  src = &_etext;
  dst = &_sdata;
  while(dst < &_edata)
      *(dst++) = *(src++);
#else
  UNUSED(dst);
#endif 
  src = &_sbss;
  while(src < &_ebss)
      *(src++) = 0;
  s_init(&g_my_heap,
         (void *)heap_start,
         (void *)heap_end);
  uart_low_init();
  printf(CONFIG_POWERON_MESSAGE);
  sem_init(&g_heap_sema, 0, 1);
  sched_init();
  vfs_init(NULL, 0);
  board_init();
  os_appstart();
 }
void __start ( void ) { volatile unsigned long * src , * dst ; volatile unsigned long heap_start , heap_end ; #ifndef CONFIG_SIM_BUILD heap_start = ( unsigned long ) & _sheap ; heap_end = ( unsigned long ) & _eheap ; #else heap_start = _sheap ; heap_end = _eheap ; #endif #ifndef CONFIG_RUN_FROM_RAM src = & _etext ; dst = & _sdata ; while ( dst < & _edata ) * ( dst ++ ) = * ( src ++ ) ; #else UNUSED ( dst ) ; #endif src = & _sbss ; while ( src < & _ebss ) * ( src ++ ) = 0 ; s_init ( & g_my_heap , ( void * ) heap_start , ( void * ) heap_end ) ; uart_low_init ( ) ; printf ( CONFIG_POWERON_MESSAGE ) ; sem_init ( & g_heap_sema , 0 , 1 ) ; sched_init ( ) ; vfs_init ( NULL , 0 ) ; board_init ( ) ; os_appstart ( ) ; }
_start - initialize the OS resources
  Mount the virtual file system and initialize the device drivers.
_start - initialize the OS resources Mount the virtual file system and initialize the device drivers .
/* Copy initialized variable data from flash to ram */ /* CONFIG_RUN_FROM_RAM */ /* Zero out bss segment */ /* Initialize the HEAP memory */ /* Init dummy serial console */ /* Initialize the scheduler */ /* Virtual file system initialization */ /* This function should be implemented by each board config. It contains
   * the board specific initialization logic and it initializes the drivers.
   */ /* Start the application logic and spawn child tasks */