It’s a collection of C++11/17/20 libraries to program AVR8 that shares a common set of goals and requirements. Each library should follow:
- At least support to C++11. Support to newer standards is optional.
- The library should be header-only.
- The zero-overhead principle must guides design decisions and implementation.
- Space performance is more important than speed performance, as a general rule.
- Runtime errors should be brought to compile-time whenever possible.
- The library doesn’t need to support
-O0
orO1
. - The library should use the
-Os
as the target optimization level to be used. - The code written in the application layer should be expressive and concise when possible.
avrIO: Operation of I/O port pins and I/O registers.
avrINT: Facilities to use the interrupt capabilities.
avrWDT: Setup of the watchdog timer(WDT).
avrSLEEP: Facilities to use the power management and sleep modes.