1.core.h 3.9 KB

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