1 /* 2 * This file is only used for doxygen document generation. 3 */ 4 5 /** 6 * @defgroup SystemInit System Initialization 7 * 8 * @brief System initialization procedure. 9 * 10 * When RT-Thread operating system starts up, the basic operating system facility 11 * initialization routines must be invoked. 12 * 13 * The suggested initialization sequence is: 14 * 15 * - initialize device hardware 16 * rt_hw_board_init(); 17 * 18 * User can put the low level hardware initialization in this function, such as 19 * DDR memory setting, pinmux setting, console device setting etc. 20 * 21 * - show version 22 * rt_show_version(); 23 * 24 * - initialize system tick 25 * rt_system_tick_init(); 26 * 27 * - initialize kernel object [deprecated] 28 * rt_system_object_init(); 29 * 30 * - initialize timer system 31 * rt_system_timer_init(); 32 * 33 * - initialize system heap memory 34 * rt_system_heap_init(__bss_end, __end_of_memory); 35 * 36 * - initialize module system 37 * rt_system_module_init(); 38 * 39 * - initialize scheduler system 40 * rt_system_scheduler_init(); 41 * 42 * - initialize application 43 * rt_application_init(); 44 * 45 * - initialize system timer thread 46 * rt_system_timer_thread_init(); 47 * 48 * - initialize idle thread 49 * rt_thread_idle_init(); 50 * 51 * - start scheduler 52 * rt_system_scheduler_start(); 53 */ 54 55 /** 56 * @ingroup SystemInit 57 * 58 * This function will initialize user application. 59 * 60 * This function will be invoked when system initialization and system scheduler 61 * has not started. User can allocate memory, create thread, semaphore etc. However, 62 * user shall not suspend 'current' thread. 63 */ 64 void rt_application_init() 65 { 66 } 67 68 /** 69 * @ingroup SystemInit 70 * 71 * This function will initialize system heap memory. 72 * 73 * @param begin_addr the beginning address of system heap memory. 74 * @param end_addr the end address of system heap memory. 75 * 76 */ 77 void rt_system_heap_init(void* begin_addr, void* end_addr) 78 { 79 } 80