Merge remote-tracking branch 'origin/develop' into xap

This commit is contained in:
QMK Bot 2024-09-01 17:55:26 +00:00
commit 877af70829
2 changed files with 19 additions and 25 deletions

View File

@ -43,6 +43,18 @@ ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache CC_PREFIX ?= ccache
endif endif
#---------------- Debug Options ----------------
DEBUG_ENABLE ?= no
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -ggdb3
CXXFLAGS += -ggdb3
ASFLAGS += -ggdb3
# Create a map file when debugging
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
#---------------- C Compiler Options ---------------- #---------------- C Compiler Options ----------------
ifeq ($(strip $(LTO_ENABLE)), yes) ifeq ($(strip $(LTO_ENABLE)), yes)
@ -54,14 +66,6 @@ ifeq ($(strip $(LTO_ENABLE)), yes)
CDEFS += -DLTO_ENABLE CDEFS += -DLTO_ENABLE
endif endif
DEBUG_ENABLE ?= yes
ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
DEBUG_ENABLE=no
endif
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -g$(DEBUG)
endif
CFLAGS += $(CDEFS) CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT) CFLAGS += -O$(OPT)
# add color # add color
@ -83,9 +87,6 @@ CFLAGS += -fcommon
#---------------- C++ Compiler Options ---------------- #---------------- C++ Compiler Options ----------------
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CXXFLAGS += -g$(DEBUG)
endif
CXXFLAGS += $(CXXDEFS) CXXFLAGS += $(CXXDEFS)
CXXFLAGS += -O$(OPT) CXXFLAGS += -O$(OPT)
# to suppress "warning: only initialized variables can be placed into program memory area" # to suppress "warning: only initialized variables can be placed into program memory area"
@ -106,14 +107,10 @@ endif
#---------------- Linker Options ---------------- #---------------- Linker Options ----------------
CREATE_MAP ?= yes
ifeq ($(CREATE_MAP),yes)
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
ifeq ($(VERBOSE_LD_CMD),yes) ifeq ($(VERBOSE_LD_CMD),yes)
LDFLAGS += -v LDFLAGS += -v
endif endif
#LDFLAGS += -Wl,--relax
LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += -lm LDFLAGS += -lm
@ -130,11 +127,7 @@ ifeq ($(ADHLNS_ENABLE),yes)
else else
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
ifeq ($(strip $(DEBUG_ENABLE)),yes) ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
else
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
endif endif
endif endif

View File

@ -177,12 +177,13 @@ You'll need to perform some modifications to the file above in order to target y
Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: ![VSCode Settings](https://i.imgur.com/EGrPM1L.png) Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: ![VSCode Settings](https://i.imgur.com/EGrPM1L.png)
::: :::
Optionally, the following modifications should also be made to the keyboard's `rules.mk` file to disable optimisations -- not strictly required but will ensure breakpoints and variable viewing works correctly: The following modifications must be made to the keyboard's `rules.mk` file to enable debug information and disable optimisations -- this will ensure breakpoints and variable viewing works correctly:
```makefile ```makefile
# Enable debug information in the final binaries
DEBUG_ENABLE = yes
# Disable optimisations for debugging purposes # Disable optimisations for debugging purposes
LTO_ENABLE = no LTO_ENABLE = no
OPT = g OPT = g
DEBUG = 3
``` ```
At this point, you should build and flash your firmware through normal methods (`qmk compile ...` and `qmk flash ...`). At this point, you should build and flash your firmware through normal methods (`qmk compile ...` and `qmk flash ...`).