mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-01-22 01:30:35 -05:00
echoplayer: add 'debug' and 'flash' targets to makefile
This replaces the gdb & openocd config in utils/stm32tools and is easier to use. Remove the srst workaround; it seems this was caused by the D1/D3 domains not being powered up while the CPU was in sleep mode. Change-Id: I28cc0273b3004c6e3146bb2447f0655cad8bb1c2
This commit is contained in:
parent
025f3def04
commit
7418e65138
4 changed files with 27 additions and 20 deletions
|
|
@ -3,14 +3,12 @@
|
||||||
# Setup for STLINK-V3SET + STM32H7
|
# Setup for STLINK-V3SET + STM32H7
|
||||||
source [find interface/stlink-dap.cfg]
|
source [find interface/stlink-dap.cfg]
|
||||||
source [find target/stm32h7x.cfg]
|
source [find target/stm32h7x.cfg]
|
||||||
reset_config srst_only srst_open_drain srst_nogate connect_assert_srst
|
|
||||||
init
|
|
||||||
|
|
||||||
# Workaround for OpenOCD complaining about externally asserted resets.
|
|
||||||
# Possibly an electrical issue.
|
|
||||||
adapter assert srst
|
|
||||||
adapter deassert srst
|
|
||||||
|
|
||||||
# OpenOCD doesn't handle soft breakpoints correctly for Cortex-M7 when ICache is enabled:
|
# OpenOCD doesn't handle soft breakpoints correctly for Cortex-M7 when ICache is enabled:
|
||||||
# https://sourceforge.net/p/openocd/mailman/openocd-user/thread/6668098.sCNexbpv2J@linux-5nlr.menet/
|
# https://sourceforge.net/p/openocd/mailman/openocd-user/thread/6668098.sCNexbpv2J@linux-5nlr.menet/
|
||||||
gdb_breakpoint_override hard
|
gdb_breakpoint_override hard
|
||||||
|
|
||||||
|
# Resume execution when GDB detaches, instead of halting
|
||||||
|
stm32h7x.cpu0 configure -event gdb-detach {
|
||||||
|
resume
|
||||||
|
}
|
||||||
17
tools/echoplayer/openocd.make
Normal file
17
tools/echoplayer/openocd.make
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
GDB := gdb
|
||||||
|
OPENOCD := openocd
|
||||||
|
OPENOCD_CFG := $(ROOTDIR)/tools/echoplayer/openocd.cfg
|
||||||
|
|
||||||
|
ifneq (,$(findstring bootloader,$(APPSDIR)))
|
||||||
|
TARGET_ELF := $(BUILDDIR)/bootloader.elf
|
||||||
|
else
|
||||||
|
TARGET_ELF := $(BUILDDIR)/rockbox.elf
|
||||||
|
endif
|
||||||
|
|
||||||
|
debug:
|
||||||
|
$(GDB) $(TARGET_ELF) -ex "target extended-remote | openocd -c \"gdb_port pipe\" -f $(OPENOCD_CFG)"
|
||||||
|
|
||||||
|
flash: $(TARGET_ELF)
|
||||||
|
$(OPENOCD) -f $(OPENOCD_CFG) -c "program $(TARGET_ELF) verify reset exit"
|
||||||
|
|
||||||
|
.PHONY: debug flash
|
||||||
|
|
@ -180,6 +180,11 @@ else # core
|
||||||
|
|
||||||
endif # bootloader
|
endif # bootloader
|
||||||
|
|
||||||
|
# Include makefile for flashing/debugging with OpenOCD & GDB
|
||||||
|
ifeq (echor1,$(MODELNAME))
|
||||||
|
include $(ROOTDIR)/tools/echoplayer/openocd.make
|
||||||
|
endif
|
||||||
|
|
||||||
# One or more subdir makefiles requested --gc-sections?
|
# One or more subdir makefiles requested --gc-sections?
|
||||||
ifdef CORE_GCSECTIONS
|
ifdef CORE_GCSECTIONS
|
||||||
# Do not use '--gc-sections' when compiling sdl-sim
|
# Do not use '--gc-sections' when compiling sdl-sim
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
## Example GDB script for loading a bootloader binary using OpenOCD
|
|
||||||
|
|
||||||
# Set target binary and connect to OpenOCD
|
|
||||||
file "./bootloader.elf"
|
|
||||||
target extended-remote localhost:3333
|
|
||||||
|
|
||||||
# Reset target and flush register cache since GDB is apparently
|
|
||||||
# not smart enough to do this itself.
|
|
||||||
monitor reset halt
|
|
||||||
maintenance flush register-cache
|
|
||||||
|
|
||||||
# Download binary to target
|
|
||||||
load "./bootloader.elf"
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue