Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Real time embedded FreeRTOS mailing list 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT Training




Loading

FreeRTOS+TRACE

Posted by owaisfazal on February 14, 2014

General information regarding the TRACE feature of FreeRTOS:

When using FreeRTOS+TRACE I noticed that the run time behavior as represented graphically is limited to a certain time interval after which it stops. What is the total time duration of the TRACE?

Does running the TRACE feature by using vTraceInitTraceData() and uiTraceStart() macros affect the overall performance of FreeRTOS?

Regards, Owais.


FreeRTOS+TRACE

Posted by rtel on February 14, 2014

The amount of time you can trace depends on the amount of RAM you allocate to the trace buffer.

You can use the trace buffer to capture a trace and then stop when it is full, or you can use it as a circular buffer - in which case it will run continuously, over writting the oldest data. The circular buffer method is normal for debugging (as you can capture the activity prior to an event of interest, and the event of interest can be used to stop the trace), the single buffer is normal for optimisation.

Yes - the tracing runs as macros, so there is more code to run, and therefore it does impact the run time of functions.

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on February 14, 2014

Thank you for your prompt response.

How can I use the RAM allocated for the tracing buffer to be used as a circular buffer and where is this setting defined?

Regards.


FreeRTOS+TRACE

Posted by rtel on February 14, 2014

Look in your trcConfig.h header file - there are lots of settings to play with in there. In this case the one you are looking for is:

define TRACERECORDERSTORE_MODE

which should be set to TRACESTOREMODERINGBUFFER

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on February 14, 2014

Okay got it thank you very much.

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on February 27, 2014

Hello, I am having an error while trying to read trace via FreeRTOS+TRACE. The message goes as follows: Failed to load trace: Incomplete trace data (ended early). Increase range of the RAM dump!

Could someone please tell me how to increase the RAM dump. Regards, Owais


FreeRTOS+TRACE

Posted by rtel on February 27, 2014

This is set in the trcconfig.h header file but your issue could be due to a mismatch of versions. If you are using FreeRTOS v8 then please also ensure you are using the latest version of FreeRTOS+Trace.

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on February 27, 2014

The issue is infact related to the configuration in trcconfig.h as I was able to get a trace earlier without any problem with the same version of FreeRTOS and FreeRTOS+TRACE. I have tried changing the event buffer siye to 6000 and symbol table size to 600 but still the same error pops up. is there anything else that I can do to fix it?

I am running FreeRTOS version 7.3 and currently I have 9 tasks running including Ethernet CAN UART SPI Timer Counter some blinking LEDs. Each task is running properly with 500 stack size dedicated to each.

Could it be that there is not enough space for TRACE? Please let me know.

Regards, Owais.


FreeRTOS+TRACE

Posted by rtel on February 27, 2014

How are you obtaining the RAM buffer? Are you manually specifying a length, and if so have you tried increasing the length? Try setting the length to a much higher value than you think is necessary because the tool should automatically find the start and end of the valid data within the memory you obtain.

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on February 27, 2014

I am not obtaining the buffer rather I am using the FreeRTOS+TRACE tool to capture the trace. It was working properly until I added the Ethernet task after which as soon as I click on read trace in FreeRTOS+TRACE the message pops "Failed to load trace: Incomplete trace data (ended early). Increase range of the RAM dump!". I have tried increasing the EventBufferSize defined in trcconfig.h to 6000 it cannot exceed 6980 previously it was defined as 4000. I have also tried to increase the SymbolTableSize also defined in trcconfig.h to 600 previously defined as 400 but no use. Any more suggestions?

Regards, Owais.


FreeRTOS+TRACE

Posted by rtel on February 27, 2014

It could be possible that something in the Ethernet or driver is corrupting the trace data buffer. It might be worth sending the log file to Percepio's support address to see if they can diagnose the problem.

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on February 28, 2014

Okay thank you, where exactly can I get the log file? Moreover, it might be worth mentioning that I am using Atmel SAM3X and the debugger is Atmel SAM-ICE. The debugger is set to read the trace starting from the address 0x20000000 and the bytes to read are 0x10000. Should these setting be changed?

Regards, Owais.


FreeRTOS+TRACE

Posted by rtel on February 28, 2014

Sorry I was not very clear in my last post - I was replying form my cell phone so it was not easy. I was meaning to send the RAM dump to Percepio not the log file, so the file you are trying to open when it says it cannot find the end of the trace.

Normally when I extract the trace file from the target I do it manually and use the address of the structure that contains the trace buffer as the start address. If this is placed at 0x200000000 then using that value should be fine. Also, if the trace buffer just happens to be between 0x200000000 and 0x20010000 then you values will be fine. If the trace buffer is not between those values then the tool will be correct in saying it can't find the data in the file you are providing it.

Regards.


FreeRTOS+TRACE

Posted by owaisfazal on September 23, 2014

Hello, Is it possible to see the exact execution time for a particular task in the Control-Flow Trace window? Since it just shows different tasks running and does not present more information as the older version of Percepio Trace used to do. Regards


FreeRTOS+TRACE

Posted by johankraft on September 23, 2014

Hello Owais, You are refering to the integrated "Percepio Trace" in Atmel Studio, right? This was developed for Atmel specifically, and is NOT intended as a replacement for FreeRTOS+Trace. There are some similar functions, but Percepio Trace has a quite different feature set compared to FreeRTOS+Trace and our other Tracealyzer products.

Best Regards Johan Kraft Percepio AB


FreeRTOS+TRACE

Posted by owaisfazal on September 23, 2014

Thank you for your prompt response. Yes I am talking about the integrated Trace feature in Atmel Studio 6.2. So that means that unlike FreeRTOS+TRACE the integrated trace feature is not capable of displaying execution time and other information related to tasks? Is it possible to use the FreeRTOS+TRACE with FreeRTOS v8? What would you suggest would be a good way to measure the execution time of a task? Also in the Tutorial video of integrated trace named "Atmel: Debugging on Studio 6.2 with Percepio Trace" I can see that there is a function used to print out information in the Control-Flow Trace window. The function is called SWOprintstring where can I find it?

Regards.


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.


Free TCP/IP and file system demos for the RTOS


Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists