`efm32hg-pac` logo

`efm32hg-pac`

Free

[![crates.io](https://img.shields.io/crates/v/efm32hg-pac)](https://crates.io/crates/efm32hg-pac)

FreeFree tier
Type
Open Source

About `efm32hg-pac`

efm32hg-pac is a Peripheral Access Crate (PAC) for the EFM32 Happy Gecko (EFM32HG) microcontroller series from Silicon Labs. It provides low-level register definitions and safe access to the device's peripherals, enabling bare-metal development in Rust. This crate is part of the rust-embedded ecosystem and is generated from official SVD files using svd2rust.

Key Features

Low-level register definitions for all peripherals
Safe peripheral access via svd2rust-generated API
Interrupt bindings for each peripheral
Support for multiple EFM32HG device variants via feature flags
Part of the rust-embedded community ecosystem

Pros & Cons

Pros
  • Provides safe Rust bindings for hardware registers, reducing risk of misconfiguration
  • Automatically generated from official SVD files for accuracy and completeness
  • Well-documented within the rust-embedded community
  • Supports multiple device variants through Cargo features
Cons
  • Requires solid knowledge of embedded Rust and the EFM32HG hardware
  • Offers only PAC-level abstractions; no higher-level HAL is included
  • Limited to the EFM32 Happy Gecko series only

Best For

Bare-metal embedded development on EFM32HG seriesWriting device drivers with direct register accessLow-level hardware abstraction for RTOS or bare-metal applications

FAQ

What is a Peripheral Access Crate (PAC)?
A PAC is a low-level Rust crate generated from the device's SVD file that provides type-safe register definitions and safe access to hardware peripherals, forming the foundation for higher-level hardware abstraction layers.
How do I use this crate?
Add `efm32hg-pac` as a dependency in your Cargo.toml and enable the appropriate feature flag for your specific EFM32HG device variant. Refer to the crate documentation for register access examples.