Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Planned Targets

These targets are on the roadmap but are not yet supported.

Planned MCU Targets

TargetChipCPUNotes
stm32f4STM32F4xxCortex-M4FWidespread in hobbyist and industrial hardware
samd21ATSAMD21Cortex-M0+Found on Arduino Zero, Adafruit boards
samd51ATSAMD51Cortex-M4FFound on Adafruit Metro M4, Feather M4
nrf52nRF52840Cortex-M4FBLE-capable; popular for wireless firmware
rp2350-riscvRP2350RISC-V (Hazard3)RISC-V mode on the RP2350 chip
esp32ESP32-C3 / C6RISC-VWi-Fi/BLE capable; popular for IoT firmware

Planned Host Targets

Host targets are planned once the MCU pipeline matures. The current focus is getting the embedded path right.

TargetArchitectureNotes
Linux x86_64x86-64Desktop / server
Linux aarch64ARMv8Raspberry Pi, Apple Silicon VMs
Linux riscv64RISC-V 64-bitEmerging platform
macOS x86_64x86-64Intel Mac
macOS aarch64ARMv8Apple Silicon

Host targets use the same Flint source language. micro/* and board/* packages are MCU-only. core/* and std/* packages work on both, with target-specific implementations under the hood.

Backend Design

The compiler’s backend architecture is designed now so these targets fit later without requiring fundamental changes. The FIR (Flint IR) is target-independent. New targets add a machine-lowering stage and a code generation backend, not new language features.

Contributing

If you want to bring up a new target, the right starting point is:

  1. Add the target identifier to the manifest parser.
  2. Implement a machine-lowering stage from FIR to target-specific machine IR.
  3. Implement a code generation backend (instruction selection, register allocation).
  4. Add a hal/* package for chip startup, clock, and timer bring-up.
  5. Add micro/* implementations for the standard peripheral surface.
  6. Add a board package for at least one common board.
  7. Add end-to-end test cases.

The flint-backend crate and flint-lower crate are the starting points for understanding the current pipeline.