diff options
Diffstat (limited to 'keymaps/onekey/rp_smp')
-rw-r--r-- | keymaps/onekey/rp_smp/chconf.h | 8 | ||||
-rw-r--r-- | keymaps/onekey/rp_smp/keymap.c | 16 | ||||
-rw-r--r-- | keymaps/onekey/rp_smp/mcuconf.h | 7 | ||||
-rw-r--r-- | keymaps/onekey/rp_smp/rules.mk | 39 |
4 files changed, 70 insertions, 0 deletions
diff --git a/keymaps/onekey/rp_smp/chconf.h b/keymaps/onekey/rp_smp/chconf.h new file mode 100644 index 0000000..8937db2 --- /dev/null +++ b/keymaps/onekey/rp_smp/chconf.h @@ -0,0 +1,8 @@ +// Copyright 2025 [email protected] +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#undef CH_CFG_SMP_MODE +#define CH_CFG_SMP_MODE TRUE + +#include_next <chconf.h> diff --git a/keymaps/onekey/rp_smp/keymap.c b/keymaps/onekey/rp_smp/keymap.c new file mode 100644 index 0000000..20372fd --- /dev/null +++ b/keymaps/onekey/rp_smp/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2025 [email protected] +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_A)}; + +void c1_main(void) { + chSysWaitSystemState(ch_sys_running); + chInstanceObjectInit(&ch1, &ch_core1_cfg); + chSysUnlock(); + while (true) { + uprintf("core 1 active\n"); + wait_ms(100); + } +} diff --git a/keymaps/onekey/rp_smp/mcuconf.h b/keymaps/onekey/rp_smp/mcuconf.h new file mode 100644 index 0000000..c35ba16 --- /dev/null +++ b/keymaps/onekey/rp_smp/mcuconf.h @@ -0,0 +1,7 @@ +// Copyright 2025 [email protected] +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next <mcuconf.h> + +#undef RP_CORE1_START +#define RP_CORE1_START TRUE diff --git a/keymaps/onekey/rp_smp/rules.mk b/keymaps/onekey/rp_smp/rules.mk new file mode 100644 index 0000000..a263ca2 --- /dev/null +++ b/keymaps/onekey/rp_smp/rules.mk @@ -0,0 +1,39 @@ +CONSOLE_ENABLE = yes +OPT_DEFS += -UCRT0_EXTRA_CORES_NUMBER \ + -DCRT0_EXTRA_CORES_NUMBER=1 + +define WRAP + $(foreach FUNC,$1,$(eval EXTRALDFLAGS += -Wl,--wrap=$(FUNC))) +endef + +SRC += $(PICOSDKROOT)/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S +BIT_FUNCTIONS := __clzsi2 __clzdi2 __ctzsi2 __ctzdi2 __popcountsi2 __popcountdi2 +$(call WRAP, $(BIT_FUNCTIONS)) + +VPATH += $(PICOSDKROOT)/src/rp2_common/pico_double/include +SRC += $(PICOSDKROOT)/src/rp2_common/pico_double/double_aeabi.S \ + $(PICOSDKROOT)/src/rp2_common/pico_double/double_init_rom.c \ + $(PICOSDKROOT)/src/rp2_common/pico_double/double_math.c \ + $(PICOSDKROOT)/src/rp2_common/pico_double/double_v1_rom_shim.S +DOUBLE_FUNCTIONS := __aeabi_dadd __aeabi_ddiv __aeabi_dmul __aeabi_drsub __aeabi_dsub __aeabi_cdcmpeq \ + __aeabi_cdrcmple __aeabi_cdcmple __aeabi_dcmpeq __aeabi_dcmplt __aeabi_dcmple \ + __aeabi_dcmpge __aeabi_dcmpgt __aeabi_dcmpun __aeabi_i2d __aeabi_l2d __aeabi_ui2d \ + __aeabi_ul2d __aeabi_d2iz __aeabi_d2lz __aeabi_d2uiz __aeabi_d2ulz __aeabi_d2f \ + sqrt cos sin tan atan2 exp log ldexp copysign trunc floor ceil round sincos asin \ + acos atan sinh cosh tanh asinh acosh atanh exp2 log2 exp10 log10 pow powint hypot \ + cbrt fmod drem remainder remquo expm1 log1p fma +$(call WRAP, $(DOUBLE_FUNCTIONS)) + +VPATH += $(PICOSDKROOT)/src/rp2_common/pico_float/include +SRC += $(PICOSDKROOT)/src/rp2_common/pico_float/float_aeabi.S \ + $(PICOSDKROOT)/src/rp2_common/pico_float/float_init_rom.c \ + $(PICOSDKROOT)/src/rp2_common/pico_float/float_math.c \ + $(PICOSDKROOT)/src/rp2_common/pico_float/float_v1_rom_shim.S +FLOAT_FUNCTIONS := __aeabi_fadd __aeabi_fdiv __aeabi_fmul __aeabi_frsub __aeabi_fsub __aeabi_cfcmpeq \ + __aeabi_cfrcmple __aeabi_cfcmple __aeabi_fcmpeq __aeabi_fcmplt __aeabi_fcmple \ + __aeabi_fcmpge __aeabi_fcmpgt __aeabi_fcmpun __aeabi_i2f __aeabi_l2f __aeabi_ui2f \ + __aeabi_ul2f __aeabi_f2iz __aeabi_f2lz __aeabi_f2uiz __aeabi_f2ulz __aeabi_f2d \ + sqrtf cosf sinf tanf atan2f expf logf ldexpf copysignf truncf floorf ceilf roundf \ + sincosf asinf acosf atanf sinhf coshf tanhf asinhf acoshf atanhf exp2f log2f exp10f \ + log10f powf powintf hypotf cbrtf fmodf dremf remainderf remquof expm1f log1pf fmaf +$(call WRAP, $(FLOAT_FUNCTIONS)) |