FAQ-SafeRTOS+Trace

>Tag: FAQ-SafeRTOS+Trace

Upgrading the Trace Recorder to v3.1

The improved trace recorder library is the biggest change in Tracealyzer v3.1, at least for FreeRTOS, Micrium and SafeRTOS. We have merged snapshot and streaming support into a single recorder module that support both modes, and improved the API and documentation to make it easier to use. If you are using an older version of the [...]

2018-03-13T10:50:12+00:00November 22nd, 2016|Categories: FAQ|Tags: , , , , , |

How much processor time is used by the recorder?

Software-based tracing always means some processing overhead, where the exact amount is f x e, where f is the average event frequency and e is the average execution time for storing an event. This is very dependent on your application and processor. The more RTOS calls, the larger overhead. The faster processor, the less overhead. Let's put in some [...]

2017-03-10T09:14:40+00:00February 3rd, 2016|Categories: FAQ|Tags: , , |

How does the floating licenses work?

Floating network licenses offer a flexible licensing solution for most development teams. With a floating license, you can install the tool on any number of computers, but the number of concurrent users is limited by the license server. If you need to support more concurrent users, you can extend the license to multiple floating seats. Our [...]

2018-08-16T09:45:21+00:00January 30th, 2015|Categories: FAQ|Tags: , , , , , , |

Got error “uiTraceGetPriorityProperty: Invalid value for id”

If asserts are enabled the recorder configuration (trcConfig.h), this error is generated in uiTraceGetPriorityProperty when a task has an "object handle" value larger than expected. Our FreeRTOS recorder assignes each task an 8-bit "object handle" (the "id" parameter in uiTraceGetPriorityProperty), which should be in the range [1..NTask]. The NTask constant is defined in trcConfig.h and [...]

2014-12-19T12:09:25+00:00December 19th, 2014|Categories: FAQ|Tags: , , |

How to define critical sections for the trace recorder?

Our Tracealyzer versions for microcontroller RTOS uses Percepio's own recorder library, which uses separate definitions for critical sections within the recorder. This since the standard critical sections offered by some RTOS kernels, like portENTER_CRITICAL/portEXIT_CRITICAL in FreeRTOS, might not safe to use from interrupt (kernel) context. Some recorder functions are called both from task-level and interrupt-level [...]

2014-10-28T09:46:11+00:00October 27th, 2014|Categories: FAQ|Tags: , , |

What hardware platforms are supported?

The Tracealyzer support for FreeRTOS, SafeRTOS and Micrium relies on Percepio's own recorder library. This can be used on most processors and contains ports for several common processor families, including: Arm Cortex-M devices, e.g., STM32, NXP LPC series, Renesas Synergy, etc. Arm Cortex-A9 devices, e.g. Xilinx Zynq. Renesas RX600 series Microchip PIC32 series Atmel AVR32 [...]

2018-08-06T15:13:10+00:00October 21st, 2013|Categories: FAQ|Tags: , , |

What debuggers are supported?

(This answer is only applicable for Percepio's own recorder library, used for e.g. FreeRTOS, OpenRTOS, SafeRTOS and Micrium µC/OS) Streaming mode As for v4.1.6, Tracealyzer supports streaming via SEGGER J-Link, IAR I-Jet and Keil ULINKpro/ULINKplus. Streaming is also possible in other ways, e.g. using USB CDC or a network connection. IAR users can find more [...]

2018-08-06T12:09:59+00:00October 20th, 2013|Categories: FAQ|Tags: , , |

How much RAM does the trace recorder need?

(This answer is only applicable for Percepio's own recorder library, used for e.g. FreeRTOS, OpenRTOS, SafeRTOS and Micrium µC/OS) It depends if you are using snapshot or streaming mode. Snapshot mode requires a decent RAM buffer if you want a long trace. A RAM buffer of 5-10 KB can give a trace of 50-200 ms, depending on [...]

2018-08-06T11:46:17+00:00October 19th, 2013|Categories: FAQ|Tags: , , |

How much FLASH does the trace recorder need?

(This answer is only applicable for Percepio's own recorder library, used for e.g. FreeRTOS, OpenRTOS, SafeRTOS and Micrium µC/OS) The below table shows an example, using version 2.5.1 of the recorder library when compiled for ARM Cortex M4 (Atmel SAM4S16C) using ARM GCC v4.7.3. Recorder configuration Compiler optimization Flash usage Basic features -Os (minimum size) [...]

2018-08-06T11:49:26+00:00October 18th, 2013|Categories: FAQ|Tags: , , |

How do I enable tracing of interrupt handlers?

(This answer is only applicable for Percepio's own recorder library, used for e.g. FreeRTOS, OpenRTOS, SafeRTOS and Micrium µC/OS) Interrupt handlers (ISRs) are not recorded by default. To record ISRs, you need to add two calls in the interrupt handlers you wish to record, vTraceStoreISRBegin in the very beginning and vTraceStoreISREnd in the very end. [...]

2018-08-06T11:48:02+00:00October 17th, 2013|Categories: FAQ|Tags: , , |

What does the label “ISR using …” mean?

If you have interrupt handlers using interrupt-level kernel functions, but are not calling vTraceStoreISRBegin and vTraceStoreISREnd, the recorder assumes that the kernel call was made from an interrupt handler, but does not know the identity of the interrupt handler. In this case, the name is set to "ISR using Object", where Object is the queue [...]

2018-08-06T11:22:16+00:00October 15th, 2013|Categories: FAQ|Tags: , , |

How do I set custom names for queues (and other kernel objects), instead of the default names (“Queue #1” etc.)

Use vTraceSetQueueName, vTraceSetSemaphoreName or vTraceSetMutexName, as in the below example: actuatorQ = xQueueCreate(3, sizeof(QueueMessage) ); if (actuatorQ != NULL) { vTraceSetQueueName(actuatorQ, "ActuatorQueue"); // Set the name ... } else { ... // Error handling }

2016-11-08T22:16:48+00:00October 14th, 2013|Categories: FAQ|Tags: , , |