EMLIB to Peripheral HAL Migration Guide#

Purpose#

This guide provides comprehensive instructions for migrating peripheral code from Silicon Labs' legacy EMLIB (em_*) to the modern Peripheral HAL (sl_hal_*) drivers.

With the introduction of the Series 3 platform, a new low-level drivers library called Peripheral HAL has been created. Peripheral HAL supports both Series 2 and Series 3 devices and has been designed with the following characteristics:

  • Modularity: Clear separation of concerns and functions

  • Easy maintenance: Simplified codebase structure

  • Flexibility: Granular control over peripheral operations

  • Consistency: Uniform patterns across all peripherals

  • Lightweight: Minimal memory footprint and overhead

Audience#

This guide is intended for:

  • Embedded software developers migrating existing Series 0/1/2 code to Series 2/3

  • Firmware architects planning migration strategy

  • Application engineers supporting customer migrations

  • Technical leads evaluating migration scope and effort

Prerequisites#

Required knowledge:

  • Proficient in C programming

  • Familiar with EMLIB APIs and peripheral concepts

  • Understanding of embedded systems fundamentals

  • Basic knowledge of Silicon Labs MCU architecture

Before starting migration, ensure you have:

  1. Development Environment:

    • Simplicity Studio 5

    • SiSDK 2025.6 or later

    • Target Series 2/3 hardware

  2. Project Setup:

    • Working EMLIB-based project

    • Access to existing codebase

    • Version control system configured

  3. Component Configuration:

    • In Simplicity Studio, most peripheral components have the same name for EMLIB and Peripheral HAL but are organized in different folderssl_power_manager_config.hsl_power_manager_config.h

    • Note: Both EMLIB and Peripheral HAL components can be added to the same project simultaneously, allowing incremental migration

  4. Documentation Access: