cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
bensaad.adel
Observer
Observer
6,572 Views
Registered: ‎11-09-2009

Performance profiling of MicroBlaze !!!

After profiling my program, i get the folowing result:

 

Flat profile:

Each sample counts as 0.0001 seconds.
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
40.37 7.20 7.20 XUartLite_SendByte
36.96 13.79 6.59 __do_global_ctors_aux
5.59 14.79 1.00 __umodsi3
5.52 15.77 0.99 __udivsi3
4.09 16.50 0.73 outnum
3.72 17.17 0.66 xil_printf
1.86 17.50 0.33 main
0.62 17.61 0.11 padding
0.60 17.72 0.11 outbyte
0.23 17.76 0.04 end_len
0.14 17.78 0.02 len_loop
0.13 17.81 0.02 microblaze_register_handler
0.07 17.82 0.01 getnum
0.03 17.82 0.01 check_alignment
0.02 17.83 0.00 done_len
0.02 17.83 0.00 exit
0.02 17.83 0.00 strlen
0.01 17.84 0.00 align_arg
0.00 17.84 0.00 1 0.00 0.00 __fini

Using the code-profiling information, I have discovered why the design is running so slowly. Perhaps unsurprisingly for my simple design, the slowest operation in the code is the “XUartLite_SendByte”.

We can see that the function called “XUartLite_SendByte” is consuming over 40.37% of the processor's time during the execution of the software application. communication with UARTLITE is done with the folowing code:


for(lig=0; lig<512; lig++)
{xil_printf("\n");
for(col=0; col<512; col++)
xil_printf("%d ", img_dest[lig][col]);
}

i'm working with the Spartan-3 XC3S200... and EDK 10.1...

i used the folowing configuration for the my XPS peripheral and hyperterminal:

  •  baud rate 9600
  •  data bits 8
  •  parity NON
how can i improve the time execution of my program?
0 Kudos
8 Replies
bensaad.adel
Observer
Observer
6,548 Views
Registered: ‎11-09-2009

there is no one to reply ???!!!

Any help would be greatly appreciated.

Any advice or recommendations are welcome !

 

Adel

0 Kudos
goran
Xilinx Employee
Xilinx Employee
6,528 Views
Registered: ‎08-06-2007

Hi,

 

Minimize all printing on the UART and set the baudrate to something like 115200 or remove all printing while profiling.

 

Göran

Message Edited by goran_bilski on 03-23-2010 10:00 AM
0 Kudos
shogan
Xilinx Employee
Xilinx Employee
6,511 Views
Registered: ‎12-01-2007

Are you using interrupts?
0 Kudos
bensaad.adel
Observer
Observer
6,505 Views
Registered: ‎11-09-2009

Thanx Göran !!!

i can not minimise printing on the UART, but I will try to change the baudrate

 

Thanx Shogan!!!

Yes I'm using interrupts!

0 Kudos
wmichelsen
Visitor
Visitor
3,247 Views
Registered: ‎09-12-2016

This topic title is pertinent, although my problem is different.  But, before I create a new topic, I thought I'd try here first.

I am developing a bit of embedded SW on a MicroBlaze build on a KU60 using Xilinx SDK 2015.4.  I need to measure the performance of some sections, or maybe profile it all.  I've been searching for proper tools, with no success:

If I try the test code from the SDK Users Guide:
   #include "xtime_l.h"
   XTime start, end;
   ...
I get compile errors:
   fatal error: xtime_l.h: No such file or directory

If I enable profiling:
   (ie. ProjectProperties:Settings:MicroBlaze g++ compiler:Enable Profiling (-pg) ),
I get a linker error:
   ld.exe: cannot find -lxilprofile

I assume it's user error (me) and I'm missing something.  But, I don't know what.  I think all I need is a very small example code with the correct includes or linked libraries, for use of timers.  Help??

Thanks,
Wayne

0 Kudos
htsvn
Xilinx Employee
Xilinx Employee
3,240 Views
Registered: ‎08-02-2007

hi,

 

there is an example design available in this document which talks about profiling in Microblaze.

http://www.xilinx.com/support/documentation/boards_and_kits/ug915-axi-interface-kc705-microblaze-software-tutorial.pdf

 

You need to have a axi timer to be included in the HW of your design to do profiling.

 

--hs

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
wmichelsen
Visitor
Visitor
3,230 Views
Registered: ‎09-12-2016

Thanks htsvn. I'll try out the tutorial and report back.
0 Kudos
htsvn
Xilinx Employee
Xilinx Employee
3,217 Views
Registered: ‎08-02-2007

hi,

 

if you have any further new questions please feel free to create a new thread.

 

--hs

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos