Open kamejoko80 opened 1 year ago
Great, this is helpful! Hopefully this will make it easier for others to debug and work with projects.
I got it working on my system with a few changes:
1) I'm not used to using VS Code, is it normal to have the toolchain binaries inside the project folder? If so, it would need to support more platforms, or support building the toolchain from source (which seems daunting), or perhaps support installation from xpack. Maybe the most simple way would be to tell the user to enter the path to their binaries into the settings.json
file. To help support this, I changed it so that TOOLCHAINS_DIR
is a full path containing the name of the arm-none-eabi installation dir. This way, the binaries can live anywhere on your machine and you can use any version you have installed, not just the xpack version 12.2. If there is a different way of handling it, that VSCode users will be familiar with?
2) I had to change the targetProcessor
from 1 to 0. According to the Cortex-Debug documentation, targetProcessor
is a zero based integer index, so 0 would be the main core. Is it the same for you, or does your build of openocd index the cores differently? For me (using openocd 0.12.0), it will not debug and returns errors (as it should) if I have targetProcessor
set to 1.
3) I think .vscode/.cortex-debug.*.state.json
files should not be part of the repo since they just save the state of the debugger UI. I added them to the .gitignore and stopped tracking them.
4) I added another build target in tasks.json
to build with optimizations turned on, and I gave both build targets more descriptive names.
Here's my changes (rebased from your fork): https://github.com/danngreen/stm32mp1-baremetal/tree/vscode I set the paths back to the ../../toolchains dir so it should just work for you.
Hi,
It's good to know that is working on your system.
Yes sure, you can use local toolchains, for flexibility to can define environment variables in settings.json.
In my case, only targetProcessor=1 works for me, here is the error log after switching to 0:
../toolchains/openocd/bin/openocd.exe -c "gdb_port 50000" -c "tcl_port 50002" -c "telnet_port 50004" -s ../toolchains/openocd/share/openocd/scripts -f "c:/Users/phuon/.vscode/extensions/marus25.cortex-debug-1.10.0/support/openocd-helpers.tcl" -f interface/stlink-dap.cfg -f target/stm32mp15x.cfg
Open On-Chip Debugger 0.10.0+dev-g32b1291e9-dirty (2023-04-22-14:47)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
CDRTOSConfigure
Info : auto-selecting first available session transport "stlink_swd". To override use 'transport select <transport>'.
cortex_a interrupt mask on
cortex_a interrupt mask on
cortex_a domain access control fixup on
cortex_a domain access control fixup on
50000
none separate
adapter speed: 10000 kHz
adapter_nsrst_assert_width: 200
adapter_nsrst_delay: 200
init
Info : Listening on port 50002 for tcl connections
Info : Listening on port 50004 for telnet connections
Info : STLINK V2J35S26 (API v2) VID:PID 0483:3752
Info : using stlink api v2
Info : Target voltage: 3.200000
Info : clock speed 10000 kHz
Info : SRST line released
Info : stlink_connect(connect)
Info : SWD DPIDR 0x6ba02477
Info : stm32mp15x.cpu0: hardware has 6 breakpoints, 4 watchpoints
Info : stm32mp15x.cpu1: hardware has 6 breakpoints, 4 watchpoints
Info : Listening on port 50001 for gdb connections
Info : Listening on port 50000 for gdb connections
none srst_pulls_trst
Info : accepting 'gdb' connection on tcp/50000
Info : stm32mp15x.cpu2: hardware has 6 breakpoints, 4 watchpoints
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000008 msp: 0x00000100
Info : New GDB Connection: 1, Target stm32mp15x.cpu2, state: halted
Info : only breakpoints of two bytes length supported
Error: can't add breakpoint: resource not available
Can you share which OpenOCD you are using?
Yes, definitely.
Much appreciated for your improvement. Hopefully, you could find out some things in vs code configuration, cheer!
Hi @danngreen,
You know, vs code is a practical and lightweight IDE so I'd like to introduce how to add vs code IDE and how to configure the OpenOCD gdb server.
For a demonstration, I created a repo, you can run vs code and open the folder "mp1-boot".
This is just a sample for mp1-boot, you can organize the IDE for other programs if needed.