CommunityGD32Cores / platform-gd32

PlatformIO platform for ARM-based GD32{F,E,L,W} chips. Work in Progress!
67 stars 28 forks source link

Uploading and Debugging for e505 fails with OpenOCD #45

Open MarvFPV opened 1 year ago

MarvFPV commented 1 year ago

Hiya, am getting an issue where i can't seem to get opencd to work on a gd32e505re.

This is the error message:

Building in release mode
Checking size .pio\build\genericGD32E505RE\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   0.0% (used 36 bytes from 131072 bytes)
Flash: [          ]   0.2% (used 976 bytes from 524288 bytes)
Configuring upload protocol...
AVAILABLE: blackmagic, cmsis-dap, gdlinkcli, jlink, serial, sipeed-rv-debugger, stlink
CURRENT: upload_protocol = cmsis-dap
Uploading .pio\build\genericGD32E505RE\firmware.elf
xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2021-12-07-17:33)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 1

swd
0
embedded:startup.tcl:26: Error: Can't find target/gd32e50x.cfg
in procedure 'script'
at file "embedded:startup.tcl", line 26
*** [upload] Error 1

I tried manually adding the gd32e50x.cfg from here but that gives me this error message:

Building in release mode
Checking size .pio\build\genericGD32E505RE\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   0.0% (used 36 bytes from 131072 bytes)
Flash: [          ]   0.2% (used 976 bytes from 524288 bytes)
Configuring upload protocol...
AVAILABLE: blackmagic, cmsis-dap, gdlinkcli, jlink, serial, sipeed-rv-debugger, stlink
CURRENT: upload_protocol = cmsis-dap
Uploading .pio\build\genericGD32E505RE\firmware.elf
xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2021-12-07-17:33)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 1

swd
0
target halted due to debug-request, current mode: Thread 
xPSR: 0xf9000000 pc: 0x080001e0 msp: 0x20020000
** Programming Started **
Error: Cannot identify target as a stm32x
Error: auto_probe failed
embedded:startup.tcl:1136: Error: ** Programming Failed **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 1201
at file "embedded:startup.tcl", line 1136
*** [upload] Error 1

For reference, this is what my env looks like:

[env:genericGD32E505RE]
board = genericGD32E505RE
framework = spl
upload_protocol = cmsis-dap
debug_tool = cmsis-dap

Any input on what i'm doing wrong?

maxgerhardt commented 1 year ago

Not good at all. What's your full platformio.ini? The config you show is at least missing platform = ...

You may also be running an old version of it, in which case I'd recommend the simplest update / reinstall way of deleting C:\Users\<user>\.platformio\platforms\gd32* and rebuilding.

MarvFPV commented 1 year ago

I installed everything a good... 3 weeks ago. but yea, i'll retry. With this chip i'm still dabbling around in the blinky example so the platform is set further at the top in the file😅

MarvFPV commented 1 year ago

Update, same issue after reinstalling (and removing my "custom" .cfg file)

maxgerhardt commented 1 year ago

I'm having the feeling the wrong OpenOCD version is used. I need to check some things.

maxgerhardt commented 1 year ago

The latest published version does indeed not have a gd32e50x.cfg. This likely means I screwed up and haven't yet published the latest version into the PIO registry. I need to double check this on my computer later.

maxgerhardt commented 1 year ago

Ha. The last OpenOCD build of us seems to still be at

https://github.com/CommunityGD32Cores/pre-releases/releases/tag/test

For Windows, please download https://github.com/CommunityGD32Cores/pre-releases/releases/download/test/xpack-openocd-0.11.0-3-win32-x64.zip

Go to C:\Useres\<user>\.platformio\packages\tool-openocd-gd32. Delete all files except the package.json. Then extract the above zip file in the folder. Does it work now?

MarvFPV commented 1 year ago

almost, after also not deleting the .piopm file^^

I can flash code now but debugging using cmsis-dap still does not work. i get a unable to find a matching CMSIS-DAP device error.

MarvFPV commented 1 year ago

Interesting, after trying a second time it works. flashing also doesn't seem to always work... probably wiring issues... i'll play around a bit more and report if i find a pattern.

maxgerhardt commented 1 year ago

If upload_protocol = cmsis-dap does not work consistently, does upload_protocol = gdlinkcli work? This uses the original GigaDevice upload tool. (But no debugging possible with that tool)

MarvFPV commented 1 year ago

so far, the cmsis-dap has worked fine(after that initial hiccup).

MarvFPV commented 1 year ago

@maxgerhardt last question(ish), do you have an estimate when the changes will be added to the release version?

