[SOLVED] Profiling CortexM0 with Ozone

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] Profiling CortexM0 with Ozone

    Is "Code Profiling" with Ozone possible when the target is a ARM CortexM0 (which lacks SWV/SWO, and if I understand correctly, the ITM module)?
    Ozone happily opens the "Code Profile" window for me, but no execution statistics seem to be collected.
  • Hello,

    Thank you for your inquiry.
    Cortex-M0 devices unfortunately lack any kind of hardware tracing capability. That is why nothing happens in Ozone.
    Optional trace features are implemented in Cortex-M0+ and higher.

    Nonetheless we provide SEGGER RTT as an I/O terminal that can be used for advanced debugging techniques and code analysis.
    segger.com/products/debug-prob…about-real-time-transfer/

    Our free tool SystemView utilizes that RTT buffer and enables software tracing even on Cortex-M0 that way:
    segger.com/products/development-tools/systemview/


    So maybe that would be an option for you?


    Best regards,

    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi,
    thanks for confirming this.
    I looked into SystemView and RTT. If I understand correctly, I can get coarse-grained function execution times recorded with it, but only if I manually instrument the source code of the functions to monitor?

    While reading up on all this, I bumped into the Data Watchpoint Trigger (DWT) module which is an optional but implemented feature, (since I am on a STM32F0). But this thread Enable PC-Sampling in Ozone suggest Ozone is not (yet) able to profile using the DWT PC sampling register?

    thank you for your input,
    kalle
  • Hello Kalle,

    kraiskil wrote:

    I looked into SystemView and RTT. If I understand correctly, I can get coarse-grained function execution times recorded with it, but only if I manually instrument the source code of the functions to monitor?
    Correct.


    kraiskil wrote:

    While reading up on all this, I bumped into the Data Watchpoint Trigger (DWT) module which is an optional but implemented feature, (since I am on a STM32F0). But this thread Enable PC-Sampling in Ozone suggest Ozone is not (yet) able to profile using the DWT PC sampling register?
    Ozone currently does not offer PC sampling as a trace method. However our IDE Embedded Studio can be used for that purpose:
    segger.com/products/development-tools/embedded-studio/

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.