arduino / arduino/ArduinoCore-mbed

rp2040 core does not use rom floating point functions

Open
#614 7 comments 0 reactions 0 assignees View on GitHub
enhancement RP2040
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.