Troubleshooting

Revision as of 10:17, 28 February 2023 by Registered User
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This article describes some common issues and gives possible causes and remedies.

1 STM32CubeMonitor does not detect the STlink

2 STM32CubeMonitor cannot connect to the board

Possible cause:

  • The firmware running on the target is forcing a Low power mode. Communication with ST-LINK is disabled when the board is in Low power mode.
  • The target is secured or debug-disabled. STM32CubeMonitor is not able to connect in this case.

3 STM32CubeMonitor cannot connect to the board in TCP mode

Possible cause and remedy:

  • The STLLinkServer driver is not present. Install STLink server.
  • Another application is connected without Shared mode on the ST-LINK. Set the other applications to share the ST-Link .

4 Get application server port already in use error

Possible cause and remedy:

  • if it concerns port 1880 already in use, even if netstat doesn't show this port as being used, the error may be due to 'Hyper-V'. By disabling Hyper-V, it should work

5 STM32CubeMonitor doesn't show variables in .elf file on Ubuntu 19.10

Possible cause and remedy:

  • It seems to be an issue with the gdb parser used to decode the elf file. Gdb need the library libncurses5, and it it not available on ubuntu19.10. You can install the library with the command : "apt install libncurses5", it should solve the problem.

6 STM32CubeMonitor plots variables but their values seems to be 0

Possible causes and remedies:

  • When the processor is in WFI (Wait For Interrupt) or WFE (Wait for Event), the STM32 is in sleep mode and the tool is not able anymore to access the memory : when the tool reads data, the probe returns 0 and not the real value. So it is not possible to get the data when MCU uses WFI or WFE instruction, user need to remove __WFI() and __WFE() instructions.
  • The debug Access Port is not the good one. Some device have multiple ports, either because they have multiple core, or because the core have multiple ports. If the wrong access port is used, the variable is returned as 0.