Register Map YAML to C Header
Generate a C header from a register description so firmware and documentation cannot drift apart. Emit address defines plus shift and mask macros for every field.
Constraints
- Input is a list of dicts with name, address and fields.
- Each field has a name, offset and width.
- Emit uppercase macro names prefixed by the register name.
- Overlapping fields within a register must raise ValueError.
- Output must be deterministic - sorted by address.
- No external templating libraries.
1def generate_header(registers):2 """Return the C header text for a list of register descriptions."""3 # TODO4 return ""