Skip to content

turbo: STM32F4 boards loader enable native .mpy default - #11355

Open
mikeysklar wants to merge 1 commit into
adafruit:mainfrom
mikeysklar:load-native-stm32f4
Open

turbo: STM32F4 boards loader enable native .mpy default#11355
mikeysklar wants to merge 1 commit into
adafruit:mainfrom
mikeysklar:load-native-stm32f4

Conversation

@mikeysklar

Copy link
Copy Markdown
Collaborator

What

Enables the turbo loader (CIRCUITPY_LOAD_NATIVE) by default on STM32F4.

All 16 boards fit.

Follow-up to #11332 (RP2).

Hardware tested

Feather STM32F405 Express

10.3.0-66-g55984e753c, which includes this commit.

Board vsum bytecode vsum viper .mpy pixels viper .mpy pixels @native .mpy
Feather STM32F405 Express 149.1 ms 9.9 ms 437 ms 2,777 ms

How I tested it

All 24 stm boards built in their tightest CI language with GCC 15.2.1.

Hardware used vsum.py from #11332 plus pixels.py.

Tightest F4 boards Language Flash free with the loader
meowbit_v121 ja 76 B
espruino_pico ja 16,844 B
pyb_nano_v2 ja 18,892 B
thunderpack_v11 ja 25,968 B
thunderpack_v12 ja 36,332 B
other 11 F4 boards 37 to 443 KB

Scope

nRF52, SAMx5x and Xtensa loader support will be separate PRs.

AI assistance

Claude Code was used.

Turn on CIRCUITPY_LOAD_NATIVE for the F4 series. Every F4 board has room
for the loader. F7 and H7 stay off: they are Cortex-M7 parts with caches,
and emitglue.c only does the cache maintenance for loaded code when
__ICACHE_PRESENT is defined, which the stm port does not provide there.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant