UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
255 Views
Registered: ‎10-15-2019

Microblaze FreeRTOS and the Trace Session Manager

Hi, I'm new to Microblaze but I've used FreeRTOS on a number of occasions. One of the benefits of the RTOS is the ablility to hook into the event tracing capability of the host IDE. I've looked at a number of sources on assessing performance with the Xilinx SDK and FreeRTOS and they state that I should be able to see the debugger connection in the "Trace Session Manager" (TSM) window of SDK. I've enabled tracing in the BSP but I see nothing in the TSM window. Does anyone have any practical experience of profiling/tracing a FreeRTOS application on a Microblaze to the point of assessing context switching and execution times (not performance)? In the past I've used Timedoctor (sourceForge.net/projects/timedoctor) to tap into the FreeRTOS trace support but I'd prefer to use something that's native to Xilinx/SDK.

Thanks in advance - Dave

0 Kudos
5 Replies
Xilinx Employee
Xilinx Employee
242 Views
Registered: ‎10-21-2010

Re: Microblaze FreeRTOS and the Trace Session Manager

198 Views
Registered: ‎10-15-2019

Re: Microblaze FreeRTOS and the Trace Session Manager

Thanks Sadanan, I'll give this example a try.

Regards, Dave

0 Kudos
191 Views
Registered: ‎10-15-2019

Re: Microblaze FreeRTOS and the Trace Session Manager

Hi Sadanan,

I followed the article to the letter and I did see "System Debugger using Debug_freertos.elf on local" in the Trace Session Manager window - before the window was blank. Unfortunately I couldn't start the trace process off as the "play" button and the context menu were both greyed out. I did see somwhere that GDB needs to be used for this to work correctly but when I used GDB I saw the same behaviour.

Are there any example projects that I can import (I'm using Vivado 2019.1 and running on a Kintex-7 KC705 development kit)? I can refactor my project to run bare-metal - is there any way I can "hijack" the trace capability of the Microblaze/SDK to give me a profile/througput/timing assessment through my adding "start" and "stop" events around function calls of interest?

Thanks for your support.

Regards, Dave

0 Kudos
Xilinx Employee
Xilinx Employee
155 Views
Registered: ‎10-21-2010

Re: Microblaze FreeRTOS and the Trace Session Manager

Hi Dave,

Since you talked about FreeRTOS trace hooks, I assumed that you were interested in event trace thru CoreSight STM. This trace view can only provide a timeline of FreeRTOS OS events (ex. task created/suspended/deleted, etc.)

If you are looking for profiling your code, you may want to consider gprof and TCF based profiling. gprof is intrusive, and is supported only thru GDB debug. TCF trace is non-intrusive, unless you want enable stack tracing. Both these methods profile the entire code - there is no provison to start/stop tracing for specific functions. See the links below for additional details

https://www.xilinx.com/html_docs/xilinx2019_1/SDK_Doc/SDK_tasks/task_profilingtheapplication.html

https://www.xilinx.com/html_docs/xilinx2019_1/SDK_Doc/SDK_tasks/sdk_t_tcf_profiling_with_tcf_debugger.html

0 Kudos
145 Views
Registered: ‎10-15-2019

Re: Microblaze FreeRTOS and the Trace Session Manager

Thanks Sadanan, I'll give TCF tracing a go.

Regards, Dave

0 Kudos