Systemview microlib microVision

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

    • Systemview microlib microVision

      I am trying to instrument a program where we use RTX kernel and microlib on uVision.
      I understand that there are no porting or official support for RTX, that's ok. I am starting from scratch from SEGGER_SYSVIEW_Config_NoOS example and then I'l instrument events or tasks.
      My problem is that using microlib I get following errors, even when following instructions from wiki.segger.com/Keil_MDK-ARM#RTT_in_uVision

      Source Code

      1. Error: L6200E: Symbol _sys_open multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      2. Error: L6200E: Symbol _sys_close multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      3. Error: L6200E: Symbol _sys_write multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      4. Error: L6200E: Symbol _sys_istty multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      5. Error: L6200E: Symbol _sys_seek multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      6. Error: L6200E: Symbol _sys_flen multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      7. Error: L6200E: Symbol _sys_read multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      8. Error: L6200E: Symbol _sys_ensure multiply defined (by sys_io.o and segger_rtt_syscalls_keil.o).
      Display All

      I am using toolchain version 5.39.2.2 with c compiler armcc v.506 update 7 (it's some legacy project that I'd like to profile, hence the old version of ide and compiler)

      I can comment out the _sys* functions that lead to errors, but then of course sysview does not provide any output.

      Any hint?
      Also a "you can't do it" would be fine, then I will switch to different approaches and evaluate systemview on new projects.

      K.R.

      Luca.
    • Hello Luca,

      The wiki article is for the case that you want to use RTT for your outputs (e.g. printf).
      Since all data relating to SystemView is sent via events, there is no need for the Syscalls file. This means, that you do not have to include the Syscalls file to your project to be able to use SystemView.

      You mentioned RTX is running on the device, so you should take a look at the OS instrumentation for SystemView (see segger.com/doc/UM08027_SystemV…GER_SystemView_into_an_OS). Otherwise the timeline will propably not be displayed correctly (due to different tasks, scheduler, etc.).

      Best regards,
      Tobias