1# Copyright (c) 2021 Percepio AB
2# SPDX-License-Identifier: Apache-2.0
3
4config PERCEPIO_RTOS
5	bool
6	default y
7	select PERCEPIO_TRC_CFG_RECORDER_RTOS_FREERTOS
8
9menu "Recorder Common"
10# FreeRTOS supports classic snapshot and streaming
11choice PERCEPIO_TRC_CFG_RECORDER_MODE
12    prompt "Tracing Mode"
13    default PERCEPIO_TRC_RECORDER_MODE_STREAMING
14    help
15      Trace recorder operates in snapshot or streaming mode.
16
17config PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT
18	bool "Snapshot recorder mode"
19
20config PERCEPIO_TRC_RECORDER_MODE_STREAMING
21	bool "Streaming recorder mode"
22endchoice
23
24rsource "../../../config/Kconfig"
25endmenu # "Recorder Common"
26
27menu "Recorder FreeRTOS"
28choice PERCEPIO_TRC_CFG_FREERTOS_VERSION
29    prompt "FreeRTOS Version"
30    default PERCEPIO_TRC_FREERTOS_VERSION_10_4_1
31
32config PERCEPIO_TRC_FREERTOS_VERSION_7_3_X
33	bool "7_3_X"
34
35config PERCEPIO_TRC_FREERTOS_VERSION_7_4_X
36	bool "7_4_X"
37
38config PERCEPIO_TRC_FREERTOS_VERSION_7_5_X
39	bool "7_5_X"
40
41config PERCEPIO_TRC_FREERTOS_VERSION_7_6_X
42	bool "7_6_X"
43
44config PERCEPIO_TRC_FREERTOS_VERSION_8_X_X
45	bool "8_X_X"
46
47config PERCEPIO_TRC_FREERTOS_VERSION_9_0_0
48	bool "9_0_0"
49
50config PERCEPIO_TRC_FREERTOS_VERSION_9_0_1
51	bool "9_0_1"
52
53config PERCEPIO_TRC_FREERTOS_VERSION_9_0_2
54	bool "9_0_2"
55
56config PERCEPIO_TRC_FREERTOS_VERSION_10_0_0
57	bool "10_0_0"
58
59config PERCEPIO_TRC_FREERTOS_VERSION_10_0_1
60	bool "10_0_1"
61
62config PERCEPIO_TRC_FREERTOS_VERSION_10_1_0
63	bool "10_1_0"
64
65config PERCEPIO_TRC_FREERTOS_VERSION_10_1_1
66	bool "10_1_1"
67
68config PERCEPIO_TRC_FREERTOS_VERSION_10_2_0
69	bool "10_2_0"
70
71config PERCEPIO_TRC_FREERTOS_VERSION_10_2_1
72	bool "10_2_1"
73
74config PERCEPIO_TRC_FREERTOS_VERSION_10_3_0
75	bool "10_3_0"
76
77config PERCEPIO_TRC_FREERTOS_VERSION_10_3_1
78	bool "10_3_1"
79
80config PERCEPIO_TRC_FREERTOS_VERSION_10_4_0
81	bool "10_4_0"
82
83config PERCEPIO_TRC_FREERTOS_VERSION_10_4_1
84	bool "10_4_1"
85endchoice
86
87choice PERCEPIO_TRC_CFG_HARDWARE_PORT
88    prompt "Hardware Port"
89    default PERCEPIO_TRC_HARDWARE_PORT_ARM_Cortex_M
90
91config PERCEPIO_TRC_HARDWARE_PORT_Win32
92	bool "Win32"
93
94config PERCEPIO_TRC_HARDWARE_PORT_Atmel_AT91SAM7
95	bool "Atmel AT91SAM7"
96
97config PERCEPIO_TRC_HARDWARE_PORT_Atmel_UC3A0
98	bool "Atmel UC3A0"
99
100config PERCEPIO_TRC_HARDWARE_PORT_ARM_Cortex_M
101	bool "Cortex M"
102
103config PERCEPIO_TRC_HARDWARE_PORT_ARM_CORTEX_A9
104	bool "Cortex A9"
105
106config PERCEPIO_TRC_HARDWARE_PORT_Renesas_RX600
107	bool "Renesas RX600"
108
109config PERCEPIO_TRC_HARDWARE_PORT_MICROCHIP_PIC24_PIC32
110	bool "Microchip PIC24/PIC32"
111
112config PERCEPIO_TRC_HARDWARE_PORT_TEXAS_INSTRUMENTS_TMS570_RM48
113	bool "TI TMS570 RM48"
114
115config PERCEPIO_TRC_HARDWARE_PORT_TEXAS_INSTRUMENTS_MSP430
116	bool "TI MSP430"
117
118config PERCEPIO_TRC_HARDWARE_PORT_XILINX_PPC405
119	bool "Xilinx PPC405"
120
121config PERCEPIO_TRC_HARDWARE_PORT_XILINX_PPC440
122	bool "Xilinx PPC440"
123
124config PERCEPIO_TRC_HARDWARE_PORT_XILINX_MICROBLAZE
125	bool "Xilinx Microblaze"
126
127config PERCEPIO_TRC_HARDWARE_PORT_XILINX_ZyncUltraScaleR5
128	bool "Xilinx Zync Ultra Scale R5"
129
130config PERCEPIO_TRC_HARDWARE_PORT_NXP_LPC210X
131	bool "NXP LPC210X"
132
133config PERCEPIO_TRC_HARDWARE_PORT_Altera_NiosII
134	bool "Altera Nios II"
135endchoice
136
137
138menu "Coverage"
139config PERCEPIO_TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS
140    bool "Trace Event Group Events"
141    depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY
142    default n
143    help
144      If this is disabled, the trace will exclude any "event group" events.
145
146config PERCEPIO_TRC_CFG_INCLUDE_TIMER_EVENTS
147    bool "Trace Timer Events"
148    depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY
149    default n
150    help
151      If this is disabled, the trace will exclude any Timer events.
152
153config PERCEPIO_TRC_CFG_INCLUDE_PEND_FUNC_CALL_EVENTS
154    bool "Trace Pend Function Events"
155    depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY
156    default n
157    help
158      If this is disabled, the trace will exclude any "pending function call"
159      events, such as xTimerPendFunctionCall().
160
161config PERCEPIO_TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS
162    bool "Trace Stream Buffer Events"
163    depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY
164    default n
165    help
166      If this is disabled, the trace will exclude any stream buffer or message
167      buffer events.
168endmenu
169
170
171if PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT
172
173menu "Snapshot Config"
174config PERCEPIO_TRC_CFG_NTASK
175	int "Number of Tasks"
176	range 1 2048
177	default 15
178	help
179	  These define the capacity of the Object Property Table, i.e., the maximum
180	  number of objects active at any given point, within each object class (e.g.,
181	  task, queue, semaphore, ...).
182
183	  If tasks or other objects are deleted in your system, this
184	  setting does not limit the total amount of objects created, only the number
185	  of objects that have been successfully created but not yet deleted.
186
187	  Using too small values will cause vTraceError to be called, which stores an
188	  error message in the trace that is shown when opening the trace file. The
189	  error message can also be retrieved using xTraceGetLastError.
190
191	  It can be wise to start with large values for these constants,
192	  unless you are very confident on these numbers. Then do a recording and
193	  check the actual usage by selecting View menu -> Trace Details ->
194	  Resource Usage -> Object Table.
195
196config PERCEPIO_TRC_CFG_NISR
197	int "Number of ISR"
198	range 1 2048
199	default 5
200	help
201	  These define the capacity of the Object Property Table, i.e., the maximum
202	  number of objects active at any given point, within each object class (e.g.,
203	  task, queue, semaphore, ...).
204
205	  If tasks or other objects are deleted in your system, this
206	  setting does not limit the total amount of objects created, only the number
207	  of objects that have been successfully created but not yet deleted.
208
209	  Using too small values will cause vTraceError to be called, which stores an
210	  error message in the trace that is shown when opening the trace file. The
211	  error message can also be retrieved using xTraceGetLastError.
212
213	  It can be wise to start with large values for these constants,
214	  unless you are very confident on these numbers. Then do a recording and
215	  check the actual usage by selecting View menu -> Trace Details ->
216	  Resource Usage -> Object Table.
217
218config PERCEPIO_TRC_CFG_NQUEUE
219	int "Number of Queues"
220	range 1 2048
221	default 10
222	help
223	  These define the capacity of the Object Property Table, i.e., the maximum
224	  number of objects active at any given point, within each object class (e.g.,
225	  task, queue, semaphore, ...).
226
227	  If tasks or other objects are deleted in your system, this
228	  setting does not limit the total amount of objects created, only the number
229	  of objects that have been successfully created but not yet deleted.
230
231	  Using too small values will cause vTraceError to be called, which stores an
232	  error message in the trace that is shown when opening the trace file. The
233	  error message can also be retrieved using xTraceGetLastError.
234
235	  It can be wise to start with large values for these constants,
236	  unless you are very confident on these numbers. Then do a recording and
237	  check the actual usage by selecting View menu -> Trace Details ->
238	  Resource Usage -> Object Table.
239
240config PERCEPIO_TRC_CFG_NSEMAPHORE
241	int "Number of Semaphores"
242	range 1 2048
243	default 10
244	help
245	  These define the capacity of the Object Property Table, i.e., the maximum
246	  number of objects active at any given point, within each object class (e.g.,
247	  task, queue, semaphore, ...).
248
249	  If tasks or other objects are deleted in your system, this
250	  setting does not limit the total amount of objects created, only the number
251	  of objects that have been successfully created but not yet deleted.
252
253	  Using too small values will cause vTraceError to be called, which stores an
254	  error message in the trace that is shown when opening the trace file. The
255	  error message can also be retrieved using xTraceGetLastError.
256
257	  It can be wise to start with large values for these constants,
258	  unless you are very confident on these numbers. Then do a recording and
259	  check the actual usage by selecting View menu -> Trace Details ->
260	  Resource Usage -> Object Table.
261
262config PERCEPIO_TRC_CFG_NMUTEX
263	int "Number of Mutex"
264	range 1 2048
265	default 10
266	help
267	  These define the capacity of the Object Property Table, i.e., the maximum
268	  number of objects active at any given point, within each object class (e.g.,
269	  task, queue, semaphore, ...).
270
271	  If tasks or other objects are deleted in your system, this
272	  setting does not limit the total amount of objects created, only the number
273	  of objects that have been successfully created but not yet deleted.
274
275	  Using too small values will cause vTraceError to be called, which stores an
276	  error message in the trace that is shown when opening the trace file. The
277	  error message can also be retrieved using xTraceGetLastError.
278
279	  It can be wise to start with large values for these constants,
280	  unless you are very confident on these numbers. Then do a recording and
281	  check the actual usage by selecting View menu -> Trace Details ->
282	  Resource Usage -> Object Table.
283
284config PERCEPIO_TRC_CFG_NTIMER
285	int "Number of Timers"
286	range 1 2048
287	default 5
288	help
289	  These define the capacity of the Object Property Table, i.e., the maximum
290	  number of objects active at any given point, within each object class (e.g.,
291	  task, queue, semaphore, ...).
292
293	  If tasks or other objects are deleted in your system, this
294	  setting does not limit the total amount of objects created, only the number
295	  of objects that have been successfully created but not yet deleted.
296
297	  Using too small values will cause vTraceError to be called, which stores an
298	  error message in the trace that is shown when opening the trace file. The
299	  error message can also be retrieved using xTraceGetLastError.
300
301	  It can be wise to start with large values for these constants,
302	  unless you are very confident on these numbers. Then do a recording and
303	  check the actual usage by selecting View menu -> Trace Details ->
304	  Resource Usage -> Object Table.
305
306config PERCEPIO_TRC_CFG_NEVENTGROUP
307	int "Number of Event Groups"
308	range 1 2048
309	default 5
310	help
311	  These define the capacity of the Object Property Table, i.e., the maximum
312	  number of objects active at any given point, within each object class (e.g.,
313	  task, queue, semaphore, ...).
314
315	  If tasks or other objects are deleted in your system, this
316	  setting does not limit the total amount of objects created, only the number
317	  of objects that have been successfully created but not yet deleted.
318
319	  Using too small values will cause vTraceError to be called, which stores an
320	  error message in the trace that is shown when opening the trace file. The
321	  error message can also be retrieved using xTraceGetLastError.
322
323	  It can be wise to start with large values for these constants,
324	  unless you are very confident on these numbers. Then do a recording and
325	  check the actual usage by selecting View menu -> Trace Details ->
326	  Resource Usage -> Object Table.
327
328config PERCEPIO_TRC_CFG_NSTREAMBUFFER
329	int "Number of Stream Buffers"
330	range 1 2048
331	default 5
332	help
333	  These define the capacity of the Object Property Table, i.e., the maximum
334	  number of objects active at any given point, within each object class (e.g.,
335	  task, queue, semaphore, ...).
336
337	  If tasks or other objects are deleted in your system, this
338	  setting does not limit the total amount of objects created, only the number
339	  of objects that have been successfully created but not yet deleted.
340
341	  Using too small values will cause vTraceError to be called, which stores an
342	  error message in the trace that is shown when opening the trace file. The
343	  error message can also be retrieved using xTraceGetLastError.
344
345	  It can be wise to start with large values for these constants,
346	  unless you are very confident on these numbers. Then do a recording and
347	  check the actual usage by selecting View menu -> Trace Details ->
348	  Resource Usage -> Object Table.
349
350config PERCEPIO_TRC_CFG_NMESSAGEBUFFER
351	int "Number of Message Buffers"
352	range 1 2048
353	default 5
354	help
355	  These define the capacity of the Object Property Table, i.e., the maximum
356	  number of objects active at any given point, within each object class (e.g.,
357	  task, queue, semaphore, ...).
358
359	  If tasks or other objects are deleted in your system, this
360	  setting does not limit the total amount of objects created, only the number
361	  of objects that have been successfully created but not yet deleted.
362
363	  Using too small values will cause vTraceError to be called, which stores an
364	  error message in the trace that is shown when opening the trace file. The
365	  error message can also be retrieved using xTraceGetLastError.
366
367	  It can be wise to start with large values for these constants,
368	  unless you are very confident on these numbers. Then do a recording and
369	  check the actual usage by selecting View menu -> Trace Details ->
370	  Resource Usage -> Object Table.
371
372config PERCEPIO_TRC_CFG_NAME_LEN_TASK
373	int "Name Length Task"
374	range 1 512
375	default 15
376	help
377	  Macros that specify the maximum lengths (number of characters) for names of
378	  kernel objects, such as tasks and queues. If longer names are used, they will
379	  be truncated when stored in the recorder.
380
381config PERCEPIO_TRC_CFG_NAME_LEN_ISR
382	int "Name Length ISR"
383	range 1 512
384	default 15
385	help
386	  Macros that specify the maximum lengths (number of characters) for names of
387	  kernel objects, such as tasks and queues. If longer names are used, they will
388	  be truncated when stored in the recorder.
389
390config PERCEPIO_TRC_CFG_NAME_LEN_QUEUE
391	int "Name Length Queue"
392	range 1 512
393	default 15
394	help
395	  Macros that specify the maximum lengths (number of characters) for names of
396	  kernel objects, such as tasks and queues. If longer names are used, they will
397	  be truncated when stored in the recorder.
398
399config PERCEPIO_TRC_CFG_NAME_LEN_SEMAPHORE
400	int "Name Length Semaphore"
401	range 1 512
402	default 15
403	help
404	  Macros that specify the maximum lengths (number of characters) for names of
405	  kernel objects, such as tasks and queues. If longer names are used, they will
406	  be truncated when stored in the recorder.
407
408config PERCEPIO_TRC_CFG_NAME_LEN_MUTEX
409	int "Name Length Mutex"
410	range 1 512
411	default 15
412	help
413	  Macros that specify the maximum lengths (number of characters) for names of
414	  kernel objects, such as tasks and queues. If longer names are used, they will
415	  be truncated when stored in the recorder.
416
417config PERCEPIO_TRC_CFG_NAME_LEN_TIMER
418	int "Name Length Timer"
419	range 1 512
420	default 15
421	help
422	  Macros that specify the maximum lengths (number of characters) for names of
423	  kernel objects, such as tasks and queues. If longer names are used, they will
424	  be truncated when stored in the recorder.
425
426config PERCEPIO_TRC_CFG_NAME_LEN_EVENTGROUP
427	int "Name Length Event Group"
428	range 1 512
429	default 15
430	help
431	  Macros that specify the maximum lengths (number of characters) for names of
432	  kernel objects, such as tasks and queues. If longer names are used, they will
433	  be truncated when stored in the recorder.
434
435config PERCEPIO_TRC_CFG_NAME_LEN_STREAMBUFFER
436	int "Name Length Stream Buffer"
437	range 1 512
438	default 15
439	help
440	  Macros that specify the maximum lengths (number of characters) for names of
441	  kernel objects, such as tasks and queues. If longer names are used, they will
442	  be truncated when stored in the recorder.
443
444config PERCEPIO_TRC_CFG_NAME_LEN_MESSAGEBUFFER
445	int "Name Length Message Buffer"
446	range 1 512
447	default 15
448	help
449	  Macros that specify the maximum lengths (number of characters) for names of
450	  kernel objects, such as tasks and queues. If longer names are used, they will
451	  be truncated when stored in the recorder.
452endmenu # "Snapshot Config"
453
454endif # PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT
455
456if PERCEPIO_TRC_RECORDER_MODE_STREAMING
457endif # PERCEPIO_TRC_RECORDER_MODE_STREAMING
458endmenu # "Recorder FreeRTOS"
459