| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Signed-off-by: Phil Howard <github@gadgetoid.com>
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## master #19683 +/- ##
=======================================
Coverage 98.58% 98.59%
=======================================
Files 182 182
Lines 23322 23335 +13
Branches 5 5
=======================================
+ Hits 22993 23006 +13
Misses 328 328
Partials 1 1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness.
|
Sorry, something went wrong.
|
Code size report: Reference: rp2: Page-align the C heap ceiling. [11094ea]
Comparison: rp2: Document libc/mem-in-RAM divergence from pico-sdk 2.3.1. [merge of 3a07249]
mpy-cross: +0 +0.000%
bare-arm: +0 +0.000%
minimal x86: +0 +0.000%
unix x64: +0 +0.000% standard
stm32: +0 +0.000% PYBV10
esp32: +0 +0.000% ESP32_GENERIC
mimxrt: +0 +0.000% TEENSY40
rp2: -68 -0.007% RPI_PICO_W[incl -4(bss)]
samd: +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
qemu rv32: +0 +0.000% VIRT_RV32
|
Sorry, something went wrong.
|
Will have to poke that rp2 size difference and see if any of it is linker script wobbles versus the code refactor. |
Sorry, something went wrong.
Sorry, something went wrong.
|
Regarding the above Octoprobe results (the second edit to the comment):
|
Sorry, something went wrong.
pico-sdk 2.3.1 narrowed default_text_excludes.incl to libgcc and libm, which would move libc.a and the newlib mem* objects back to flash. The rp2 override keeps them in SRAM; this is now a deliberate divergence. Note that libc.a only matches on RISC-V builds, where newlib is linked from libc.a rather than libg.a. Signed-off-by: Phil Howard <github@gadgetoid.com>
|
I've dropped an extra linker .incl which was in this PR but was not only doing basically nothing but would have exploded SRAM usage on RISC-V with a C++ module linked. The *libc.a divergence (which still works) never matched anything on Arm builds; all the newlib symbols resolve from libg.a. For RISC-V it moves the following into SRAM (and always has afaik):
If we were to fix it for Arm, I'd use roughly ~1.2 KB SRAM which is a per-board decision a downstream vendor (like us) might want to make (at least before we ran out of SRAM), but not a suitable cost for RP2 in general. The perf boost isn't all that great anyway (that wild misc_mandel swing is a particularly egregious case of flash placement lottery):
|
Sorry, something went wrong.
|
Thanks for all the analysis and the updates, @Gadgetoid. I did some diffing of the .map files and the changes look pretty innocuous to me. Do you have any other reservations about marking this as ready to merge? |
Sorry, something went wrong.
Just the usual self-doubt and crushing dread! 😆 |
Sorry, something went wrong.
There was a problem hiding this comment.
I think this seems like a pretty safe call, and if it does bump into a regression then we might as well find out sooner than later. 😁
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Summary
Bump Pico SDK to v2.3.1 - https://github.com/raspberrypi/pico-sdk/releases/tag/2.3.1
Testing
TBC
Trade-offs and Alternatives
Pico SDK's "bugfix" to linker scripts was walked back in raspberrypi/pico-sdk#3075 and our downstream divergences still preserve the SDK 2.3.0 behaviour. May require some consideration around deferring to upstream.
This bump also sets -mstrict-align on RISCV builds, so there may be a size difference.
Bugfixes may plausibly affect the following issues, but this is as of yet untested:
Generative AI
I used generative AI tools when creating this PR, but a human has checked the
code and is responsible for the code and the description above.