interrupt: Make interrupt::enable() unsafe
To bring this crate more in line with cortex-m, mark interrupt::enable()
as unsafe. This also fixes a soundness issue: When the function is
safe, one could call it inside a critical section in entirely safe rust.
This is problematic because lot's of code in critical sections relies on
the fact that interrupts are disabled and it thus can safely perform
non-atomic operations without anything interrupting it.
Signed-off-by: Rahix <rahix@rahix.de>
Add asm module for assembly instructions
Add a new module containing wrapper functions for various assembly
instructions. These functions are marked inline(always) to ensure they
will always just generate the single instruction as expected.
Signed-off-by: Rahix <rahix@rahix.de>
makefile: also clean generic.rs
makefile: all and clean are .PHONY
ci: Get rid of matrix build
Instead of a matrix build just build a single time
with all features enabled.
Signed-off-by: Rahix <rahix@rahix.de>
attiny88: simplify patches thanks to svdpatch fixes
svdpatch: Fix _replace_enum when used on derived fields
Make sure the enum is replaced properly in the case of derived
enumerated values.
Signed-off-by: Rahix <rahix@rahix.de>
svdpatch: Fix peripheral modifications
attiny85: Make differential channel names consistent
attiny85: Numerous patch improvements
attiny85: USI patch fixes
attiny85: Timer patch fixes
attiny85: Add patch for Timer/Counter 1
Signed-off-by: Rahix <rahix@rahix.de>
atmega328p: Add patch for 8-bit asynchronous timer
Signed-off-by: Rahix <rahix@rahix.de>