diff options
Diffstat (limited to 'jack')
-rw-r--r-- | jack/jack.c | 13 | ||||
-rw-r--r-- | jack/rules.mk | 8 |
2 files changed, 19 insertions, 2 deletions
diff --git a/jack/jack.c b/jack/jack.c index 34af51d..9a59cb0 100644 --- a/jack/jack.c +++ b/jack/jack.c @@ -102,3 +102,16 @@ uint16_t keycode_config(uint16_t keycode) { return keycode; } #ifndef MAGIC_ENABLE uint8_t mod_config(uint8_t mod) { return mod; } #endif + +#ifdef RP2040_MATH_IN_ROM +typedef void (*init_fn)(void); + +extern init_fn __preinit_array_base__; +extern init_fn __preinit_array_end__; + +void keyboard_pre_init_user(void) { + for (init_fn *func = &__preinit_array_base__; func < &__preinit_array_end__; + func++) + (*func)(); +} +#endif diff --git a/jack/rules.mk b/jack/rules.mk index 7c6548a..bd2c377 100644 --- a/jack/rules.mk +++ b/jack/rules.mk @@ -41,11 +41,15 @@ ifeq ($(strip $(CUSTOM_TAP_CODE_ENABLE)), yes) endif ifeq ($(PLATFORM), CHIBIOS) + ifeq ($(MCU_SERIES), RP2040) + RP2040_MATH_IN_ROM = no + endif EXTRAFLAGS += -O3 endif -ifneq ($(findstring Gentoo, $(shell arm-none-eabi-gcc --version)),) - EXTRAFLAGS += -U_FORTIFY_SOURCE +ifeq ($(strip $(RP2040_MATH_IN_ROM)), yes) + OPT_DEFS += -DRP2040_MATH_IN_ROM + MCU_LDSCRIPT = RP2040_FLASH_TIMECRIT_ROM_MATH endif ifeq ($(strip $(MOUSE_JIGGLE_ENABLE)), yes) |