diff options
author | Jack Sangdahl <[email protected]> | 2025-03-15 13:12:04 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2025-03-15 13:12:04 -0600 |
commit | 609f524ccf2d847b8c7050e328b4bc7f2689dd91 (patch) | |
tree | 986c9155c4fffba4d3edd0b849accf9934ce650f | |
parent | 3541c2ece24c57d68fd3d8c4ad5e602844836e70 (diff) | |
download | qmk_me-609f524ccf2d847b8c7050e328b4bc7f2689dd91.tar.gz qmk_me-609f524ccf2d847b8c7050e328b4bc7f2689dd91.zip |
Use Pico SDK maths for all RP2040 boards
-rw-r--r-- | jack/picosdk_math.mk | 153 | ||||
-rw-r--r-- | jack/post_rules.mk | 3 | ||||
-rw-r--r-- | keymaps/onekey/f411_ls0x/config.h | 2 | ||||
-rw-r--r-- | keymaps/onekey/rp_smp/rules.mk | 36 |
4 files changed, 157 insertions, 37 deletions
diff --git a/jack/picosdk_math.mk b/jack/picosdk_math.mk new file mode 100644 index 0000000..82f18a3 --- /dev/null +++ b/jack/picosdk_math.mk @@ -0,0 +1,153 @@ +OPT_DEFS += -DPICO_DOUBLE_IN_RAM=1 \ + -DPICO_FLOAT_IN_RAM=1 + +# bit +SRC += $(PICOSDKROOT)/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S +EXTRALDFLAGS += \ + -Wl,--wrap=__clzsi2 \ + -Wl,--wrap=__clzdi2 \ + -Wl,--wrap=__ctzsi2 \ + -Wl,--wrap=__ctzdi2 \ + -Wl,--wrap=__popcountsi2 \ + -Wl,--wrap=__popcountdi2 + +# double +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 +EXTRALDFLAGS += \ + -Wl,--wrap=__aeabi_dadd \ + -Wl,--wrap=__aeabi_ddiv \ + -Wl,--wrap=__aeabi_dmul \ + -Wl,--wrap=__aeabi_drsub \ + -Wl,--wrap=__aeabi_dsub \ + -Wl,--wrap=__aeabi_cdcmpeq \ + -Wl,--wrap=__aeabi_cdrcmple \ + -Wl,--wrap=__aeabi_cdcmple \ + -Wl,--wrap=__aeabi_dcmpeq \ + -Wl,--wrap=__aeabi_dcmplt \ + -Wl,--wrap=__aeabi_dcmple \ + -Wl,--wrap=__aeabi_dcmpge \ + -Wl,--wrap=__aeabi_dcmpgt \ + -Wl,--wrap=__aeabi_dcmpun \ + -Wl,--wrap=__aeabi_i2d \ + -Wl,--wrap=__aeabi_l2d \ + -Wl,--wrap=__aeabi_ui2d \ + -Wl,--wrap=__aeabi_ul2d \ + -Wl,--wrap=__aeabi_d2iz \ + -Wl,--wrap=__aeabi_d2lz \ + -Wl,--wrap=__aeabi_d2uiz \ + -Wl,--wrap=__aeabi_d2ulz \ + -Wl,--wrap=__aeabi_d2f \ + -Wl,--wrap=sqrt \ + -Wl,--wrap=cos \ + -Wl,--wrap=sin \ + -Wl,--wrap=tan \ + -Wl,--wrap=atan2 \ + -Wl,--wrap=exp \ + -Wl,--wrap=log \ + -Wl,--wrap=ldexp \ + -Wl,--wrap=copysign \ + -Wl,--wrap=trunc \ + -Wl,--wrap=floor \ + -Wl,--wrap=ceil \ + -Wl,--wrap=round \ + -Wl,--wrap=sincos \ + -Wl,--wrap=asin \ + -Wl,--wrap=acos \ + -Wl,--wrap=atan \ + -Wl,--wrap=sinh \ + -Wl,--wrap=cosh \ + -Wl,--wrap=tanh \ + -Wl,--wrap=asinh \ + -Wl,--wrap=acosh \ + -Wl,--wrap=atanh \ + -Wl,--wrap=exp2 \ + -Wl,--wrap=log2 \ + -Wl,--wrap=exp10 \ + -Wl,--wrap=log10 \ + -Wl,--wrap=pow \ + -Wl,--wrap=powint \ + -Wl,--wrap=hypot \ + -Wl,--wrap=cbrt \ + -Wl,--wrap=fmod \ + -Wl,--wrap=drem \ + -Wl,--wrap=remainder \ + -Wl,--wrap=remquo \ + -Wl,--wrap=expm1 \ + -Wl,--wrap=log1p \ + -Wl,--wrap=fma + +# float +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 + +EXTRALDFLAGS += \ + -Wl,--wrap=__aeabi_fadd \ + -Wl,--wrap=__aeabi_fdiv \ + -Wl,--wrap=__aeabi_fmul \ + -Wl,--wrap=__aeabi_frsub \ + -Wl,--wrap=__aeabi_fsub \ + -Wl,--wrap=__aeabi_cfcmpeq \ + -Wl,--wrap=__aeabi_cfrcmple \ + -Wl,--wrap=__aeabi_cfcmple \ + -Wl,--wrap=__aeabi_fcmpeq \ + -Wl,--wrap=__aeabi_fcmplt \ + -Wl,--wrap=__aeabi_fcmple \ + -Wl,--wrap=__aeabi_fcmpge \ + -Wl,--wrap=__aeabi_fcmpgt \ + -Wl,--wrap=__aeabi_fcmpun \ + -Wl,--wrap=__aeabi_i2f \ + -Wl,--wrap=__aeabi_l2f \ + -Wl,--wrap=__aeabi_ui2f \ + -Wl,--wrap=__aeabi_ul2f \ + -Wl,--wrap=__aeabi_f2iz \ + -Wl,--wrap=__aeabi_f2lz \ + -Wl,--wrap=__aeabi_f2uiz \ + -Wl,--wrap=__aeabi_f2ulz \ + -Wl,--wrap=__aeabi_f2d \ + -Wl,--wrap=sqrtf \ + -Wl,--wrap=cosf \ + -Wl,--wrap=sinf \ + -Wl,--wrap=tanf \ + -Wl,--wrap=atan2f \ + -Wl,--wrap=expf \ + -Wl,--wrap=logf \ + -Wl,--wrap=ldexpf \ + -Wl,--wrap=copysignf \ + -Wl,--wrap=truncf \ + -Wl,--wrap=floorf \ + -Wl,--wrap=ceilf \ + -Wl,--wrap=roundf \ + -Wl,--wrap=sincosf \ + -Wl,--wrap=asinf \ + -Wl,--wrap=acosf \ + -Wl,--wrap=atanf \ + -Wl,--wrap=sinhf \ + -Wl,--wrap=coshf \ + -Wl,--wrap=tanhf \ + -Wl,--wrap=asinhf \ + -Wl,--wrap=acoshf \ + -Wl,--wrap=atanhf \ + -Wl,--wrap=exp2f \ + -Wl,--wrap=log2f \ + -Wl,--wrap=exp10f \ + -Wl,--wrap=log10f \ + -Wl,--wrap=powf \ + -Wl,--wrap=powintf \ + -Wl,--wrap=hypotf \ + -Wl,--wrap=cbrtf \ + -Wl,--wrap=fmodf \ + -Wl,--wrap=dremf \ + -Wl,--wrap=remainderf \ + -Wl,--wrap=remquof \ + -Wl,--wrap=expm1f \ + -Wl,--wrap=log1pf \ + -Wl,--wrap=fmaf diff --git a/jack/post_rules.mk b/jack/post_rules.mk new file mode 100644 index 0000000..9880cdb --- /dev/null +++ b/jack/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(MCU_SERIES), RP2040) + include picosdk_math.mk +endif diff --git a/keymaps/onekey/f411_ls0x/config.h b/keymaps/onekey/f411_ls0x/config.h index 40e4a9c..024f260 100644 --- a/keymaps/onekey/f411_ls0x/config.h +++ b/keymaps/onekey/f411_ls0x/config.h @@ -18,5 +18,5 @@ #define LS0XX_CS_PIN A6 #define LS0XX_HEIGHT 160 -#define LS0XX_WIDTH 80 +#define LS0XX_WIDTH 68 #define LS0XX_SPI_DIVISOR 16 diff --git a/keymaps/onekey/rp_smp/rules.mk b/keymaps/onekey/rp_smp/rules.mk index a263ca2..790127f 100644 --- a/keymaps/onekey/rp_smp/rules.mk +++ b/keymaps/onekey/rp_smp/rules.mk @@ -1,39 +1,3 @@ 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)) |