Kconfig 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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_DEBUG
  36. bool "Enable debug features"
  37. default y
  38. if RT_DEBUG
  39. config RT_USING_OVERFLOW_CHECK
  40. bool "Using stack overflow checking"
  41. default y
  42. help
  43. Enable thread stack overflow checking. The stack overflow is checking when
  44. each thread switch.
  45. config RT_DEBUG_INIT
  46. int "Enable system initialization informat print"
  47. default 0
  48. help
  49. print the procedure name of initialization
  50. config RT_DEBUG_THREAD
  51. int "Enable thread switch information dump"
  52. default 0
  53. help
  54. print the switch to/from thread name when each thread context switch
  55. endif
  56. config RT_USING_HOOK
  57. bool "Enable system hook"
  58. default y
  59. help
  60. Enable the hook function when system running, such as idle thread hook,
  61. thread context switch etc.
  62. config IDLE_THREAD_STACK_SIZE
  63. int "The stack size of idle thread"
  64. default 256
  65. config RT_USING_TIMER_SOFT
  66. bool "Enable software timer with a timer thread"
  67. default n
  68. help
  69. the timeout function context of soft-timer is under a high priority timer
  70. thread.
  71. if RT_USING_TIMER_SOFT
  72. config RT_TIMER_THREAD_PRIO
  73. int "The priority level value of timer thread"
  74. default 4
  75. config RT_TIMER_THREAD_STACK_SIZE
  76. int "The stack size of timer thread"
  77. default 512
  78. endif
  79. menu "Inter-Thread communication"
  80. config RT_USING_SEMAPHORE
  81. bool "Enable semaphore"
  82. default y
  83. config RT_USING_MUTEX
  84. bool "Enable mutex"
  85. default y
  86. config RT_USING_EVENT
  87. bool "Enable event flag"
  88. default y
  89. config RT_USING_MAILBOX
  90. bool "Enable mailbox"
  91. default y
  92. config RT_USING_MESSAGEQUEUE
  93. bool "Enable message queue"
  94. default y
  95. config RT_USING_SIGNALS
  96. bool "Enable signals"
  97. select RT_USING_MEMPOOL
  98. default n
  99. help
  100. A signal is an asynchronous notification sent to a specific thread
  101. in order to notify it of an event that occurred.
  102. endmenu
  103. menu "Memory Management"
  104. config RT_USING_MEMPOOL
  105. bool "Using memory pool"
  106. default y
  107. help
  108. Using static memory fixed partition
  109. config RT_USING_MEMHEAP
  110. bool "Using memory heap object"
  111. default n
  112. help
  113. Using memory heap object to manage dynamic memory heap.
  114. choice
  115. prompt "Dynamic Memory Management"
  116. default RT_USING_SMALL_MEM
  117. config RT_USING_NOHEAP
  118. bool "Disable Heap"
  119. config RT_USING_SMALL_MEM
  120. bool "Small Memory Algorithm"
  121. config RT_USING_SLAB
  122. bool "SLAB Algorithm for large memory"
  123. if RT_USING_MEMHEAP
  124. config RT_USING_MEMHEAP_AS_HEAP
  125. bool "Use all of memheap objects as heap"
  126. endif
  127. endchoice
  128. if RT_USING_SMALL_MEM
  129. config RT_USING_MEMTRACE
  130. bool "Enable memory trace"
  131. default n
  132. help
  133. When enable RT_USING_MEMTRACE with shell, developer can call cmd:
  134. 1. memtrace
  135. to dump memory block information.
  136. 2. memcheck
  137. to check memory block to avoid memory overwritten.
  138. And developer also can call memcheck() in each of scheduling
  139. to check memory block to find which thread has wrongly modified
  140. memory.
  141. endif
  142. config RT_USING_HEAP
  143. bool
  144. default n if RT_USING_NOHEAP
  145. default y if RT_USING_SMALL_MEM
  146. default y if RT_USING_SLAB
  147. default y if RT_USING_MEMHEAP_AS_HEAP
  148. endmenu
  149. menu "Kernel Device Object"
  150. config RT_USING_DEVICE
  151. bool "Using device object"
  152. default y
  153. config RT_USING_INTERRUPT_INFO
  154. bool "Enable additional interrupt trace information"
  155. default n
  156. help
  157. Add name and counter information for interrupt trace.
  158. config RT_USING_CONSOLE
  159. bool "Using console for rt_kprintf"
  160. default y
  161. if RT_USING_CONSOLE
  162. config RT_CONSOLEBUF_SIZE
  163. int "the buffer size for console log printf"
  164. default 128
  165. config RT_CONSOLE_DEVICE_NAME
  166. string "the device name for console"
  167. default "uart"
  168. endif
  169. endmenu
  170. config RT_USING_MODULE
  171. bool "The dynamic module feature"
  172. default n
  173. endmenu