*svd2cpp* is a generator that parses .svd files provided by ARM chip vendor. It generates header file that allows for reading and writing to microcontroller's registers with zero overhead.
- **Compile-time checking.** This is an aspect that is making this solution better than any other parser/pre-generated header.
- You won't be able to write to wrong register.
- You won't be able to write wrong value (i.e. 0b1011 to 3-bit field) to register.
- You can't read from write-only or write to read-only register. Any attempt to do something wrong will succeed in error at **compile-time** - no more runtime debugging to find out misspelling errors!
- **Zero-cost abstraction.** Another strong aspect of headers generated by *svd2cpp* is that using it in code will result in zero overhead because all of the checking is done at compile-time.
- **Portability.** As long as manufacturer provides .svd files in CMSIS-SVD format (and most major manufacturers of Cortex-M based chips does), you can use it with this parser.