Skip to article frontmatterSkip to article content

FAQ

If you continue to experience any of the issues listed below, please contact us at contact@mcuviewer.com. Be sure to include the log file generated by MCUViewer, which you can access by clicking the Open button under Settings -> General.

License

  1. What is the difference between the plans?

    MCUViewer free cannot be used in commercial environments and comes with the following limitations:

    1. Limitation on simultaneously sampled variables

    2. Limitation on Recorder variables

    3. Limitation on Trace channels

    4. Limitation on screenshots

    5. No official support in case of issues or setup problems

    The COMMUNITY plan is a non-commercial license without the limitations of the free plan. For commercial use ENTERPRISE license (offline or seat-based) and PERPETUAL license (bound to one computer, never expire, cover the updates released until the date given in the license) are available. The current plan is shown in the window title and in Settings -> General. Please see the MCUViewer website or contact us at contact@mcuviewer.com to learn more about licensing terms.

  2. My perpetual license does not work after updating MCUViewer.

    A perpetual license covers the MCUViewer versions released until the date given in the license. If the installed version is newer, Settings -> General shows this in the Expires field together with a Renew button. After renewing, download the updated license and load it in Settings -> General.

Variable Viewer

  1. My variable is not listed in the import dialog.

    First, make sure the variable is global, i.e., it has a constant address throughout the entire lifetime of your program. Next, check the type of your variable - if it’s a pointer, it won’t be detected. You can try creating a new variable by right-clicking in the variable table area and selecting New -> Variable. Type the path to the variable in the *.elf symbol field (or pick it with the ... button) and close the window. If the variable is detected, the address will change from “NOT FOUND!” to a valid address.

  2. I’m using a JLink probe and my target resets each time I start the acquisition.

    Make sure that the JLink probe SWD speed is not set to too high of a value. Try lower speeds and ensure that the “keep connection” option in the Acquisition window is checked.

  3. I’m using a JLink probe and my target seems to halt for a few milliseconds each time I start the acquisition.

    Try selecting a generic device (e.g., Cortex-M4 instead of STM32G474) and ensure that the “keep connection” option in the Acquisition window is checked.

  4. The sampling frequency set in the Acquisition window is not reached.

    If possible, try selecting a higher SWD speed. If that’s not possible, you can lower the sampling frequency or switch to the recorder module for high-frequency signals.

  5. I get “Could not connect to JLink error”.

    Make sure you have installed the JLink software pack.

  6. I get “Update error. Please check the *.elf file path and parser settings!”.

    Make sure the *.elf file path is correct. When the GDB parser is used, make sure the gdb command is correct (Acquisition -> Advanced -> GDB command). For default GDB on Windows and MacOS it should be ./gdb, for system gdb it should be gdb (must be added to the path). Ubuntu distribution always defaults to system gdb (gdb), so please make sure it’s installed. Alternatively switch to the built-in DWARF parser, which does not need gdb at all. If you’re working with C2000 *.elf files use the C2000 parser (see Acquisition Settings).

  7. The import variables dialog shows only the first array element.

    Currently the import dialog will show the arrays as “name[0]”. After importing the index has to be typed in manually or the variable can be copied to increment the index.

  8. I’m using a STLink probe and my target is not found - I cannot connect to my target

    First make sure that you’re able to connect to the target with other programs such as CubeProgrammer. If the target is detected correctly you can use the STLINK (CUBE PROGRAMMER) debug probe or GDBSERVER. For GDBSERVER probe please see the short tutorial: STM32 OpenOCD example

  9. I’m using serial probe and the update rate is low.

    Please see the serial low update rate section for possible solutions depending on the platform you’re running on.

Recorder

  1. The recorder module is not detected.

    Make sure the correct *.elf file is selected and that you’re calling the recorderStep() function in your code.

  2. The recorder module does not show any data.

    First, ensure that the recorder is detected correctly in the Acquisition settings window. If it is detected correctly, make sure that the mode referenced in Recorder usage is set to run so that the trigger is not needed for acquisition.

Trace Viewer

  1. I see no data and get a timeout error.

    Make sure that the SWO output is active-connect a logic analyzer or oscilloscope to see if it gets activated after pressing the start button. If the SWO is not active but there are no errors, please contact us at contact@mcuviewer.com.

  2. My MCU seems to halt each time I start the acquisition.

    This is a known Trace Viewer issue that will be resolved in future releases. If this is a blocking issue, please use the Recorder module instead.

  3. I get a lot of error frames and red markers on the plots.

    Most likely, the debug probe is not fast enough for the SWO output settings. Try increasing the prescaler and make sure the core frequency is set correctly. After the first start the SWO clock field shows the maximum SWO clock of your probe - it turns red when the SWO clock is too high.

  4. I get a lot of delayed frames and yellow markers on the plots.

    Most likely, you’re reaching the bandwidth limit of your probe. You can try reducing the prescaler, as long as there are no error frames.

General

  1. MCUViewer sidebar icon is not showing up on Ubuntu.

    Currently MCUViewer is compatible only with X11 environment. You can switch to X11 environment on the login screen by clicking the gear icon in the right bottom corner.

  2. My STLink is not detected on Ubuntu although it’s plugged in.

    Make sure STLink udevrules are present in /etc/udev/rules.d/. Call sudo udevadm control --reload-rules and sudo udevadm trigger to reload the rules.

  3. I’m using probe X and MCU Y. Is it supported by MCUViewer?

    Currently MCUViewer is natively compatible with JLink and STLink probes. If you’re using a different probe please use the GDBSERVER probe setup described in the Acquisition Settings page. In case you’re using a less popular MCU the Serial Driver might be the best option.

  4. How do I open a project from an older MCUViewer version?

    Open the *.mcuvproj file with File -> Open. MCUViewer 1.3.0 converts it to the new *.mcuv format and saves it next to the original file, which stays untouched. When a project saved by a newer MCUViewer version is opened, settings unknown to the current version would be dropped on save, so autosave is turned off for this project until you save it manually.

Known issues and limitations

Known issues are always listed in respect to the latest version of MCUViewer.

  1. RTX A2000 graphics card memory leak.

    Some users have reported that when using the RTX A2000 graphics card, MCUViewer will leak memory causing it to eventually crash. The workaround is to use the integrated graphics card instead. If you are also affected please give us a message at contact@mcuviewer.com.

  2. C2000 family *.elf file parsing issues.

    Due to TI’s custom DWARF extensions the GDB and DWARF parsers have problems parsing variables with const/volatile keywords. Please use the C2000 parser (Acquisition -> Advanced -> *.elf parser), which uses TI’s ofd2000 tool - MCUViewer suggests it automatically when a C2000 *.elf file is selected.

  3. Cube programmer STLink probe is slow on MacOS

    This issue is only present on MacOS when STLINK (CubeProgrammer) is selected. It’s under investigation for a fix. As a replacement please use the GDBSERVER