Trouble with instrumenting a module

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

    • Trouble with instrumenting a module

      Hi, I've been trying to instrument a module in my codebase as per the SystemView user manual (UM08027).
      It's on a baremetal application, which based from SEGGER materials, SystemView should support.

      Ok, so far, I have done the following:

      0. Configure SystemView in post mortem mode:


      Source Code

      1. #define SEGGER_SYSVIEW_POST_MORTEM_MODE 1
      2. #define SEGGER_SYSVIEW_RTT_BUFFER_SIZE 0x20000
      3. #define SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT 8192 // 0x20000/16


      1. Call the following functions after MCU and BSP related init

      Source Code

      1. SEGGER_SYSVIEW_Conf();
      2. SEGGER_SYSVIEW_RegisterModule(&MyModule);
      3. SEGGER_SYSVIEW_Start();



      MyModule is defined as:

      Source Code

      1. SEGGER_SYSVIEW_MODULE MyModule =
      2. {
      3. "M=MyModule, 0 ISR Reg=%u",
      4. 1, // NumEvents
      5. 0, // EventOffset, Set by SEGGER_SYSVIEW_RegisterModule()
      6. NULL, // pfSendModuleDesc, NULL: No additional module description
      7. NULL, // pNext, Set by SEGGER_SYSVIEW_RegisterModule()
      8. };
      2. On a certain ISR handler, call:

      Source Code

      1. SEGGER_SYSVIEW_RecordEnterISR();
      2. ...
      3. // reg points to some register
      4. SEGGER_SYSVIEW_RecordU32(0 + MyModule.EventOffset, *reg);
      5. ...
      6. SEGGER_SYSVIEW_RecordExitISR();



      Now, in the SystemView host, I expected the register values to be printed on the timeline. Instead, I get this:



      The ISR is captured fine, but the module events just displays Function #512, without the data displayed as specitied in the module description. Are there other things to be done besides the steps I did above?

      The post was edited 1 time, last by rechrtb ().