1 /* 2 * This file is only used for doxygen document generation. 3 */ 4 5 /** 6 * @defgroup group_kernel_core Kernel 7 * 8 * Core of RT-Thread, see @ref page_kernel_core for more details. 9 */ 10 11 /** 12 * @addtogroup group_kernel_core 13 * @{ 14 */ 15 16 /** 17 * @defgroup group_object_management Object Management 18 * @brief See @ref page_object_management 19 * 20 * The Kernel object system can access and manage all of the kernel objects. 21 * 22 * Kernel objects include most of the facilities in the kernel: 23 * - thread 24 * - semaphore and mutex 25 * - event/fast event, mailbox, messagequeue 26 * - memory pool 27 * - timer 28 * @image html Kernel_Object.png "Figure 2: Kernel Object" 29 * @image rtf Kernel_Object.png "Figure 2: Kernel Object" 30 * 31 * Kernel objects can be static objects, whose memory is allocated in compiling. 32 * It can be dynamic objects as well, whose memory is allocated from system heaps 33 * in runtime. 34 */ 35 36 /** 37 * @defgroup group_thread_management Thread Management 38 * @brief See @ref page_thread_management 39 */ 40 41 /** 42 * @defgroup group_clock_management Clock and Timer Management 43 * @brief See @ref page_clock_management 44 */ 45 46 /** 47 * @defgroup group_thread_comm Inter-Thread Communication 48 * @brief See @ref page_thread_comm 49 */ 50 51 /** 52 * @defgroup group_memory_management Memory Management 53 * @brief memory management for memory pool and heap memory 54 * 55 * RT-Thread operating system supports two types memory management: 56 * - Static memory pool management 57 * - Dynamic memory heap management. 58 * 59 * The time to allocate a memory block from the memory pool is determinant. When 60 * the memory pool is empty, the allocated thread can be blocked (or immediately return, 61 * or waiting for sometime to return, which are determined by a timeout parameter). 62 * When other thread releases memory blocks to this memory pool, the blocked thread is 63 * wake up. 64 * 65 * There are two methods in dynamic memory heap management, one is used for small memory, 66 * such as less than 1MB. Another is a SLAB like memory management, which is suitable 67 * for large memory system. All of them has no real-time character. 68 */ 69 70 /** 71 * @defgroup group_hook Runtime Trace and Record 72 * @brief the hook function set in runtime 73 * 74 * In order to trace and record RT-Thread activity in runtime, a hook mechanism 75 * is introduced. 76 * 77 * The hooks are a series of routines, which are invoked in some special checkpoints. 78 * The hook routines include: 79 * - object hook, invoked at object created, deleted, taken and put etc. 80 * - scheduler hook, invoked at thread switch and idle thread loop. 81 * - memory hook, invoked when allocate or free memory block. 82 * - timer hook, invoked when timer is timeout. 83 */ 84 85 /** 86 * @defgroup group_kernel_service Other useful kernel service 87 * @brief other useful service in the kernel 88 */ 89 90 /** 91 * @defgroup group_error Error Code 92 * @brief error code 93 * 94 * The error code is defined to identify which kind of error occurs. When some 95 * bad things happen, the current thread's errno will be set. 96 */ 97 98 /** 99 * @defgroup group_system_init System Initialization 100 * 101 * @brief System initialization procedure. 102 * 103 * When RT-Thread operating system starts up, the basic operating system facility 104 * initialization routines must be invoked. 105 * 106 * The suggested initialization sequence is: 107 * 108 * - initialize device hardware 109 * rt_hw_board_init(); 110 * 111 * User can put the low level hardware initialization in this function, such as 112 * DDR memory setting, pinmux setting, console device setting etc. 113 * 114 * - show version 115 * rt_show_version(); 116 * 117 * - initialize timer system 118 * rt_system_timer_init(); 119 * 120 * - initialize system heap memory 121 * rt_system_heap_init(__bss_end, __end_of_memory); 122 * 123 * - initialize module system 124 * rt_system_module_init(); 125 * 126 * - initialize scheduler system 127 * rt_system_scheduler_init(); 128 * 129 * - initialize application 130 * rt_application_init(); 131 * 132 * - initialize system timer thread 133 * rt_system_timer_thread_init(); 134 * 135 * - initialize idle thread 136 * rt_thread_idle_init(); 137 * 138 * - start scheduler 139 * rt_system_scheduler_start(); 140 */ 141 142 /**@}*/ 143