1# Copyright (c) 2021 Percepio AB 2# SPDX-License-Identifier: Apache-2.0 3 4config PERCEPIO_TRC_CFG_RECORDER_RTOS_FREERTOS 5 bool 6 default n 7 8config PERCEPIO_TRC_CFG_RECORDER_RTOS_THREADX 9 bool 10 default n 11 12config PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 13 bool 14 default n 15 16choice PERCEPIO_TRC_CFG_START_MODE 17 prompt "Recorder Start Mode" 18 default PERCEPIO_TRC_START_MODE_START 19 help 20 TRC_START: Starts the tracing directly. In snapshot mode this allows for 21 starting the trace at any point in your code, assuming vTraceEnable(TRC_INIT) 22 has been called in the startup. 23 Can also be used for streaming without Tracealyzer control, e.g. to a local 24 flash file system (assuming such a "stream port", see trcStreamingPort.h). 25 26 TRC_START_AWAIT_HOST: For streaming mode only. Initializes the trace recorder 27 if necessary and waits for a Start command from Tracealyzer ("Start Recording" 28 button). This call is intentionally blocking! By calling vTraceEnable with 29 this option from the startup code, you start tracing at this point and capture 30 the early events. 31 32 TRC_START_FROM_HOST: Initializes the trace recorder, but does not start the tracing. 33 In snapshot mode, this must be followed by a vTraceEnable(TRC_START) sometime 34 later. 35 36config PERCEPIO_TRC_START_MODE_START 37 bool "Start" 38 39config PERCEPIO_TRC_START_MODE_START_AWAIT_HOST 40 bool "Start Await Host" 41 depends on PERCEPIO_TRC_RECORDER_MODE_STREAMING && !PERCEPIO_TRC_CFG_STREAM_PORT_RINGBUFFER 42 43config PERCEPIO_TRC_START_MODE_START_FROM_HOST 44 bool "Start From Host" 45endchoice 46 47choice PERCEPIO_TRC_CFG_STREAM_PORT 48 prompt "Stream Port" 49 depends on PERCEPIO_TRC_RECORDER_MODE_STREAMING 50 default PERCEPIO_TRC_CFG_STREAM_PORT_RTT 51 52config PERCEPIO_TRC_CFG_STREAM_PORT_RTT 53 bool "RTT" 54 depends on (ARM && PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR) || \ 55 PERCEPIO_TRC_CFG_RECORDER_RTOS_THREADX || \ 56 PERCEPIO_TRC_CFG_RECORDER_RTOS_FREERTOS 57 select USE_SEGGER_RTT if PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 58 59config PERCEPIO_TRC_CFG_STREAM_PORT_ITM 60 bool "ITM" 61 depends on (ARM && PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR) || \ 62 PERCEPIO_TRC_CFG_RECORDER_RTOS_THREADX || \ 63 PERCEPIO_TRC_CFG_RECORDER_RTOS_FREERTOS 64 65config PERCEPIO_TRC_CFG_STREAM_PORT_RINGBUFFER 66 bool "Ring Buffer" 67 68config PERCEPIO_TRC_CFG_STREAM_PORT_FILE 69 bool "File" 70 depends on !PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 71 72config PERCEPIO_TRC_CFG_STREAM_PORT_TCPIP 73 bool "TCP/IP" 74 depends on !PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 75 76config PERCEPIO_TRC_CFG_STREAM_PORT_STM32_USB_CDC 77 bool "STM32 USB CDC" 78 depends on !PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 79endchoice 80 81if PERCEPIO_TRC_CFG_STREAM_PORT_RTT 82rsource "../streamports/Jlink_RTT/Kconfig" 83endif 84if PERCEPIO_TRC_CFG_STREAM_PORT_ITM 85rsource "../streamports/ARM_ITM/Kconfig" 86endif 87if PERCEPIO_TRC_CFG_STREAM_PORT_RINGBUFFER 88rsource "../streamports/RingBuffer/Kconfig" 89endif 90 91choice PERCEPIO_TRC_CFG_RECORDER_BUFFER_ALLOCATION 92 prompt "Recorder Allocation Mode" 93 default PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_STATIC 94 help 95 Specifies how the recorder buffer is allocated (also in case of streaming, in 96 port using the recorders internal temporary buffer) 97 98 Values: 99 PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_STATIC - Static allocation (internal) 100 PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC - Malloc in vTraceEnable 101 PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_CUSTOM - Use vTraceSetRecorderDataBuffer 102 103 Static and dynamic mode does the allocation for you, either in compile time 104 (static) or in runtime (malloc). 105 The custom mode allows you to control how and where the allocation is made, 106 for details see PERCEPIO_TRC_ALLOC_CUSTOM_BUFFER and vTraceSetRecorderDataBuffer(). 107 108config PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_STATIC 109 bool "Static allocation" 110 111config PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC 112 bool "Dynamic allocation" 113 114config PERCEPIO_TRC_RECORDER_BUFFER_ALLOCATION_CUSTOM 115 bool "Custom allocation" 116endchoice 117 118 119menu "Coverage" 120 depends on !PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 121config PERCEPIO_TRC_CFG_SCHEDULING_ONLY 122 bool "Only Record Scheduling Events" 123 default n 124 125config PERCEPIO_TRC_CFG_INCLUDE_MEMMANG_EVENTS 126 bool "Trace Memory Management Events" 127 depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY 128 default y 129 help 130 This controls if malloc and free calls should be traced. Disable this to exclude 131 malloc/free calls, or enable it to include such events in the trace. 132 133config PERCEPIO_TRC_CFG_INCLUDE_USER_EVENTS 134 bool "Trace User Events" 135 depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY 136 default y 137 help 138 If this is disabled, all code related to User Events is excluded in order 139 to reduce code size. Any attempts to store User Events are then silently 140 ignored. 141 142 User Events are application-generated events, like "printf" but for the 143 trace log, generated using vTracePrint and vTracePrintF. 144 The formatting is done on host-side, by Tracealyzer. User Events are 145 therefore much faster than a console printf and can often be used 146 in timing critical code without problems. 147 148 Note: In streaming mode, User Events are used to provide error messages 149 and warnings from the recorder (in case of incorrect configuration) for 150 display in Tracealyzer. Disabling user events will also disable these 151 warnings. You can however still catch them by calling xTraceGetLastError 152 or by putting breakpoints in prvTraceError and prvTraceWarning. 153 154config PERCEPIO_TRC_CFG_INCLUDE_ISR_TRACING 155 bool "Trace ISR Events" 156 depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY 157 default y 158 help 159 If this is disabled, the code for recording Interrupt Service Routines is 160 excluded, in order to reduce code size. This means that any calls to 161 vTraceStoreISRBegin/vTraceStoreISREnd will be ignored. 162 This does not completely disable ISR tracing, in cases where an ISR is 163 calling a traced kernel service. These events will still be recorded and 164 show up in anonymous ISR instances in Tracealyzer, with names such as 165 "ISR sending to <queue name>". 166 To disable such tracing, please refer to vTraceSetFilterGroup and vTraceSetFilterMask. 167 168config PERCEPIO_TRC_CFG_INCLUDE_READY_EVENTS 169 bool "Trace Task Ready Events" 170 depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY 171 default y 172 help 173 If enabled, events are recorded when tasks enter scheduling state "ready". 174 This allows Tracealyzer to show the initial pending time before tasks enter 175 the execution state, and present accurate response times. 176 If disabled, "ready events" are not created, which allows for recording 177 longer traces in the same amount of RAM. 178 179config PERCEPIO_TRC_CFG_INCLUDE_OSTICK_EVENTS 180 bool "Trace OS Tick Events" 181 depends on !PERCEPIO_TRC_CFG_SCHEDULING_ONLY 182 default y 183 help 184 If this is enabled, events will be generated whenever the OS clock is 185 increased. If disabled, OS tick events are not generated, which allows for 186 recording longer traces in the same amount of RAM. 187endmenu 188 189 190menu "Control Task" 191config PERCEPIO_TRC_CFG_CTRL_TASK_PRIORITY 192 int "Control Task Priority" 193 range 0 32 if PERCEPIO_TRC_CFG_RECORDER_RTOS_FREERTOS || PERCEPIO_TRC_CFG_RECORDER_RTOS_THREADX 194 range -32 32 if PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 195 default 4 196 help 197 In streaming mode, TzCtrl is used to receive start/stop commands from 198 Tracealyzer and in some cases also to transmit the trace data (for stream 199 ports that uses the internal buffer, like TCP/IP). For such stream ports, 200 make sure the TzCtrl priority is high enough to ensure reliable periodic 201 execution and transfer of the data, but low enough to avoid disturbing any 202 time-sensitive functions. 203 204 In Snapshot mode, TzCtrl is only used for the stack usage monitoring and is 205 not created if stack monitoring is disabled. PERCEPIO_TRC_CFG_CTRL_TASK_PRIORITY should 206 be low, to avoid disturbing any time-sensitive tasks. 207 208config PERCEPIO_TRC_CFG_CTRL_TASK_DELAY 209 int "Control Task Delay" 210 range 1 1000000000 211 default 10 212 help 213 The delay between loops of the TzCtrl task (see PERCEPIO_TRC_CFG_CTRL_TASK_PRIORITY), 214 which affects the frequency of the stack monitoring. 215 216 In streaming mode, this also affects the trace data transfer if you are using 217 a stream port leveraging the internal buffer (like TCP/IP). A shorter delay 218 increases the CPU load of TzCtrl somewhat, but may improve the performance of 219 of the trace streaming, especially if the trace buffer is small. 220 221config PERCEPIO_TRC_CFG_CTRL_TASK_STACK_SIZE 222 int "Control Task Stack Size" 223 range 1 1048576 224 default 256 225 help 226 The stack size of the Tracealyzer Control (TzCtrl) task. 227 See PERCEPIO_TRC_CFG_CTRL_TASK_PRIORITY for further information about TzCtrl. 228endmenu 229 230menuconfig PERCEPIO_TRC_CFG_ENABLE_STACK_MONITOR 231 bool "Stack Monitor" 232 select TRACING_STACK if PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 233 select THREAD_STACK_INFO if PERCEPIO_TRC_CFG_RECORDER_RTOS_ZEPHYR 234 default y 235 help 236 If enabled (1), the recorder periodically reports the unused stack space of 237 all active tasks. The stack monitoring runs in the Tracealyzer Control task, 238 TzCtrl. This task is always created by the recorder when in streaming mode. 239 In snapshot mode, the TzCtrl task is only used for stack monitoring and is 240 not created unless this is enabled. 241 242if PERCEPIO_TRC_CFG_ENABLE_STACK_MONITOR 243 244config PERCEPIO_TRC_CFG_STACK_MONITOR_MAX_TASKS 245 int "Stack Monitor Max Tasks" 246 range 1 64 247 default 15 248 help 249 This controls how many tasks that can be monitored by the stack monitor. 250 If this is too small, some tasks will be excluded and a warning is shown. 251 252config PERCEPIO_TRC_CFG_STACK_MONITOR_MAX_REPORTS 253 int "Stack Monitor Max Reports" 254 range 1 64 255 default 1 256 help 257 This defines how many tasks that will be subject to stack usage analysis for 258 each execution of the Tracealyzer Control task (TzCtrl). Note that the stack 259 monitoring cycles between the tasks, so this does not affect WHICH tasks that 260 are monitored, but HOW OFTEN each task stack is analyzed. 261 262 This setting can be combined with PERCEPIO_TRC_CFG_CTRL_TASK_DELAY to tune the 263 frequency of the stack monitoring. This is motivated since the stack analysis 264 can take some time to execute. 265 However, note that the stack analysis runs in a separate task (TzCtrl) that 266 can be executed on low priority. This way, you can avoid that the stack 267 analysis disturbs any time-sensitive tasks. 268 269endif # PERCEPIO_TRC_CFG_ENABLE_STACK_MONITOR 270 271 272menu "ISR" 273config PERCEPIO_TRC_CFG_MAX_ISR_NESTING 274 int "Max ISR Nesting" 275 range 1 1048576 276 default 8 277 help 278 Defines how many levels of interrupt nesting the recorder can handle, in 279 case multiple ISRs are traced and ISR nesting is possible. If this 280 is exceeded, the particular ISR will not be traced and the recorder then 281 logs an error message. This setting is used to allocate an internal stack 282 for keeping track of the previous execution context (4 byte per entry). 283 284config PERCEPIO_TRC_CFG_ISR_TAILCHAINING_THRESHOLD 285 int "ISR Tailchaining Threshold" 286 range 0 4194304 287 default 0 288 help 289 If tracing multiple ISRs, this setting allows for accurate display of the 290 context-switching also in cases when the ISRs execute in direct sequence. 291 292 vTraceStoreISREnd normally assumes that the ISR returns to the previous 293 context, i.e., a task or a preempted ISR. But if another traced ISR 294 executes in direct sequence, Tracealyzer may incorrectly display a minimal 295 fragment of the previous context in between the ISRs. 296 297 By using PERCEPIO_TRC_CFG_ISR_TAILCHAINING_THRESHOLD you can avoid this. This is 298 however a threshold value that must be measured for your specific setup. 299 See http://percepio.com/2014/03/21/isr_tailchaining_threshold/ 300 301 The default setting is 0, meaning "disabled" and that you may get an 302 extra fragments of the previous context in between tail-chained ISRs. 303endmenu 304 305 306menu "Debug" 307config PERCEPIO_TRC_CFG_RECORDER_DATA_INIT 308 int "Data Init" 309 default 1 310 help 311 Macro that states wether the recorder data should have an initial value. 312 313 In very specific cases where traced objects are created before main(), 314 the recorder will need to be started even before that. In these cases, 315 the recorder data would be initialized by xTraceInitialize() but could 316 then later be overwritten by the initialization value. 317 If this is an issue for you, set PERCEPIO_TRC_CFG_RECORDER_DATA_INIT to 0. 318 The following code can then be used before any traced objects are created: 319 320 extern uint32_t RecorderEnabled; 321 RecorderEnabled = 0; 322 xTraceInitialize(); 323 324 After the clocks are properly initialized, use vTraceEnable(...) to start 325 the tracing. 326 327config PERCEPIO_TRC_CFG_USE_TRACE_ASSERT 328 bool "Trace Asserts" 329 default n 330 help 331 Enable or disable debug asserts. Information regarding any assert that is 332 triggered will be in trcAssert.c. 333endmenu 334 335 336if PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT 337 338menu "Snapshot Config" 339choice PERCEPIO_TRC_CFG_SNAPSHOT_MODE 340 prompt "Snapshot Mode" 341 default PERCEPIO_TRC_SNAPSHOT_MODE_RING_BUFFER 342 help 343 With PERCEPIO_TRC_CFG_SNAPSHOT_MODE set to PERCEPIO_TRC_CFG_SNAPSHOT_MODE_RING_BUFFER, the 344 events are stored in a ring buffer, i.e., where the oldest events are 345 overwritten when the buffer becomes full. This allows you to get the last 346 events leading up to an interesting state, e.g., an error, without having 347 to store the whole run since startup. 348 349 When PERCEPIO_TRC_CFG_SNAPSHOT is PERCEPIO_TRC_SNAPSHOT_MODE_STOP_WHEN_FULL, the 350 recording is stopped when the buffer becomes full. This is useful for 351 recording events following a specific state, e.g., the startup sequence. 352 353config PERCEPIO_TRC_SNAPSHOT_MODE_RING_BUFFER 354 bool "Ring buffer mode" 355 356config PERCEPIO_TRC_SNAPSHOT_MODE_RING_STOP_WHEN_FULL 357 bool "Stop when full" 358endchoice 359 360config PERCEPIO_TRC_CFG_EVENT_BUFFER_SIZE 361 int "Event Buffer Size" 362 range 1 4194304 363 default 1000 364 help 365 This defines the capacity of the event buffer, i.e., the number of records 366 it may store. Most events use one record (4 byte), although some events 367 require multiple 4-byte records. You should adjust this to the amount of RAM 368 available in the target system. 369 370 Default value is 1000, which means that 4000 bytes is allocated for the 371 event buffer. 372 373config PERCEPIO_TRC_CFG_INCLUDE_FLOAT_SUPPORT 374 bool "Include Float Support" 375 default 0 376 help 377 If this is zero (0), the support for logging floating point values in 378 vTracePrintF is stripped out, in case floating point values are not used or 379 supported by the platform used. 380 381 Floating point values are only used in vTracePrintF and its subroutines, to 382 allow for storing float (%f) or double (%lf) arguments. 383 384 vTracePrintF can be used with integer and string arguments in either case. 385 386config PERCEPIO_TRC_CFG_SYMBOL_TABLE_SIZE 387 int "Symbol Table Size" 388 range 1 4194304 389 default 800 390 help 391 This defines the capacity of the symbol table, in bytes. This symbol table 392 stores User Event labels and names of deleted tasks, queues, or other kernel 393 objects. If you don't use User Events or delete any kernel 394 objects you set this to a very low value. The minimum recommended value is 4. 395 A size of zero (0) is not allowed since a zero-sized array may result in a 396 32-bit pointer, i.e., using 4 bytes rather than 0. 397 398menu "Advanced Settings" 399config PERCEPIO_TRC_CFG_HEAP_SIZE_BELOW_16M 400 bool "Heap Size Below 16M" 401 default n 402 help 403 An integer constant that can be used to reduce the buffer usage of memory 404 allocation events (malloc/free). This value should be 1 if the heap size is 405 below 16 MB (2^24 byte), and you can live with reported addresses showing the 406 lower 24 bits only. If set to 0, you get the full 32-bit addresses. 407 408config PERCEPIO_TRC_CFG_USE_IMPLICIT_IFE_RULES 409 bool "Use Implicit IFE Rules" 410 default y 411 help 412 Tracealyzer groups the events into "instances" based on Instance Finish 413 Events (IFEs), produced either by default rules or calls to the recorder 414 functions vTraceInstanceFinishedNow and vTraceInstanceFinishedNext. 415 416 If PERCEPIO_TRC_CFG_USE_IMPLICIT_IFE_RULES is one (1), the default IFE rules are 417 used, resulting in a "typical" grouping of events into instances. 418 If these rules don't give appropriate instances in your case, you can 419 override the default rules using vTraceInstanceFinishedNow/Next for one 420 or several tasks. The default IFE rules are then disabled for those tasks. 421 422 If PERCEPIO_TRC_CFG_USE_IMPLICIT_IFE_RULES is zero (0), the implicit IFE rules are 423 disabled globally. You must then call vTraceInstanceFinishedNow or 424 vTraceInstanceFinishedNext to manually group the events into instances, 425 otherwise the tasks will appear a single long instance. 426 427 The default IFE rules count the following events as "instance finished": 428 - Task delay, delay until 429 - Task suspend 430 - Blocking on "input" operations, i.e., when the task is waiting for the 431 next a message/signal/event. But only if this event is blocking. 432 433config PERCEPIO_TRC_CFG_USE_16BIT_OBJECT_HANDLES 434 bool "Use 16 Bit Object Handles" 435 default n 436 help 437 If set to 0 (zero), the recorder uses 8-bit handles to identify kernel 438 objects such as tasks and queues. This limits the supported number of 439 concurrently active objects to 255 of each type (tasks, queues, mutexes, 440 etc.) Note: 255, not 256, since handle 0 is reserved. 441 442 If set to 1 (one), the recorder uses 16-bit handles to identify kernel 443 objects such as tasks and queues. This limits the supported number of 444 concurrent objects to 65535 of each type (object class). However, since the 445 object property table is limited to 64 KB, the practical limit is about 446 3000 objects in total. 447 448 Default is 0 (8-bit handles) 449 450 NOTE: An object with handle above 255 will use an extra 4-byte record in 451 the event buffer whenever the object is referenced. Moreover, some internal 452 tables in the recorder gets slightly larger when using 16-bit handles. 453 454config PERCEPIO_TRC_CFG_USE_SEPARATE_USER_EVENT_BUFFER 455 bool "Use Separate User Event Buffer" 456 default n 457 help 458 Set PERCEPIO_TRC_CFG_USE_SEPARATE_USER_EVENT_BUFFER to 1 to enable the 459 separate user event buffer (UB). 460 In this mode, user events are stored separately from other events, 461 e.g., RTOS events. Thereby you can get a much longer history of 462 user events as they don't need to share the buffer space with more 463 frequent events. 464 465 The UB is typically used with the snapshot ring-buffer mode, so the 466 recording can continue when the main buffer gets full. And since the 467 main buffer then overwrites the earliest events, Tracealyzer displays 468 "Unknown Actor" instead of task scheduling for periods with UB data only. 469 470 In UB mode, user events are structured as UB channels, which contains 471 a channel name and a default format string. Register a UB channel using 472 xTraceRegisterUBChannel. 473 474 Events and data arguments are written using vTraceUBEvent and 475 vTraceUBData. They are designed to provide efficient logging of 476 repeating events, using the same format string within each channel. 477 478 Examples: 479 traceString chn1 = xTraceRegisterString("Channel 1"); 480 traceString fmt1 = xTraceRegisterString("Event!"); 481 traceUBChannel UBCh1 = xTraceRegisterUBChannel(chn1, fmt1); 482 483 traceString chn2 = xTraceRegisterString("Channel 2"); 484 traceString fmt2 = xTraceRegisterString("X: %d, Y: %d"); 485 traceUBChannel UBCh2 = xTraceRegisterUBChannel(chn2, fmt2); 486 487 // Result in "[Channel 1] Event!" 488 vTraceUBEvent(UBCh1); 489 490 // Result in "[Channel 2] X: 23, Y: 19" 491 vTraceUBData(UBCh2, 23, 19); 492 493 You can also use the other user event functions, like vTracePrintF. 494 as they are then rerouted to the UB instead of the main event buffer. 495 vTracePrintF then looks up the correct UB channel based on the 496 provided channel name and format string, or creates a new UB channel 497 if no match is found. The format string should therefore not contain 498 "random" messages but mainly format specifiers. Random strings should 499 be stored using %s and with the string as an argument. 500 501 // Creates a new UB channel ("Channel 2", "%Z: %d") 502 vTracePrintF(chn2, "%Z: %d", value1); 503 504 // Finds the existing UB channel 505 vTracePrintF(chn2, "%Z: %d", value2); 506 507config PERCEPIO_TRC_CFG_SEPARATE_USER_EVENT_BUFFER_SIZE 508 int "Separate User Event Buffer Size" 509 depends on PERCEPIO_TRC_CFG_USE_SEPARATE_USER_EVENT_BUFFER 510 range 1 4194304 511 default 200 512 help 513 This defines the capacity of the user event buffer (UB), in number of slots. 514 A single user event can use multiple slots, depending on its arguments. 515 516config PERCEPIO_TRC_CFG_UB_CHANNELS 517 int "User Event Buffer Channels" 518 depends on PERCEPIO_TRC_CFG_USE_SEPARATE_USER_EVENT_BUFFER 519 range 0 4194304 520 default 32 521 help 522 This defines the number of User Event Buffer Channels (UB channels). 523 These are used to structure the events when using the separate user 524 event buffer, and contains both a User Event Channel (the name) and 525 a default format string for the channel. 526endmenu # "Advanced Settings" 527endmenu # "Snapshot Config" 528 529endif # PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT 530 531 532if PERCEPIO_TRC_RECORDER_MODE_STREAMING 533 534menu "Streaming Config" 535config PERCEPIO_TRC_CFG_ENTRY_SLOTS 536 int "Entry Slots" 537 range 1 4194304 538 default 50 539 help 540 The maximum number of objects and symbols that can be stored. This includes: 541 - Task names 542 - Named ISRs (vTraceSetISRProperties) 543 - Named kernel objects (vTraceStoreKernelObjectName) 544 - User event channels (xTraceStringRegister) 545 546 If this value is too small, not all symbol names will be stored and the 547 trace display will be affected. In that case, there will be warnings 548 (logged as User Events) from the TzCtrl task, which monitors this. 549 550config PERCEPIO_TRC_CFG_ENTRY_SYMBOL_MAX_LENGTH 551 int "Symbol Max Length" 552 range 1 4194304 553 default 32 554 help 555 The maximum length of symbol names, including: 556 - Task names 557 - Named ISRs (vTraceSetISRProperties) 558 - Named kernel objects (vTraceStoreKernelObjectName) 559 - User event channel names (xTraceStringRegister) 560 561 If longer symbol names are used, they will be truncated by the recorder, 562 which will affect the trace display. In that case, there will be warnings 563 (logged as User Events) from the TzCtrl task, which monitors this. 564endmenu # "Streaming Config" 565 566endif # PERCEPIO_TRC_RECORDER_MODE_STREAMING 567