Code size analysis#

pw_hdlc: Simple, robust, and efficient serial communication

pw_hdlc currently optimizes for robustness and flexibility instead of binary size or performance.

The HDLC encode and decode size report shows the cost of everything needed to use pw_hdlc, including the dependencies on common modules like CRC32 from pw_checksum and variable-length integer handling from pw_varint.

The HDLC encode and decode, ignoring CRC and varint size report shows the cost of pw_hdlc if your application is already linking CRC32 and variable-length integer handling. pw_varint is commonly used since it’s necessary for protocol buffer handling, so it’s often already present.

Note

The size report that is usually displayed here is temporarily unavailable while we migrate the pigweed.dev build system from GN to Bazel. See b/388905812 for updates.

More pw_hdlc docs#

Get started & guides

How to set up and use pw_hdlc

API reference

Reference details about the pw_hdlc API

Design

Design details about pw_hdlc

Code size analysis

The code size impact of pw_hdlc

RPC over HDLC example

A step-by-step example of sending RPCs over HDLC

Experimental async router

An experimental asynchronous HDLC router using pw_channel