Profiling in Arm Development Studio - with FVP

Hello,

I'm using ARM Development studio 2023.1, for now I'm running the 30 day trial version. After running and debugging Arm FVP - MPS2_Cortex_M7 as target, I now want to profile it. I read about streamline but I cannot find the option for profiling. Can someone please guide me for this? 

Thanks,

Shri

Parents
  • Hi

    My name is Stephen and I work at Arm.

    For profiling Cortex-M7, there are two options:

    1) Use Streamline for Bare-metal:

    developer.arm.com/.../0809

    For Streamline profiling with an RTOS, see

    community.arm.com/.../analyzing-rtos-based-systems-performance-using-streamline

    2) Use the Cortex-M7's built-in cycle-counter DWT_CYCCNT register
    Simply read DWT_CYCCNT at the start and at the end of the block of code of interest, and calculating the difference in the two values.  This can be done either programmatically within your code (DWT_CYCCNT is a memory-mapped register) or by using the debugger to read DWT_CYCCNT at two breakpoints.

    Alternatively, the processor can use its SysTick function to measure elapsed cycle counts.  See:

    developer.arm.com/.../

    In both cases, please note that the FVP is not cycle accurate, and so do not use this for exact results, but could be a useful first order approximation.  For accurate results, you must profile on real hardware.

    Hope this helps

    Stephen

Reply
  • Hi

    My name is Stephen and I work at Arm.

    For profiling Cortex-M7, there are two options:

    1) Use Streamline for Bare-metal:

    developer.arm.com/.../0809

    For Streamline profiling with an RTOS, see

    community.arm.com/.../analyzing-rtos-based-systems-performance-using-streamline

    2) Use the Cortex-M7's built-in cycle-counter DWT_CYCCNT register
    Simply read DWT_CYCCNT at the start and at the end of the block of code of interest, and calculating the difference in the two values.  This can be done either programmatically within your code (DWT_CYCCNT is a memory-mapped register) or by using the debugger to read DWT_CYCCNT at two breakpoints.

    Alternatively, the processor can use its SysTick function to measure elapsed cycle counts.  See:

    developer.arm.com/.../

    In both cases, please note that the FVP is not cycle accurate, and so do not use this for exact results, but could be a useful first order approximation.  For accurate results, you must profile on real hardware.

    Hope this helps

    Stephen

Children