xref: /nrf52832-nimble/rt-thread/src/Kconfig (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZeromenu "RT-Thread Kernel"
2*10465441SEvalZero
3*10465441SEvalZeroconfig RT_NAME_MAX
4*10465441SEvalZero    int "The maximal size of kernel object name"
5*10465441SEvalZero    range 2 32
6*10465441SEvalZero    default 8
7*10465441SEvalZero    help
8*10465441SEvalZero        Each kernel object, such as thread, timer, semaphore etc, has a name,
9*10465441SEvalZero        the RT_NAME_MAX is the maximal size of this object name.
10*10465441SEvalZero
11*10465441SEvalZeroconfig RT_USING_SMP
12*10465441SEvalZero    bool "Enable SMP(Symmetric multiprocessing)"
13*10465441SEvalZero    default n
14*10465441SEvalZero	help
15*10465441SEvalZero        This option should be selected by machines which have an SMP-
16*10465441SEvalZero        capable CPU.
17*10465441SEvalZero        The only effect of this option is to make the SMP-related
18*10465441SEvalZero        options available to the user for configuration.
19*10465441SEvalZero
20*10465441SEvalZeroconfig RT_CPUS_NR
21*10465441SEvalZero    int "Number of CPUs"
22*10465441SEvalZero	default 2
23*10465441SEvalZero	depends on RT_USING_SMP
24*10465441SEvalZero    help
25*10465441SEvalZero		Number of CPUs in the system
26*10465441SEvalZero
27*10465441SEvalZeroconfig RT_ALIGN_SIZE
28*10465441SEvalZero    int "Alignment size for CPU architecture data access"
29*10465441SEvalZero    default 4
30*10465441SEvalZero    help
31*10465441SEvalZero        Alignment size for CPU architecture data access
32*10465441SEvalZero
33*10465441SEvalZero    choice
34*10465441SEvalZero        prompt "The maximal level value of priority of thread"
35*10465441SEvalZero        default RT_THREAD_PRIORITY_32
36*10465441SEvalZero
37*10465441SEvalZero        config RT_THREAD_PRIORITY_8
38*10465441SEvalZero            bool "8"
39*10465441SEvalZero
40*10465441SEvalZero        config RT_THREAD_PRIORITY_32
41*10465441SEvalZero            bool "32"
42*10465441SEvalZero
43*10465441SEvalZero        config RT_THREAD_PRIORITY_256
44*10465441SEvalZero            bool "256"
45*10465441SEvalZero    endchoice
46*10465441SEvalZero
47*10465441SEvalZeroconfig RT_THREAD_PRIORITY_MAX
48*10465441SEvalZero    int
49*10465441SEvalZero    default 8   if RT_THREAD_PRIORITY_8
50*10465441SEvalZero    default 32  if RT_THREAD_PRIORITY_32
51*10465441SEvalZero    default 256 if RT_THREAD_PRIORITY_256
52*10465441SEvalZero
53*10465441SEvalZeroconfig RT_TICK_PER_SECOND
54*10465441SEvalZero    int "Tick frequency, Hz"
55*10465441SEvalZero    range 10 1000
56*10465441SEvalZero    default 100
57*10465441SEvalZero    help
58*10465441SEvalZero        System's tick frequency, Hz.
59*10465441SEvalZero
60*10465441SEvalZeroconfig RT_USING_OVERFLOW_CHECK
61*10465441SEvalZero    bool "Using stack overflow checking"
62*10465441SEvalZero    default y
63*10465441SEvalZero    help
64*10465441SEvalZero        Enable thread stack overflow checking. The stack overflow is checking when
65*10465441SEvalZero        each thread switch.
66*10465441SEvalZero
67*10465441SEvalZeroconfig RT_USING_HOOK
68*10465441SEvalZero    bool "Enable system hook"
69*10465441SEvalZero    default y
70*10465441SEvalZero    select RT_USING_IDLE_HOOK
71*10465441SEvalZero    help
72*10465441SEvalZero        Enable the hook function when system running, such as idle thread hook,
73*10465441SEvalZero        thread context switch etc.
74*10465441SEvalZero
75*10465441SEvalZeroconfig RT_USING_IDLE_HOOK
76*10465441SEvalZero    bool "Enable IDLE Task hook"
77*10465441SEvalZero    default y if RT_USING_HOOK
78*10465441SEvalZero
79*10465441SEvalZero    if RT_USING_IDLE_HOOK
80*10465441SEvalZero    config RT_IDEL_HOOK_LIST_SIZE
81*10465441SEvalZero        int "The max size of idel hook list"
82*10465441SEvalZero        default 4
83*10465441SEvalZero        range 1 16
84*10465441SEvalZero        help
85*10465441SEvalZero            The system has a hook list. This is the hook list size.
86*10465441SEvalZero    endif
87*10465441SEvalZero
88*10465441SEvalZeroconfig IDLE_THREAD_STACK_SIZE
89*10465441SEvalZero    int "The stack size of idle thread"
90*10465441SEvalZero    default 256
91*10465441SEvalZero
92*10465441SEvalZeroconfig RT_USING_TIMER_SOFT
93*10465441SEvalZero    bool "Enable software timer with a timer thread"
94*10465441SEvalZero    default n
95*10465441SEvalZero    help
96*10465441SEvalZero        the timeout function context of soft-timer is under a high priority timer
97*10465441SEvalZero        thread.
98*10465441SEvalZero
99*10465441SEvalZeroif RT_USING_TIMER_SOFT
100*10465441SEvalZeroconfig RT_TIMER_THREAD_PRIO
101*10465441SEvalZero    int "The priority level value of timer thread"
102*10465441SEvalZero    default 4
103*10465441SEvalZero
104*10465441SEvalZeroconfig RT_TIMER_THREAD_STACK_SIZE
105*10465441SEvalZero    int "The stack size of timer thread"
106*10465441SEvalZero    default 512
107*10465441SEvalZero
108*10465441SEvalZeroendif
109*10465441SEvalZero
110*10465441SEvalZeromenuconfig RT_DEBUG
111*10465441SEvalZero    bool "Enable debugging features"
112*10465441SEvalZero    default y
113*10465441SEvalZero
114*10465441SEvalZeroif RT_DEBUG
115*10465441SEvalZero
116*10465441SEvalZeroconfig RT_DEBUG_INIT_CONFIG
117*10465441SEvalZero    bool "Enable debugging of components initialization"
118*10465441SEvalZero    default n
119*10465441SEvalZero
120*10465441SEvalZeroconfig RT_DEBUG_INIT
121*10465441SEvalZero    int
122*10465441SEvalZero    default 1 if RT_DEBUG_INIT_CONFIG
123*10465441SEvalZero
124*10465441SEvalZeroconfig RT_DEBUG_THREAD_CONFIG
125*10465441SEvalZero    bool "Enable debugging of Thread State Changes"
126*10465441SEvalZero    default n
127*10465441SEvalZero
128*10465441SEvalZeroconfig RT_DEBUG_THREAD
129*10465441SEvalZero    int
130*10465441SEvalZero    default 1 if RT_DEBUG_THREAD_CONFIG
131*10465441SEvalZero
132*10465441SEvalZeroconfig RT_DEBUG_SCHEDULER_CONFIG
133*10465441SEvalZero    bool "Enable debugging of Scheduler"
134*10465441SEvalZero    default n
135*10465441SEvalZero
136*10465441SEvalZeroconfig RT_DEBUG_SCHEDULER
137*10465441SEvalZero    int
138*10465441SEvalZero    default 1 if RT_DEBUG_SCHEDULER_CONFIG
139*10465441SEvalZero
140*10465441SEvalZeroconfig RT_DEBUG_IPC_CONFIG
141*10465441SEvalZero    bool "Enable debugging of IPC"
142*10465441SEvalZero    default n
143*10465441SEvalZero
144*10465441SEvalZeroconfig RT_DEBUG_IPC
145*10465441SEvalZero    int
146*10465441SEvalZero    default 1 if RT_DEBUG_IPC_CONFIG
147*10465441SEvalZero
148*10465441SEvalZeroconfig RT_DEBUG_TIMER_CONFIG
149*10465441SEvalZero    bool "Enable debugging of Timer"
150*10465441SEvalZero    default n
151*10465441SEvalZero
152*10465441SEvalZeroconfig RT_DEBUG_TIMER
153*10465441SEvalZero    int
154*10465441SEvalZero    default 1 if RT_DEBUG_TIMER_CONFIG
155*10465441SEvalZero
156*10465441SEvalZeroconfig RT_DEBUG_IRQ_CONFIG
157*10465441SEvalZero    bool "Enable debugging of IRQ(Interrupt Request)"
158*10465441SEvalZero    default n
159*10465441SEvalZero
160*10465441SEvalZeroconfig RT_DEBUG_IRQ
161*10465441SEvalZero    int
162*10465441SEvalZero    default 1 if RT_DEBUG_IRQ_CONFIG
163*10465441SEvalZero
164*10465441SEvalZeroconfig RT_DEBUG_MEM_CONFIG
165*10465441SEvalZero    bool "Enable debugging of Small Memory Algorithm"
166*10465441SEvalZero    default n
167*10465441SEvalZero
168*10465441SEvalZeroconfig RT_DEBUG_MEM
169*10465441SEvalZero    int
170*10465441SEvalZero    default 1 if RT_DEBUG_MEM_CONFIG
171*10465441SEvalZero
172*10465441SEvalZeroconfig RT_DEBUG_SLAB_CONFIG
173*10465441SEvalZero    bool "Enable debugging of SLAB Memory Algorithm"
174*10465441SEvalZero    default n
175*10465441SEvalZero
176*10465441SEvalZeroconfig RT_DEBUG_SLAB
177*10465441SEvalZero    int
178*10465441SEvalZero    default 1 if RT_DEBUG_SLAB_CONFIG
179*10465441SEvalZero
180*10465441SEvalZeroconfig RT_DEBUG_MEMHEAP_CONFIG
181*10465441SEvalZero    bool "Enable debugging of Memory Heap Algorithm"
182*10465441SEvalZero    default n
183*10465441SEvalZero
184*10465441SEvalZeroconfig RT_DEBUG_MEMHEAP
185*10465441SEvalZero    int
186*10465441SEvalZero    default 1 if RT_DEBUG_MEMHEAP_CONFIG
187*10465441SEvalZero
188*10465441SEvalZeroconfig RT_DEBUG_MODULE_CONFIG
189*10465441SEvalZero    bool "Enable debugging of Application Module"
190*10465441SEvalZero    default n
191*10465441SEvalZero
192*10465441SEvalZeroconfig RT_DEBUG_MODULE
193*10465441SEvalZero    int
194*10465441SEvalZero    default 1 if RT_DEBUG_MODULE_CONFIG
195*10465441SEvalZero
196*10465441SEvalZeroendif
197*10465441SEvalZero
198*10465441SEvalZeromenu "Inter-Thread communication"
199*10465441SEvalZero
200*10465441SEvalZeroconfig RT_USING_SEMAPHORE
201*10465441SEvalZero    bool "Enable semaphore"
202*10465441SEvalZero    default y
203*10465441SEvalZero
204*10465441SEvalZeroconfig RT_USING_MUTEX
205*10465441SEvalZero    bool "Enable mutex"
206*10465441SEvalZero    default y
207*10465441SEvalZero
208*10465441SEvalZeroconfig RT_USING_EVENT
209*10465441SEvalZero    bool "Enable event flag"
210*10465441SEvalZero    default y
211*10465441SEvalZero
212*10465441SEvalZeroconfig RT_USING_MAILBOX
213*10465441SEvalZero    bool "Enable mailbox"
214*10465441SEvalZero    default y
215*10465441SEvalZero
216*10465441SEvalZeroconfig RT_USING_MESSAGEQUEUE
217*10465441SEvalZero    bool "Enable message queue"
218*10465441SEvalZero    default y
219*10465441SEvalZero
220*10465441SEvalZeroconfig RT_USING_SIGNALS
221*10465441SEvalZero    bool "Enable signals"
222*10465441SEvalZero    select RT_USING_MEMPOOL
223*10465441SEvalZero    default n
224*10465441SEvalZero    help
225*10465441SEvalZero        A signal is an asynchronous notification sent to a specific thread
226*10465441SEvalZero        in order to notify it of an event that occurred.
227*10465441SEvalZeroendmenu
228*10465441SEvalZero
229*10465441SEvalZeromenu "Memory Management"
230*10465441SEvalZero
231*10465441SEvalZero    config RT_USING_MEMPOOL
232*10465441SEvalZero        bool "Using memory pool"
233*10465441SEvalZero        default y
234*10465441SEvalZero        help
235*10465441SEvalZero            Using static memory fixed partition
236*10465441SEvalZero
237*10465441SEvalZero    config RT_USING_MEMHEAP
238*10465441SEvalZero        bool "Using memory heap object"
239*10465441SEvalZero        default n
240*10465441SEvalZero        help
241*10465441SEvalZero            Using memory heap object to manage dynamic memory heap.
242*10465441SEvalZero
243*10465441SEvalZero    choice
244*10465441SEvalZero        prompt "Dynamic Memory Management"
245*10465441SEvalZero        default RT_USING_SMALL_MEM
246*10465441SEvalZero
247*10465441SEvalZero        config RT_USING_NOHEAP
248*10465441SEvalZero            bool "Disable Heap"
249*10465441SEvalZero
250*10465441SEvalZero        config RT_USING_SMALL_MEM
251*10465441SEvalZero            bool "Small Memory Algorithm"
252*10465441SEvalZero
253*10465441SEvalZero        config RT_USING_SLAB
254*10465441SEvalZero            bool "SLAB Algorithm for large memory"
255*10465441SEvalZero
256*10465441SEvalZero        if RT_USING_MEMHEAP
257*10465441SEvalZero        config RT_USING_MEMHEAP_AS_HEAP
258*10465441SEvalZero            bool "Use all of memheap objects as heap"
259*10465441SEvalZero        endif
260*10465441SEvalZero    endchoice
261*10465441SEvalZero
262*10465441SEvalZero    if RT_USING_SMALL_MEM
263*10465441SEvalZero        config RT_USING_MEMTRACE
264*10465441SEvalZero            bool "Enable memory trace"
265*10465441SEvalZero            default n
266*10465441SEvalZero            help
267*10465441SEvalZero                When enable RT_USING_MEMTRACE with shell, developer can call cmd:
268*10465441SEvalZero                1. memtrace
269*10465441SEvalZero                   to dump memory block information.
270*10465441SEvalZero                2. memcheck
271*10465441SEvalZero                   to check memory block to avoid memory overwritten.
272*10465441SEvalZero
273*10465441SEvalZero                And developer also can call memcheck() in each of scheduling
274*10465441SEvalZero                to check memory block to find which thread has wrongly modified
275*10465441SEvalZero                memory.
276*10465441SEvalZero    endif
277*10465441SEvalZero
278*10465441SEvalZero    config RT_USING_HEAP
279*10465441SEvalZero        bool
280*10465441SEvalZero        default n if RT_USING_NOHEAP
281*10465441SEvalZero        default y if RT_USING_SMALL_MEM
282*10465441SEvalZero        default y if RT_USING_SLAB
283*10465441SEvalZero        default y if RT_USING_MEMHEAP_AS_HEAP
284*10465441SEvalZero
285*10465441SEvalZeroendmenu
286*10465441SEvalZero
287*10465441SEvalZeromenu "Kernel Device Object"
288*10465441SEvalZero
289*10465441SEvalZero    config RT_USING_DEVICE
290*10465441SEvalZero        bool "Using device object"
291*10465441SEvalZero        default y
292*10465441SEvalZero
293*10465441SEvalZero    config RT_USING_DEVICE_OPS
294*10465441SEvalZero        bool "Using ops for each device object"
295*10465441SEvalZero        default n
296*10465441SEvalZero
297*10465441SEvalZero    config RT_USING_INTERRUPT_INFO
298*10465441SEvalZero        bool "Enable additional interrupt trace information"
299*10465441SEvalZero        default n
300*10465441SEvalZero        help
301*10465441SEvalZero            Add name and counter information for interrupt trace.
302*10465441SEvalZero
303*10465441SEvalZero    config RT_USING_CONSOLE
304*10465441SEvalZero        bool "Using console for rt_kprintf"
305*10465441SEvalZero        default y
306*10465441SEvalZero
307*10465441SEvalZero    if RT_USING_CONSOLE
308*10465441SEvalZero        config RT_CONSOLEBUF_SIZE
309*10465441SEvalZero            int "the buffer size for console log printf"
310*10465441SEvalZero            default 128
311*10465441SEvalZero
312*10465441SEvalZero        config RT_CONSOLE_DEVICE_NAME
313*10465441SEvalZero            string "the device name for console"
314*10465441SEvalZero            default "uart"
315*10465441SEvalZero    endif
316*10465441SEvalZero
317*10465441SEvalZeroendmenu
318*10465441SEvalZero
319*10465441SEvalZeroconfig RT_VER_NUM
320*10465441SEvalZero    hex
321*10465441SEvalZero    default 0x40000
322*10465441SEvalZero    help
323*10465441SEvalZero        RT-Thread version number
324*10465441SEvalZero
325*10465441SEvalZeroendmenu
326