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
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