Tuesday, May 22nd 2018, 10:02am UTC+2

You are not logged in.

  • Login
  • Register

Dear visitor, welcome to SEGGER Forum. If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Andres

Beginner

Date of registration: Oct 12th 2016

Posts: 1

1

Monday, October 17th 2016, 8:01pm

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

SEGGER - Johannes

Super Moderator

Date of registration: Aug 31st 2012

Posts: 379

2

Wednesday, December 21st 2016, 9:26am

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