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
Only build docs for some MCUs on docs.rs
Sadly we are now starting to hit the limits of docs.rs with the amount
of supported MCUs. Only build documentation for a subset there and
mention that docs for the rest can be built locally.
Ref: #98
Add support for attiny13a
Add support for ATmega1284p
Add ATmega128RFA1 support
Adds basic ATmega128RFA1 support. Adjusts the common USART patches for
UCSZ? slightly to work with the ATmega128RFA1's ATDF.
Add support for ATtiny1614
Add support for ATtiny816
Add basic support for the ATtiny816 of the tinyAVR1-series.
Add support for ATtiny2313/A