[SOLVED] SystemView and dual core monitoring

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

  • [SOLVED] SystemView and dual core monitoring

    Hello,

    I'm trying to monitor activity of the two CPUs of an RP2040 (no OS). Unfortunately calling SEGGER_SYSVIEW_OnTaskStartExec() switches graphically away from the other task running (also started with SEGGER_SYSVIEW_OnTaskStartExec()).

    Is there any way to have two (or more) graphs active in parallel on the timeline or is this limited to one active graph?

    Thanks
    Hardy
  • Hello Hardy,

    currently SystemView does not have any build in way to handle multi core systems.
    You can of course let the cores dump the SystemView data into the same RTT buffer, but you have to do all resource handling and individual core and API logging manually.

    Multi Core support is on our wishlist but with no fixed time schedule yet.

    To get a better understanding how your multi core system works could you give some more information about it so we can consider this in future planing.
    How is the multi core setup implemented? You already wrote that you do not have an RTOS running. How is your system structured then? Do you use SMP, AMP, a Master Scheduler or one Scheduler per Core, ...?

    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.
  • Hello Nino,

    good to hear that multi-core is already on your wishlist.

    My target device is an RP2040, so Cortex-M0 dual core. My application is actually running under FreeRTOS. But to my understanding there is no patched FreeRTOS kernel for SystemView available. And anyway... how should it work if it is currently not supported by SystemView!?

    My first idea was to do it with some manual SystemView calls. But again for multi-core no luck (as you pointed out).

    Another platform I'm using in the near future is an nRF5340 which has two Cortext-M33. One for application, one for network. So no symmetrical multicore. Would also be great to monitor both cores thru one SystemView stream.

    Actually another topic, but I think it goes in a similar direction for an implementation:

    Another use case for me would be to use SystemView as a kind of oscilloscope to measure timings, e.g. how long is the transmitter actually switched on? So there is no ns timing requirement.
    This could be a spin-off product of the multi-core capability.

    For this purpose I'm currently using macros like these

    #define OSZI_START(ID) SEGGER_SYSVIEW_OnTaskStartReady(ID);
    #define OSZI_STOP(ID) SEGGER_SYSVIEW_OnTaskStartExec(ID); SEGGER_SYSVIEW_OnTaskStopExec();

    No nice colors (everything is grey), but one gets the measurements.

    Hope this helps

    Kind regards
    Hardy