arduino / arduino/ArduinoCore-mbed
rp2040 core does not use rom floating point functions
- Dominant language
- C
- Stars
- 411
- Forks
- 225
- PR merge metrics
- No merged PRs in 30d
Description
The rp2040 includes optimized floating point functions in ROM, using linker magic to replace the standard gcc floating point functions when building applications from the pico SDK or Philhower core.
But the Arduino mbed core for rp2040 does not do the linker magic, causing applications that use floating point to be much slower (and larger) than on other rp2040 platforms.
the linker magic is included here: https://github.com/earlephilhower/arduino-pico/blob/master/lib/platform_wrap.txt
Arduino's (much smaller) link options: https://github.com/arduino/ArduinoCore-mbed/blob/master/variants/RASPBERRY_PI_PICO/ldflags.txt
Contributor guide
No contributing guide indexed for this repository
Research direction
Compare lib/platform_wrap.txt in arduino-pico with variants/RASPBERRY_PI_PICO/ldflags.txt in ArduinoCore-mbed, starting with the linker options used for RP2040 builds. Confirm how the ROM floating-point replacements are selected and whether the mbed variant omits them. Done means RP2040 applications built with this core use the ROM functions and retain the expected smaller, faster floating-point behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- build-system, embedded-iot
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100