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