mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-04-22 23:21:27 +00:00
Merge remote-tracking branch 'origin/develop' into xap
This commit is contained in:
commit
877af70829
@ -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
|
||||||
|
|
||||||
|
@ -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: 
|
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: 
|
||||||
:::
|
:::
|
||||||
|
|
||||||
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 ...`).
|
||||||
|
Loading…
Reference in New Issue
Block a user