aboutsummaryrefslogtreecommitdiff
path: root/jack
diff options
context:
space:
mode:
Diffstat (limited to 'jack')
-rw-r--r--jack/jack.c13
-rw-r--r--jack/rules.mk8
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)