2020-03-16 11:08 AM
I have had a lingering issue that rears its ugly head from time to time and is a huge productivity killer. I honestly cannot say what triggers the issue, or how to fix it. It is becoming too big of an issue to continue development with the system like this.
Hardware used:
-STM32F746BG
-Seggar J-Trace (SWD @ 4000kHz) or ST-Link
When using my J-Trace from within STM32CubeIDE I get this output in the console window:
SEGGER J-Link GDB Server V6.62 Command Line Version
JLinkARM.dll V6.62 (DLL compiled Jan 24 2020 16:32:09)
Command line: -port 2331 -s -device STM32F746BG -endian little -speed 12000 -if swd -vd
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: off
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: STM32F746BG
Target interface: SWD
Target interface speed: 12000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Trace PRO V2 Cortex-M compiled Jan 7 2020 16:54:03
Hardware: V2.00
S/N: 752001379
Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB
Checking target voltage...
Target voltage: 3.27 V
Listening on TCP/IP port 2331
Connecting to target...
Connected to target
Waiting for GDB connection...Connected to 127.0.0.1
Reading all registers
Read 4 bytes @ address 0x08001A42 (Data = 0xE7FEE7FE)
Read 2 bytes @ address 0x08001A42 (Data = 0xE7FE)
WARNING: Failed to read memory @ address 0x00036770
Connected to 127.0.0.1
Reading all registers
WARNING: Failed to read memory @ address 0x00036770
Read 4 bytes @ address 0x08001A42 (Data = 0xE7FEE7FE)
Read 2 bytes @ address 0x08001A42 (Data = 0xE7FE)
Received monitor command: WriteDP 0x2 0x000000F0
O.K.
Received monitor command: ReadAP 0x2
O.K.:0xE00FD003
Reading 32 bytes @ address 0xE00FDFD0
Received monitor command: reset
Resetting target
Downloading 12 bytes @ address 0x00008000 - Verify failed
Downloading 16064 bytes @ address 0x00008010 - Verify failed
Downloading 16000 bytes @ address 0x0000BED0 - Verify failed
Downloading 16000 bytes @ address 0x0000FD50 - Verify failed
Downloading 16144 bytes @ address 0x00013BD0 - Verify failed
Downloading 16176 bytes @ address 0x00017AE0 - Verify failed
Downloading 16208 bytes @ address 0x0001BA10 - Verify failed
Downloading 16240 bytes @ address 0x0001F960 - Verify failed
Downloading 16096 bytes @ address 0x000238D0 - Verify failed
Downloading 16128 bytes @ address 0x000277B0 - Verify failed
Downloading 16048 bytes @ address 0x0002B6B0 - Verify failed
Downloading 16112 bytes @ address 0x0002F560 - Verify failed
Downloading 16096 bytes @ address 0x00033450 - Verify failed
Downloading 15984 bytes @ address 0x00037330 - Verify failed
Downloading 9324 bytes @ address 0x0003B1A0 - Verify failed
Downloading 12 bytes @ address 0x0003D60C - Verify failed
Downloading 16280 bytes @ address 0x0003D618 - Verify failed
Downloading 16288 bytes @ address 0x000415B0 - Verify failed
Downloading 1045 bytes @ address 0x00045550 - Verify failed
Downloading 15146 bytes @ address 0x00045968 - Verify failed
Downloading 15884 bytes @ address 0x00049494 - Verify failed
Downloading 15776 bytes @ address 0x0004D2A0 - Verify failed
Downloading 16048 bytes @ address 0x00051040 - Verify failed
Downloading 16320 bytes @ address 0x00054EF0 - Verify failed
Downloading 16352 bytes @ address 0x00058EB0 - Verify failed
Downloading 16352 bytes @ address 0x0005CE90 - Verify failed
Downloading 16320 bytes @ address 0x00060E70 - Verify failed
Downloading 16336 bytes @ address 0x00064E30 - Verify failed
Downloading 16336 bytes @ address 0x00068E00 - Verify failed
Downloading 16144 bytes @ address 0x0006CDD0 - Verify failed
Downloading 15888 bytes @ address 0x00070CE0 - Verify failed
Downloading 15936 bytes @ address 0x00074AF0 - Verify failed
Downloading 16064 bytes @ address 0x00078930 - Verify failed
Downloading 16288 bytes @ address 0x0007C7F0 - Verify failed
Downloading 16368 bytes @ address 0x00080790 - Verify failed
Downloading 16368 bytes @ address 0x00084780 - Verify failed
Downloading 16368 bytes @ address 0x00088770 - Verify failed
Downloading 16368 bytes @ address 0x0008C760 - Verify failed
Downloading 16368 bytes @ address 0x00090750 - Verify failed
Downloading 14532 bytes @ address 0x00094740 - Verify failed
Downloading 9756 bytes @ address 0x00098004 - Verify failed
Downloading 8 bytes @ address 0x0009A620 - Verify failed
Downloading 4 bytes @ address 0x0009A628 - Verify failed
Downloading 24 bytes @ address 0x000AA62C - Verify failed
Downloading 8 bytes @ address 0x000AA644 - Verify failed
Downloading 3016 bytes @ address 0x000AA650 - Verify failed
Writing register (PC = 0x 80a4)
WARNING: Failed to read memory @ address 0x00036770
WARNING: Failed to read memory @ address 0x000080A4
Read 4 bytes @ address 0xE000ED14 (Data = 0x00040200)
Downloading 4 bytes @ address 0xE000ED14 - Verified OK
Reading all registers
WARNING: Failed to read memory @ address 0x000080A4
Read 4 bytes @ address 0xE000EDFC (Data = 0x01000000)
Downloading 4 bytes @ address 0xE000EDFC - Verified OK
Reading all registers
WARNING: Failed to read memory @ address 0x000080A4
Reading 64 bytes @ address 0x0000C180
WARNING: Failed to read memory @ address 0x0000C180
WARNING: Failed to read memory @ address 0x0000C182
Reading 64 bytes @ address 0x0000C180
WARNING: Failed to read memory @ address 0x0000C180
WARNING: Failed to read memory @ address 0x0000C182
WARNING: Failed to read memory @ address 0x0000C17C
Setting breakpoint @ address 0x0000C17C, Size = 2, BPHandle = 0x0001
Starting target CPU...
...Target halted (Vector catch, PC = 0x08001A42)
Reading all registers
Removing breakpoint @ address 0x0000C17C, Size = 2
Read 4 bytes @ address 0x08001A42 (Data = 0xE7FEE7FE)
Read 2 bytes @ address 0x08001A42 (Data = 0xE7FE)
Read 4 bytes @ address 0x2004FFFC (Data = 0x01000000)
Reading 64 bytes @ address 0x2004FFC0
WARNING: Failed to read memory @ address 0x000080A4
GDB closed TCP/IP connection
GDB closed TCP/IP connection
Restoring target state and closing J-Link connection...
At the same rate, if I use an st-link programmer device I get this output to the console:
STMicroelectronics ST-LINK GDB server. Version 5.5.0
Copyright (c) 2019, STMicroelectronics. All rights reserved.
Starting server with the following options:
Persistent Mode : Disabled
Logging Level : 1
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Disabled
SWD Debug : Enabled
InitWhile : Enabled
Waiting for debugger connection...
Debugger connected
Debugger connection lost.
Shutting down...
and this popup dialog:
If you look at the J-Trace log, clearly the verification of the downloaded bytes is failing, why is STM32CubeIDE telling the J-Trace to write to address 0x00008000? It looks like this address has been shifted right 3. The normal programming address is 0x08000000. Super strange and I have no idea how to fix this problem. In total this has probably caused me 2 weeks of development work dealing with it on and off, losing work as I am forced to revert to older code bases to get away from the issue (sometimes even this doesn't help);
2020-03-16 01:55 PM
Anyone having these issues???
I can manually flash a bin or hex file with my J-Trace without issue using the J-Link Commander application provided by Seggar. This must be an issue with STM32CubeIDE.
Is there a better place to post questions reguarding STM32CubeIDE?
2020-03-16 02:10 PM
I'm guessing the real question would be how many of the participating experts are using CubeIDE at all.
This would be the place to post, but wouldn't expect rapid responses.
Perhaps chat with your local ST FAE for realtime support.
Are you sure it is not building from AXIM Flash?