Kconfig 7.3 KB

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