RTEMS | bsps/arm/stm32f4: Add SPI bus driver (!1294)

Moksh Panicker (@mokshpanicker) gitlab at rtems.org
Sun Jun 7 09:19:00 UTC 2026



Moksh Panicker created a merge request: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1294

Project:Branches: mokshpanicker/rtems:stm32f4-spi-driver to rtems/rtos/rtems:main
Author:   Moksh Panicker



Adds an interrupt-driven SPI bus driver for the STM32F4 SPI peripheral using the RTEMS spi_bus API (dev/spi/spi.h).

The STM32F4 SPI has no hardware FIFO - the data register holds a single byte, so the driver handles one byte per interrupt. This is a hardware constraint, not an implementation choice. DMA support can be added in a future version.

Supports 8-bit full-duplex master mode, SPI modes 0-3, MSB/LSB- first, and automatic baud-rate prescaler selection. Chip select is left to the application via GPIO.

New files:

- stm32f4xxxx_spi.h: register definitions (RM0090 section 28.5)
- stm32f4-spi.h: public driver interface
- spi.c: driver implementation

Verified to compile cleanly for arm/stm32f4 and arm/realview_pbx_a9_qemu with GCC 15.2.0.

Discussed with Christian Mauderer before submission.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1294
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260607/5f713949/attachment.htm>


More information about the bugs mailing list