Skip to content

Power Management Example — Zig

Source: apps/zig/heap/example_pm/src/main.zig (also apps/zig/zeroheap/example_pm/src/main.zig) | WASM demo not available — Zig 0.16 still lacks wasm32-emscripten support

Demonstrates the PM state machine with automatic idle transitions, peripheral power domain reference counting, wake source registration (GPIO button + UART), custom battery-aware power policy, transition notifications, and runtime power statistics.

Language-specific patterns

This example uses the ove Zig module with allocator-aware constructors (Type.create(allocator)), exhaustive RTOS dispatch via switch (ove.target.current_rtos), narrow per-op error sets, defer-based cleanup, and std.log.* integration through ove.log.logFn.

See the overview for architecture details and the full API list.

How to build

# Native POSIX
make host.posix.example_pm_zig
make configure && make download && make && make run