maxgerhardt commented 1 year ago

I'll be publishing the up-to-date packages today, but that just sends them in "for review", after which by experience it'll take 1-2 weeks to appear in the PIO registry.

josedelinux commented 3 months ago

Please update OpenOCD to 0.12.0, current version 0.11.0 failed to upload on my cheap Chinese dap debugger mine work on upstream OpenOCD 0.12.0 (installed from scoop) and while with gd32-openocd i got this


pio run --target upload --verbose
Processing PDA_GD32F103VE (board: genericGD32F103VE; framework: spl; upload_protocol: cmsis-dap; build_flags: -Wno-unused-function, -Wno-unused-variable; debug_tool: cmsis-dap; debug_speed: 72000; platform: https://github.com/CommunityGD32Cores/platform-gd32.git; platform_packages: framework-spl-gd32@https://github.com/josedelinux/gd32-pio-spl-package.git)
------------------------------------------------------------------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/gd32/genericGD32F103VE.html
PLATFORM: GD GD32 (1.0.0+sha.8df3968) (git+https://github.com/CommunityGD32Cores/platform-gd32.git) > GD32F103VE (64k RAM, 512k Flash)
HARDWARE: GD32F103VET6 108MHz, 64KB RAM, 512KB Flash
DEBUG: Current (cmsis-dap) External (blackmagic, cmsis-dap, jlink, sipeed-rv-debugger, stlink)
PACKAGES:
 - framework-spl-gd32 @ 2.10000.0+sha.3854db9 (git+https://github.com/josedelinux/gd32-pio-spl-package.git)
 - tool-dfuutil @ 1.9.200310
 - tool-gdlinkcli @ 2.40611.220807+sha.74386ec (git+https://github.com/CommunityGD32Cores/pio-gd32-gdlinkcli.git)
 - tool-openocd-gd32 @ 2.1100.211207 (11.0)
 - tool-stm32duino @ 1.0.2
 - toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
==== STARTUP FILE: startup_gd32f10x_hd.S ======
SPL libraries are included: True
CMSIS libraries are included: True
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Added CMSIS-DSP library for arm_cortexM3l_math
Found 14 compatible libraries
Scanning dependencies...
Dependency Graph
|-- printf (License: Unknown, Path: lib\printf)
Building in release mode
MethodWrapper(["checkprogsize"], [".pio\build\PDA_GD32F103VE\firmware.elf"])
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   0.1% (used 36 bytes from 65536 bytes)
Flash: [          ]   1.8% (used 9268 bytes from 524288 bytes)
.pio\build\PDA_GD32F103VE\firmware.elf  :

section              size        addr

.isr_vector           304   134217728

.text                9088   134218032

.rodata               168   134227120

.ARM                    8   134227288

.init_array             4   134227296

.fini_array             4   134227300

.data                   4   536870912

.bss                   32   536870916

._user_heap_stack    1536   536870948

.ccram_bss              0   268435456

.ccram_data             0   268435456

.ARM.attributes        41           0

.comment              102           0

.debug_frame          660           0

Total               11951
<lambda>(["upload"], [".pio\build\PDA_GD32F103VE\firmware.elf"])
AVAILABLE: blackmagic, cmsis-dap, dfu, gdlinkcli, jlink, serial, sipeed-rv-debugger, stlink
CURRENT: upload_protocol = cmsis-dap
openocd -d2 -s C:\Users\Jose\.platformio\packages\tool-openocd-gd32/scripts -f interface/cmsis-dap.cfg -c "transport select swd" -c "set CPUTAPID 0" -f target/stm32f1x.cfg -c "adapter speed 72000" -c "program {.pio\build\PDA_GD32F103VE\firmware.elf}  verify reset; shutdown;"
xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2021-12-07-17:33)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 2

swd
0
Info : DEPRECATED target event trace-config; use TPIU events {pre,post}-{enable,disable}
adapter speed: 72000 kHz

Error: unable to find a matching CMSIS-DAP device
Error: No Valid JTAG Interface Configured.
*** [upload] Error 4294967295
============================================== [FAILED] Took 1.65 seconds ==============================================
maxgerhardt commented 3 months ago

The platform mostly uses STM32 scripts anyways for GD32. Can you manually overwrite the files in C:\Users\<user>\.platformio\packages\tool-openocd-gd32 with your 0.12.0 version?

josedelinux commented 3 months ago

manually overwrite the files in C:\Users\<user>\.platformio\packages\tool-openocd-gd32 with your 0.12.0 version?

Yeah, it works when I overwrite the bin directory with binaries copy from tool-openocd thanks