[SOLVED] can't view the complete SystemView file recorded in Post-Mortem Mode on System View app

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

  • [SOLVED] can't view the complete SystemView file recorded in Post-Mortem Mode on System View app

    Hi,
    I am recoring using Post-Mortem Mode, i can receive the cyclisch information according to function _SendSyncInfo(). But the SEGGER SystemView app shows me only first block of recorded information.
    Can someone please explain me why i can read only the first block and not the second or more than one?
    or is it necessary to use the SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT bigger enough that the Task list and Module descriptor comes only once?

    i am using

    #define BUFFER_SIZE_UP (1024)
    #define SEGGER_SYSVIEW_RTT_BUFFER_SIZE 8192
    #define SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT 8

    then i have multiple times task list and system descriptor. But i can read the events on SystemView app after Task list and Module descriptor information till the begining of second time of Task list and Module descriptor information.

    Source Code: SEGGER_SYSVIEW.c

    1. #if (SEGGER_SYSVIEW_POST_MORTEM_MODE == 1)
    2. //
    3. // Add sync and system information periodically if we are in post mortem mode
    4. //
    5. if (_SYSVIEW_Globals.RecursionCnt == 0) { // Avoid uncontrolled nesting. This way, this routine can call itself once, but no more often than that.
    6. _SYSVIEW_Globals.RecursionCnt = 1;
    7. if (_SYSVIEW_Globals.PacketCount++ & (1 << SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT)) {
    8. _SendSyncInfo();
    9. _SYSVIEW_Globals.PacketCount = 0;
    10. }
    11. _SYSVIEW_Globals.RecursionCnt = 0;
    12. }
    Display All




    Source Code: SEGGER_SYSVIEW.c

    1. <#if (SEGGER_SYSVIEW_POST_MORTEM_MODE == 1)
    2. static void _SendSyncInfo(void) {
    3. //
    4. // Add sync packet ( 10 * 0x00)
    5. // Send system description
    6. // Send system time
    7. // Send task list
    8. // Send module description
    9. // Send module information
    10. //
    11. SEGGER_RTT_WriteWithOverwriteNoLock(CHANNEL_ID_UP, _abSync, 10);
    12. SEGGER_SYSVIEW_RecordVoid(SYSVIEW_EVTID_TRACE_START);
    13. {
    14. U8* pPayload;
    15. U8* pPayloadStart;
    16. RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 4 * SEGGER_SYSVIEW_QUANTA_U32)
    17. //
    18. pPayload = pPayloadStart;
    19. ENCODE_U32(pPayload, _SYSVIEW_Globals.SysFreq);
    20. ENCODE_U32(pPayload, _SYSVIEW_Globals.CPUFreq);
    21. ENCODE_U32(pPayload, _SYSVIEW_Globals.RAMBaseAddress);
    22. ENCODE_U32(pPayload, SEGGER_SYSVIEW_ID_SHIFT);
    23. _SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_INIT);
    24. RECORD_END();
    25. }
    26. if (_SYSVIEW_Globals.pfSendSysDesc) {
    27. _SYSVIEW_Globals.pfSendSysDesc();
    28. }
    29. SEGGER_SYSVIEW_RecordSystime();
    30. SEGGER_SYSVIEW_SendTaskList();
    31. if (_NumModules > 0) {
    32. SEGGER_SYSVIEW_SendNumModules();
    33. for (int n = 0; n < _NumModules; n++) {
    34. SEGGER_SYSVIEW_SendModule(n);
    35. }
    36. SEGGER_SYSVIEW_SendModuleDescription();
    37. }
    38. }
    39. #endif // (SEGGER_SYSVIEW_POST_MORTEM_MODE == 1)
    Display All
    Best Regards,
    Usman