#arm #cortex-m #efm32 #efm32gg #embedded-hal-impl

no-std efm32gg-hal

HAL for the EFM32GG (EFM32 Giant Gecko) family of microcontrollers

3 releases (breaking)

0.3.0 Jan 24, 2019
0.2.0 Jun 21, 2018
0.1.0 May 30, 2018

#9 in #embedded-hal-impl

29 downloads per month
Used in efm32gg-stk3700


814 lines


This is an implementation of the embedded-hal API for various Silicon Labs devices in the lineage around the EFM32 Giant Gecko.

Currently, the EFM32GG (Giant Gecko) and EFR32xG1 (original configuration of Mighty, Blue and Flex Gecko) are supported. The complexity of adding chip families probably varies from just adding the device as "works like that other device" (should apply to most EFM32 devices released before around 2016) to "Some functionality is not supported any more and needs workarounds" (eg. when bit-band access becomes mandatory for atomic operations on a register). On the long run, it can be expected to cover the devices supported by the vendor's emlib C library.

The name "efm32gg-hal" stuck from the first supported device, and will stay until the author finds a term that can serve as a stable identifier for "EFM32, EFR32 and any other chips that have compatible peripherals".

The actually used chip is selected by features named like "chip-efm32gg" or "chip-efr32x1"; pick an extern crate to load as "registers" and add the appropriate dependency to a crate typically created by svd2rust.

State of implementation

This is very immature software. So far, only GPIO pins are described in terms of the HAL's digital interface.


Please see the EFM32GG-STK3700 board crate for examples.


This is licensed under the Apache License or the MIT License at the your option. By contributing to this project, you license your contribution under the same dual-licensed terms unless the contribution itself says otherwise.


~180K SLoC