---
title: "CRC"
canonical_url: https://developer.repebble.com/pebbleos/docs/drivers/crc/
last_updated: 2026-10-21
sdk_version: 4.33.1
---
# CRC

Source: https://developer.repebble.com/pebbleos/docs/drivers/crc/

CRC drivers accelerate the [CRC subsystem](https://developer.repebble.com/pebbleos/docs/subsystems/crc.md) with a hardware CRC unit. They are optional: without one, the subsystem computes every CRC in software.

## Interface

A driver selects the hidden `CONFIG_CRC_HW_ACCEL` symbol and implements the two functions in `include/pbl/drivers/crc.h`, one per algorithm. Each takes a running value and a buffer, processes a prefix of it that is a whole number of 32-bit words, and returns its length in bytes.

Returning less than the full length is always allowed: the subsystem finishes in software. A driver returns 0 whenever the hardware cannot be used, before it is ready, when its self-test failed, or for any other reason, so callers never see a failure.

## Implementations

- [SF32LB](https://developer.repebble.com/pebbleos/docs/drivers/crc/sf32lb.md)

The [API reference](https://developer.repebble.com/pebbleos/apidoc/d4/d0f/group __drivers__ crc.html) documents the interface.

Generated from PebbleOS [3a7b71785](https://github.com/coredevices/pebbleos/commit/3a7b71785fd439666c4a8bc116f561140e8dec01). This page is maintained in the pebbleos repository: [docs/drivers/crc/index.md](https://github.com/coredevices/pebbleos/blob/3a7b71785fd439666c4a8bc116f561140e8dec01/docs/drivers/crc/index.md).
