Add ADCs to MUX in ATmega8
Fix timer patches for ATmega8
Add support for ATtiny404
Rename `udebug` feature to `ufmt`
Cargo.toml: Update edition to 2021
We have recently (#104) dropped support for compilers that don't support
edition 2021. Make this explicit by enforcing edition 2021 in
Cargo.toml.
Update the bare-metal crate to 1.0.0
The new crate version generates much cleaner code due to #[inline] annotations.
This is an API break, because the CriticalSection + Mutex mechanism changes
from exterior reference lifetime to interior reference lifetime management.
irq: Optimize interrupt save/restore
Avoid unnecessary mask and branch instructions.
The basic reasoning behind this is that all other flags in the SREG can
be clobbered without ill effects. The restore() function is an
optimization fence and the compiler is not allowed to make assumptions
about memory or SREG state after execution.
This avoids an `and` and a `breq` instruction or similar in every
critical section.
While at it, also introduce a better API for manual IRQ-flag management.
Remove all llvm_asm macros
ci: Upgrade to a new compiler version
Add basic documentation for beginners
Adds patch for the timers on attiny167