sifli-hal

Crates.iosifli-hal
lib.rssifli-hal
version0.1.1
created_at2025-01-23 06:59:14.055481+00
updated_at2025-09-16 05:01:12.908143+00
descriptionHardware Abstraction Layer (HAL) for SiFli MCUs
homepagehttps://github.com/OpenSiFli/sifli-rs
repositoryhttps://github.com/OpenSiFli/sifli-rs
max_upload_size
id1527562
size456,176
Decaday (decaday)

documentation

https://docs.rs/sifli-hal

README

SiFli HAL

Crates.io Crates.io docs.rs Support status

δΈ­ζ–‡ | English

Rust Hardware Abstraction Layer (HAL) and Embassy driver for SiFli MCUs.

[!WARNING]

This project is working-in-progress and not ready for production use.

Let's GO!

Introduction to Embedded Rust

Get Started

examples

Flash and Debug Guide

Status

HAL Implementation Status (Click to expand/collapse)
  • βœ…: Supported & Tested
  • πŸŒ—: Partially Supported & Tested
  • ❓: Written, needs example/test
  • πŸ“: Planned & WIP
  • ❌: Not supported by Hardware (N/A)
  • βž•: Async Feature
Peripheral Feature sf32lb52x 56x 58x
hcpu
PAC (Peripheral Access Crate) πŸŒ—
Startup & Interrupt βœ…
Flash Table πŸŒ—
embassy GPTIM Time Driver βœ…
ATIM Time Driver (#5)
Embassy Peripheral Singleton βœ…
RCC Peripheral RCC Codegen (enable, freq...) βœ…
Read current RCC tree βœ…
RCC tree Configure πŸŒ—
Modify frequency in same DVFS mode βœ…
GPIO Blinky βœ…
PinMux Codegen & AF Config βœ…
IO Mode & AonPE Config πŸŒ—
EXTI βž•βœ…
USART Blocking βœ…
Buffered(Interrupt) βž• βœ…
DMA βž• βœ…
RingBuffered(DMA) βž• ❓
DMA Transfer(P2M, M2P) βœ…
RingBuffer ❓
ExtDMA
USB
(see also:musb)
embassy-usb βž• βœ…
Device: HID, CDC_ACM ... βœ…
HOST / OTG
GPADC Blocking βœ…
Interrupt βž• βœ…
Timer Trigger
VBAT & External Channel βœ…
Multi Channel & Slot
Differential Input
DMA βž•
Calibration
PMU DVFS Upscale βœ…
DVFS Downscale
Charge Modoule
Buck & LDO πŸŒ—
Audio AudCodec/ADC, DAC
AudPrc/Channel, Mixer, Volume
I2S/DMA, Master, Slave
PDM
I2C
SPI
Mailbox
BT
BLE
LCDC/Layer, SPI, DBI
ePicasso

Features

  • defmt, log: Debug log output.

  • sf32lb52x: Target chip selection. Currently, only sf32lb52x is supported.

  • set-msplim: Set the MSPLIM register in __pre_init. This register must be set before the main function’s stack setup (since the bootloader may have already configured it to a different value), otherwise, it will cause a HardFault SiFli-SDK #32.

    This feature will be removed after cortex-m-rt #580 is released.

  • time-driver-xxx: Timer configuration for time-driver. It requires at least two capture/compare channels. For the sf32lb52x hcpu, only atim1 (TODO: #5), gptim1, and gptim2 are available.

  • unchecked-overclocking: Enable this feature to disable the overclocking check. DO NOT ENABLE THIS FEATURE UNLESS YOU KNOW WHAT YOU'RE DOING.

License

This project is under Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).

Commit count: 113

cargo fmt