cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE wrongly requires to upgrade the latest J-Link firmware

eBirdman
Senior

Hi,

this problem shows in a number of ways.

I installed the latest IDE v. 1.6.0 and using the J-Link EDU probe with STM32H743 target.

First trying to launch my project through J-Link the window came up suggesting to upgrade J-Link to a newer firmware. I clicked "yes" to download and seemingly upgrade happened (or so I thought). Subsequent attempts to run the code failed. "J-Link commander" utility showed that the probe was dead.

Luckily I had one more probe. Fearing to loose yet another probe the same way, I upgraded this probe using "J-Link Configurator" tool from Segger. Indeed there was upgrade and Configurator succeeded with upgrade.

Then I connected the upgraded probe to download and run my project in CubeIDE.

What was a surprise when IDE again reported a need to upgrade J-Link firmware !

This time I refused by clicking "no" and J-Link worked as expected.

Now every time I try to use the probe, IDE requests this "upgrade" to the freshly upgraded probe . If I accidentally press "yes" I will loose yet another probe. If I don't press "no" fast enough, IDE reports

"Error in final launch sequence: Failed to execute MI command..." and probe can't be used, have to run project download again...

Questions:

Why does IDE report the need for upgrade when I know I just upgraded the firmware through Segger utility ?

Why the first attempt to upgrade failed and thus ruined the J-Link?

How can I stop IDE ( or GDB server ?) from checking for the new release of J-Link firmware?

Please help

Vlad

1 ACCEPTED SOLUTION

Accepted Solutions
eBirdman
Senior

I found the cause of the problem. In a nutshell it is the outdated set of Segger software I was using which includes Segger's J-Link Server, J-Link commander, J-link Configurator .

All those mentioned come in a single bundle from Segger . Apparently those component of the bundle must match the GDBServer embedded into the STM32CubeIDE .

If they don't match, like in my case, the J-Link server embedded into the latest CubeIDE is the latest from Segger but the J-Link Commander and Configurator were both outdated. The result - the Configurator updated my probe firmware to the "latest" version it was "aware of" but it was not the latest version of firmware as the true latest Configurator could "see". Apparently different versions of Segger's software acccess different locations on their server to get the latest software updates.

Now, after I upgraded all the Segger bundle and ran the latest J-Link Configurator , I got TRUE latest version of the probe's firmware and then restarting STM32CubeIDE , the IDE did not complained about the firmware version any more.

And one more cause for a celebratioin after this upgrade: The new J-Link Configurator v.7.0 resurrected my previously damaged probe, installed the latest firmware and it is working win CubeIDE.

The lesson learned : even if the utilities seemingly work well (like reporting success in upgrade, connecting to the target, etc.), if they all don't match in their versioning - something will go wrong. Versions of the stand alone Segger utilities, the driver and the embedded GDBServer in STM32CubeIDE must all match!

Hopefully other users of STM32 and J-Link will all know this.

Vlad

View solution in original post

2 REPLIES 2
eBirdman
Senior

I found the cause of the problem. In a nutshell it is the outdated set of Segger software I was using which includes Segger's J-Link Server, J-Link commander, J-link Configurator .

All those mentioned come in a single bundle from Segger . Apparently those component of the bundle must match the GDBServer embedded into the STM32CubeIDE .

If they don't match, like in my case, the J-Link server embedded into the latest CubeIDE is the latest from Segger but the J-Link Commander and Configurator were both outdated. The result - the Configurator updated my probe firmware to the "latest" version it was "aware of" but it was not the latest version of firmware as the true latest Configurator could "see". Apparently different versions of Segger's software acccess different locations on their server to get the latest software updates.

Now, after I upgraded all the Segger bundle and ran the latest J-Link Configurator , I got TRUE latest version of the probe's firmware and then restarting STM32CubeIDE , the IDE did not complained about the firmware version any more.

And one more cause for a celebratioin after this upgrade: The new J-Link Configurator v.7.0 resurrected my previously damaged probe, installed the latest firmware and it is working win CubeIDE.

The lesson learned : even if the utilities seemingly work well (like reporting success in upgrade, connecting to the target, etc.), if they all don't match in their versioning - something will go wrong. Versions of the stand alone Segger utilities, the driver and the embedded GDBServer in STM32CubeIDE must all match!

Hopefully other users of STM32 and J-Link will all know this.

Vlad

eBirdman
Senior

So the STM32CubeIDE was not "wrong" after all !