Skip to content

Commit 55428e4

Browse files
authored
doxygen: re-org module groups (#10197)
Match the organization of modules (groups) with that of user guide. Preliminary arrangement. This patch is just a framework arrangement. Details need to be continued. P.S., in this patch, adding numerical prefixes to the files in documentation/0.doxygen is to meet the need of displaying sorting in HTML pages. Signed-off-by: Chen Wang <[email protected]>
1 parent d59f5c0 commit 55428e4

File tree

19 files changed

+290
-314
lines changed

19 files changed

+290
-314
lines changed

documentation/0.doxygen/1.core.h

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
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_KernelObject Kernel Object Management
18+
* @brief See @ref section_kernel_object_model
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 Thread Management
38+
* @brief See @ref page_thread_management
39+
*/
40+
41+
/**
42+
* @defgroup group_Clock Clock and Timer Management
43+
* @brief See @ref page_clock_management
44+
*/
45+
46+
/**
47+
* @defgroup group_IPC Inter-Thread Communication
48+
* @brief See @ref page_thread_comm
49+
*/
50+
51+
/**
52+
* @defgroup group_MM 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_KernelService 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_SystemInit 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+
/**@}*/
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/*
2+
* This file is only used for doxygen document generation.
3+
*/
4+
5+
/**
6+
* @defgroup group_kernel_components Components
7+
*
8+
* Components of RT-Thread, see @ref page_components for more details.
9+
*/
10+
11+
/**
12+
* @addtogroup group_kernel_components
13+
* @{
14+
*/
15+
16+
/**
17+
* @defgroup group_DFS Device Virtual File System
18+
*
19+
* @brief DFS is a virtual file system in RT-Thread RTOS.
20+
*
21+
* The DFS (Device Virtual File System) is a vfs file system of RT-Thread RTOS,
22+
* which is focused on embedded device. VFS is an abstraction layer on top of a
23+
* more concrete file system. The purpose of a VFS is to allow client applications
24+
* to access different types of concrete file systems in a uniform way.
25+
*
26+
* @image html dfs.png "Figure 4: Device Virtual File System Architecture"
27+
*
28+
* The DFS specifies an interface between the kernel and a concrete file system.
29+
* Therefore, it is easy to add support for new file system types to the kernel
30+
* simply by fulfilling the interface.
31+
*/
32+
33+
/**
34+
* @defgroup group_Device Device System
35+
* @brief device I/O subsystem
36+
*
37+
* The Device System is designed as simple and minimum layer to help communication between
38+
* applications and drivers.
39+
*
40+
* The Device System provide five interfaces to driver:
41+
* - open, open a device
42+
* - close, close a device
43+
* - read, read some data from a device
44+
* - write, write some data to a device
45+
* - control, send some control command to a device
46+
*/
47+
48+
/**
49+
* @defgroup group_finsh finsh shell
50+
*
51+
* @brief finsh shell is a user command shell in RT-Thread RTOS.
52+
*
53+
* finsh shell is a user command shell in RT-Thread RTOS, which is a shell can
54+
* accept C-expression like syntax in command. From finsh shell, user can access
55+
* system area, such as memory, variables and function by input C-expression in
56+
* command.
57+
*
58+
* @image html finsh.png "Figure 3: finsh shell architecture"
59+
* There is a shell thread, which named as "tshell", in the finsh shell, it read
60+
* user command from console device, and then invokes system function or access
61+
* system variable to output result (by rt_kprintf).
62+
*/
63+
64+
/**
65+
* @defgroup group_Module Application Module
66+
*
67+
* @brief Application Module is a feature let user to execute application in RT-Thread RTOS.
68+
*
69+
* Application Module is implemented as dynamic object loader, but it can handle
70+
* the dependences relationship between application and dynamic library, moreover,
71+
* it also can handle the kernel object destroy and memory release issue when application
72+
* (abnormally) exit.
73+
*/
74+
75+
/**@}*/

documentation/0.doxygen/example/doxygen.h renamed to documentation/0.doxygen/4.doxygen.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@
66
* @defgroup group_doxygen_example Doxygen Example
77
*
88
* @brief Introduce how to write doxygen documentation.
9+
*
10+
* See @ref page_howto_doxygen for more details.
911
*/
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* This file is only used for doxygen document generation.
3+
*/
4+
5+
/**
6+
* @addtogroup group_DFS
7+
* @{
8+
*/
9+
10+
/**
11+
* @defgroup group_Fd File Descriptor
12+
*
13+
*/
14+
15+
/**
16+
* @defgroup group_FsApi File System API
17+
*/
18+
19+
/**
20+
* @defgroup group_FileApi File API
21+
*/
22+
23+
/**
24+
* @defgroup group_FsPosixApi File POSIX API
25+
*/
26+
27+
/**@}*/

documentation/0.doxygen/core/ipc.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* This file is only used for doxygen document generation.
3+
*/
4+
5+
/**
6+
* @addtogroup group_IPC
7+
* @{
8+
*/
9+
10+
/**
11+
* @defgroup group_Signal Signal
12+
* @brief signal is used for thread kill etc.
13+
*
14+
* A signal (also known as a soft interrupt signal), from a software perspective,
15+
* is a simulation of interrupt mechanism. When it comes to its principle,
16+
* thread receiving a signal is similar to processor receiving an interrupt request.
17+
*/
18+
19+
/**@}*/
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* This file is only used for doxygen document generation.
3+
*/
4+
5+
/**
6+
* @ingroup group_SystemInit
7+
*
8+
* This function will initialize user application.
9+
*
10+
* This function will be invoked when system initialization and system scheduler
11+
* has not started. User can allocate memory, create thread, semaphore etc. However,
12+
* user shall not suspend 'current' thread.
13+
*/
14+
void rt_application_init();
15+
16+
/**
17+
* @ingroup group_SystemInit
18+
*/
19+
void rt_system_heap_init(void* begin_addr, void* end_addr);

documentation/0.doxygen/filesystem.h

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)