Skip to content

Add SPI support to STM32 platform#2127

Draft
pguyot wants to merge 7 commits intoatomvm:mainfrom
pguyot:w08/stm32-spi
Draft

Add SPI support to STM32 platform#2127
pguyot wants to merge 7 commits intoatomvm:mainfrom
pguyot:w08/stm32-spi

Conversation

@pguyot
Copy link
Collaborator

@pguyot pguyot commented Feb 21, 2026

Continuation of:

These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).

SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later

@pguyot pguyot marked this pull request as draft February 21, 2026 22:16
@pguyot pguyot force-pushed the w08/stm32-spi branch 4 times, most recently from 283f9a2 to 54beff0 Compare February 22, 2026 12:42
AtomVM now supports the following STM32 families:
- stm32f2xx
- stm32f4xx (was supported by libopencm3)
- stm32f7xx (was supported by libopencm3)
- stm32g0xx
- stm32g4xx
- stm32h5xx
- stm32h7xx
- stm32l4xx
- stm32l5xx
- stm32u3xx
- stm32wbxx

Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Create new avm_emscripten, avm_esp32, avm_network, avm_rp2 and avm_stm32
libraries and build atomvmlib-<platform>-<jit aarch>.avm files for each
platform and jit combination.

Create new `{gpio,i2c,spi,uart}_hal` behavior module that serve as abstractions
for all platforms.

Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Provide low-level API (nifs) and high-level API following `i2c_hal`
behavior

Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Also add a sample code, `spi_flash.erl` confirmed to work on both Pico-W
and ESP32C2, using the same high level SPI API.

Signed-off-by: Paul Guyot <pguyot@kallisys.net>
Signed-off-by: Paul Guyot <pguyot@kallisys.net>
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