Skip to content

Commit b2ec6ec

Browse files
GCC to 12.4, Newlib to 4.3.0, faster RP2350 libs (#2480)
Newlib built using `-Os` causes things like `memcpy` to be very slow on the RP2350 because it uses byte-wise operations. On the RP2040 this doesn't matter because there is a ROM routine we use instead of the library, but on the Pico 2 it's almost 10x slower than the optimal method. Update GCC to 12.4 Update Newlib to 4.4.0 Move to -O2 library compilation New toolchain looks to add ~10K to RP2350 flash usage (less on the RP2040).
1 parent f18fa88 commit b2ec6ec

19 files changed

+177
-174
lines changed

lib/rp2040/libbearssl.a

-140 Bytes
Binary file not shown.

lib/rp2040/libipv4-big.a

204 Bytes
Binary file not shown.

lib/rp2040/libipv4-bt-big.a

532 Bytes
Binary file not shown.

lib/rp2040/libipv4-bt.a

532 Bytes
Binary file not shown.

lib/rp2040/libipv4-ipv6-big.a

304 Bytes
Binary file not shown.

lib/rp2040/libipv4-ipv6-bt-big.a

636 Bytes
Binary file not shown.

lib/rp2040/libipv4-ipv6-bt.a

636 Bytes
Binary file not shown.

lib/rp2040/libipv4-ipv6.a

304 Bytes
Binary file not shown.

lib/rp2040/libipv4.a

204 Bytes
Binary file not shown.

lib/rp2040/libpico.a

140 Bytes
Binary file not shown.

lib/rp2350/libbearssl.a

-140 Bytes
Binary file not shown.

lib/rp2350/libipv4-big.a

-68 Bytes
Binary file not shown.

lib/rp2350/libipv4-ipv6-big.a

8 Bytes
Binary file not shown.

lib/rp2350/libipv4-ipv6.a

8 Bytes
Binary file not shown.

lib/rp2350/libipv4.a

-68 Bytes
Binary file not shown.

lib/rp2350/libpico.a

56 Bytes
Binary file not shown.

package/package_pico_index.template.json

+172-172
Large diffs are not rendered by default.

tools/get.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ def unpack(filename, destination):
5151
if filename.endswith('tar.gz'):
5252
tfile = tarfile.open(filename, 'r:gz')
5353
os.chdir("../system/")
54-
tfile.extractall(destination)
54+
try:
55+
tfile.extractall(destination, filter='fully_trusted')
56+
except TypeError:
57+
tfile.extractall(destination)
5558
dirname= tfile.getnames()[0]
5659
elif filename.endswith('zip'):
5760
zfile = zipfile.ZipFile(filename)

tools/libbearssl/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ install: all version-header
1111
cp bearssl/inc/bearssl*.h ../../include/bearssl/.
1212

1313
all2: bearssl/README.txt
14-
PATH="$(PWD)/../../system/arm-none-eabi/bin/:$(PATH)" && arm-none-eabi-gcc --version && cd bearssl && $(MAKE) CONF=pico2 all
14+
PATH="$(PWD)/../../system/arm-none-eabi/bin/:$(PATH)" && arm-none-eabi-gcc --version && cd bearssl && $(MAKE) CONF=pico2 clean all
1515

1616
install2: all2 version-header
1717
cp bearssl/pico/libbearssl.a ../../lib/rp2350/.

0 commit comments

Comments
 (0)