Help with System Viewer

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

  • Help with System Viewer

    Hello,

    I am trying to use System View with 16 bit MCU (MSP430). I want to record user events in "Post Mortem mode".

    I have been able to compile and run my application with the SEGGER_* files. When I read the _UpBuffer[] before it is full, it works. I can see my events in the SystemView GUI.
    However, when my device runs for longer time, such that there is wrap around in _UpBuffer[], then I can't get any events. The problem appears to be that no sync information is written to the _UpBuffer[].

    Would you have any suggestions? What should I try next?

    For your reference, the following are the configuration or modifications that I have made to the SEGGER_* files. Please let me know if you see any errors:


    SEGGER_RTT_Conf.h: ------------------------

    #define SEGGER_RTT_MAX_NUM_UP_BUFFERS (2)
    #define SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (0)
    #define BUFFER_SIZE_UP (4)
    #define BUFFER_SIZE_DOWN (4)
    #define SEGGER_RTT_PRINTF_BUFFER_SIZE (0)



    SEGGER_SYSVIEW_Conf.h: ------------------------

    #define SEGGER_SYSVIEW_RTT_BUFFER_SIZE 256
    #define SEGGER_SYSVIEW_RTT_CHANNEL 1
    #define SEGGER_SYSVIEW_USE_STATIC_BUFFER 1
    #define SEGGER_SYSVIEW_POST_MORTEM_MODE 1

    #if SEGGER_SYSVIEW_CORE == SEGGER_SYSVIEW_CORE_CM3
    ...
    #else
    #define SEGGER_SYSVIEW_GET_TIMESTAMP() SEGGER_SYSVIEW_X_GetTimestamp()
    #define SEGGER_SYSVIEW_TIMESTAMP_BITS 16
    #endif

    #define SEGGER_SYSVIEW_ID_BASE 0x1100
    #define SEGGER_SYSVIEW_ID_SHIFT 0


    SEGGER_SYSVIEW_ConfDefaults.h: ----------------------------------------------------------

    #ifndef SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT
    #define SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT 2 //AA ; recommended: Buffer size/16 default: 8
    #endif


    SEGGER_SYSVIEW_Config_NoOS.c: -------------------------

    //extern unsigned int SystemCoreClock; <- commented out

    #define SYSVIEW_APP_NAME "Quell"
    #define SYSVIEW_DEVICE_NAME "MSP430"
    #define SYSVIEW_TIMESTAMP_FREQ (512)
    #define SYSVIEW_CPU_FREQ (1000000)
    #define SYSVIEW_RAM_BASE (0x1100)


    Thank you,

    Andres Aguirre
    andres_aguirre@neurometrix.com
  • Hello Andres,

    Your configuration looks good so far.
    You enabled post-mortem mode and configured syncs to be sent every 4th event.

    Could you check if _SendSyncInfo() in SEGGER_SYSVIEW.c is called?
    If so, could you provide a read-out buffer from a longer run and one from a short run?

    Best regards
    Johannes
    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.