furs

efficient
Login

efficient

**Code size when FURS replaces every name with an absolute 32-bit literal**
    • Each register access becomes a 32-bit literal encoded as MOVW/MOVT (two 16-bit instructions) plus the 32-bit literal itself → 6 bytes per access.
    • If your application touches **N** distinct registers, the extra cost over “base + offset” (4 bytes) is 2 bytes per access.
    • Break-even: 29.6 kB / 2 B ≈ **14800 register accesses** which is far beyond typical usage.
**Typical project impact**
    • A small application that configures 30 registers and uses 100 bit-masks will incur 30 × 6 B = 180 B of literal code, while avoiding 29.6 kB of dictionary → **net saving of ~29 kB**.
    • A large application that touches 400 registers and 1 000 bit-fields will incur (400 + 1 000) × 6 B = 8.4 kB of literal code, still well below 29.6 kB → **net saving of ~21 kB**.
Bottom line:
For the STM32F051 (64 kB flash) FURS **always** saves flash unless your application literally configures **every** register and bit-field in the entire peripheral set. Even then the break-even is ~14800 accesses, which is far beyond typical usage. Therefore FURS absolute-address mode is strongly recommended for this part.