Kconfig 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. menu "RT-Thread Kernel"
  2. config RT_NAME_MAX
  3. int "The maximal size of kernel object name"
  4. range 2 32
  5. default 8
  6. help
  7. Each kernel object, such as thread, timer, semaphore etc, has a name,
  8. the RT_NAME_MAX is the maximal size of this object name.
  9. config RT_ALIGN_SIZE
  10. int "Alignment size for CPU architecture data access"
  11. default 4
  12. help
  13. Alignment size for CPU architecture data access
  14. choice
  15. prompt "The maximal level value of priority of thread"
  16. default RT_THREAD_PRIORITY_32
  17. config RT_THREAD_PRIORITY_8
  18. bool "8"
  19. config RT_THREAD_PRIORITY_32
  20. bool "32"
  21. config RT_THREAD_PRIORITY_256
  22. bool "256"
  23. endchoice
  24. config RT_THREAD_PRIORITY_MAX
  25. int
  26. default 8 if RT_THREAD_PRIORITY_8
  27. default 32 if RT_THREAD_PRIORITY_32
  28. default 256 if RT_THREAD_PRIORITY_256
  29. config RT_TICK_PER_SECOND
  30. int "Tick frequency, Hz"
  31. range 10 1000
  32. default 100
  33. help
  34. System's tick frequency, Hz.
  35. config RT_USING_OVERFLOW_CHECK
  36. bool "Using stack overflow checking"
  37. default y
  38. help
  39. Enable thread stack overflow checking. The stack overflow is checking when
  40. each thread switch.
  41. config RT_USING_HOOK
  42. bool "Enable system hook"
  43. default y
  44. help
  45. Enable the hook function when system running, such as idle thread hook,
  46. thread context switch etc.
  47. if RT_USING_HOOK
  48. config RT_IDEL_HOOK_LIST_SIZE
  49. int "The max size of idel hook list"
  50. default 4
  51. range 1 16
  52. help
  53. The system has a hook list. This is the hook list size.
  54. endif
  55. config IDLE_THREAD_STACK_SIZE
  56. int "The stack size of idle thread"
  57. default 256
  58. config RT_USING_TIMER_SOFT
  59. bool "Enable software timer with a timer thread"
  60. default n
  61. help
  62. the timeout function context of soft-timer is under a high priority timer
  63. thread.
  64. if RT_USING_TIMER_SOFT
  65. config RT_TIMER_THREAD_PRIO
  66. int "The priority level value of timer thread"
  67. default 4
  68. config RT_TIMER_THREAD_STACK_SIZE
  69. int "The stack size of timer thread"
  70. default 512
  71. endif
  72. menuconfig RT_DEBUG
  73. bool "Enable debugging features"
  74. default y
  75. if RT_DEBUG
  76. config RT_DEBUG_INIT_CONFIG
  77. bool "Enable debugging of components initialization"
  78. default n
  79. config RT_DEBUG_INIT
  80. int
  81. default 1 if RT_DEBUG_INIT_CONFIG
  82. config RT_DEBUG_THREAD_CONFIG
  83. bool "Enable debugging of Thread State Changes"
  84. default n
  85. config RT_DEBUG_THREAD
  86. int
  87. default 1 if RT_DEBUG_THREAD_CONFIG
  88. config RT_DEBUG_SCHEDULER_CONFIG
  89. bool "Enable debugging of Scheduler"
  90. default n
  91. config RT_DEBUG_SCHEDULER
  92. int
  93. default 1 if RT_DEBUG_SCHEDULER_CONFIG
  94. config RT_DEBUG_IPC_CONFIG
  95. bool "Enable debugging of IPC"
  96. default n
  97. config RT_DEBUG_IPC
  98. int
  99. default 1 if RT_DEBUG_IPC_CONFIG
  100. config RT_DEBUG_TIMER_CONFIG
  101. bool "Enable debugging of Timer"
  102. default n
  103. config RT_DEBUG_TIMER
  104. int
  105. default 1 if RT_DEBUG_TIMER_CONFIG
  106. config RT_DEBUG_IRQ_CONFIG
  107. bool "Enable debugging of IRQ(Interrupt Request)"
  108. default n
  109. config RT_DEBUG_IRQ
  110. int
  111. default 1 if RT_DEBUG_IRQ_CONFIG
  112. config RT_DEBUG_MEM_CONFIG
  113. bool "Enable debugging of Small Memory Algorithm"
  114. default n
  115. config RT_DEBUG_MEM
  116. int
  117. default 1 if RT_DEBUG_MEM_CONFIG
  118. config RT_DEBUG_SLAB_CONFIG
  119. bool "Enable debugging of SLAB Memory Algorithm"
  120. default n
  121. config RT_DEBUG_SLAB
  122. int
  123. default 1 if RT_DEBUG_SLAB_CONFIG
  124. config RT_DEBUG_MEMHEAP_CONFIG
  125. bool "Enable debugging of Memory Heap Algorithm"
  126. default n
  127. config RT_DEBUG_MEMHEAP
  128. int
  129. default 1 if RT_DEBUG_MEMHEAP_CONFIG
  130. config RT_DEBUG_MODULE_CONFIG
  131. bool "Enable debugging of Application Module"
  132. default n
  133. config RT_DEBUG_MODULE
  134. int
  135. default 1 if RT_DEBUG_MODULE_CONFIG
  136. endif
  137. menu "Inter-Thread communication"
  138. config RT_USING_SEMAPHORE
  139. bool "Enable semaphore"
  140. default y
  141. config RT_USING_MUTEX
  142. bool "Enable mutex"
  143. default y
  144. config RT_USING_EVENT
  145. bool "Enable event flag"
  146. default y
  147. config RT_USING_MAILBOX
  148. bool "Enable mailbox"
  149. default y
  150. config RT_USING_MESSAGEQUEUE
  151. bool "Enable message queue"
  152. default y
  153. config RT_USING_SIGNALS
  154. bool "Enable signals"
  155. select RT_USING_MEMPOOL
  156. default n
  157. help
  158. A signal is an asynchronous notification sent to a specific thread
  159. in order to notify it of an event that occurred.
  160. endmenu
  161. menu "Memory Management"
  162. config RT_USING_MEMPOOL
  163. bool "Using memory pool"
  164. default y
  165. help
  166. Using static memory fixed partition
  167. config RT_USING_MEMHEAP
  168. bool "Using memory heap object"
  169. default n
  170. help
  171. Using memory heap object to manage dynamic memory heap.
  172. choice
  173. prompt "Dynamic Memory Management"
  174. default RT_USING_SMALL_MEM
  175. config RT_USING_NOHEAP
  176. bool "Disable Heap"
  177. config RT_USING_SMALL_MEM
  178. bool "Small Memory Algorithm"
  179. config RT_USING_SLAB
  180. bool "SLAB Algorithm for large memory"
  181. if RT_USING_MEMHEAP
  182. config RT_USING_MEMHEAP_AS_HEAP
  183. bool "Use all of memheap objects as heap"
  184. endif
  185. endchoice
  186. if RT_USING_SMALL_MEM
  187. config RT_USING_MEMTRACE
  188. bool "Enable memory trace"
  189. default n
  190. help
  191. When enable RT_USING_MEMTRACE with shell, developer can call cmd:
  192. 1. memtrace
  193. to dump memory block information.
  194. 2. memcheck
  195. to check memory block to avoid memory overwritten.
  196. And developer also can call memcheck() in each of scheduling
  197. to check memory block to find which thread has wrongly modified
  198. memory.
  199. endif
  200. config RT_USING_HEAP
  201. bool
  202. default n if RT_USING_NOHEAP
  203. default y if RT_USING_SMALL_MEM
  204. default y if RT_USING_SLAB
  205. default y if RT_USING_MEMHEAP_AS_HEAP
  206. endmenu
  207. menu "Kernel Device Object"
  208. config RT_USING_DEVICE
  209. bool "Using device object"
  210. default y
  211. config RT_USING_DEVICE_OPS
  212. bool "Using ops for each device object"
  213. default n
  214. config RT_USING_INTERRUPT_INFO
  215. bool "Enable additional interrupt trace information"
  216. default n
  217. help
  218. Add name and counter information for interrupt trace.
  219. config RT_USING_CONSOLE
  220. bool "Using console for rt_kprintf"
  221. default y
  222. if RT_USING_CONSOLE
  223. config RT_CONSOLEBUF_SIZE
  224. int "the buffer size for console log printf"
  225. default 128
  226. config RT_CONSOLE_DEVICE_NAME
  227. string "the device name for console"
  228. default "uart"
  229. endif
  230. endmenu
  231. endmenu