Hey! I am working on Streamline Performance Analyzer for Bare Metal Support.
Generated Barman files (Linear RAM Buffer) for cortex - R7 with 7 PMU counters, compiled them separately with armcc to create a library file.
My project code is also compiling with armcc and to enable the frame pointer, I have used --use_frame_pointer instead of --fno-fomit-frame-pointer as it is used for armclang.
The readings for PMU counters are visible in the timeline view, but the function view, call path view and code view are not showing function names rather only one function row with unknown_code_in_unresolved giving the complete 100% to its execution.
I am using ultimate version for DS-5.v5.28.1 for streamline.
Compiling my code on a different platform. Executing the .axf generated (after compiling) on my target and storing the buffer generated into a .raw file.
Does anyone know what is it that I am doing wrong?
Attached are the function and call path views image.
Hi Anudhi,Thank you for getting in touch. Would it be possible to know the steps that you went through when you generated the barman.c and the barman.h files? As well as where you are putting your instrumentation in your code. The more information we know about your system the better.At the moment the worrying things are that you are only collecting 1 sample for the whole system. Is this expected or another system of your issue?A few more questions that will help us diagnose your issue:How are you sampling are you calling barman_sample_counters or barman_sample_counters_with_program_counter?What arguments do you pass your sampling function?Does you .axf file have symbols?When setting up barman.c and barman.h what did you set your max mmap layout records to?One final thing: If you are using DS-5 Ultimate with a licence you are entitled support and you may get a quicker resolution using those support channels.Hope this helps,Stephen
Hi Stephen,
I have few more questions hoping you have some answer.
Q 1) Different architectures say Cortex R7 shows 44 PMU events and Cortex A55 shows 59 PMU events in Barman Generation Wizard. Does all the architectures have different number of PMU events they can record or same? If same, how can I configure the events that are not listed in the Generation Wizard.
Q 2) The minimum time slot the cross section marker takes is 1 ms, in the timeline view. Is there a way I can see PMU event values less than 1 ms window say for 10 microsecond or 100 microsecond?
Q 3) The functions recorded in the function view are only those functions that were interrupted by the timer interrupt. Say we have four function A(), B(), C() and D(). A() and C() were interrupted by the interrupt hence sampled, so function view shows only the details of A() and C(). But what does call stack in Call Paths view shows? Does it give the information of B() and D() also if they were called from A() or C() ?
Or in call paths view also, only those functions at which the sample is taken are visible and not the complete call stack for that function?
View all questions in Arm Development Studio forum