Add basic support for ATmega4809
Add support for atmega328pb
Add basic support for ATmega644
Add support for the ATtiny84
Add atmega48p device support
Add basic support for ATmega168
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>
Add support for ATmega2560
Document #[interrupt] and #[entry]
Signed-off-by: Rahix <rahix@rahix.de>
macros: Add a #[entry] macro
Add a #[entry] macro for declaring the entry-point of the program,
similar to what cortex-m-rt is doing.
Signed-off-by: Rahix <rahix@rahix.de>
Use llvm_asm!() instead of asm!()
The asm!() feature was changed to a new syntax which this project did not yet
adopt. The old asm!() is now available as llvm_asm!(). Switch to that to
support nightly build.
See PR #27 for details.
Add basic support for ATmega64
Pull in the ATDF file from Microchip and add all the necessary plumbing
around the code-base to make it compile. Not tested against real
hardware and no device-specific patches are included yet.
Signed-off-by: Rahix <rahix@rahix.de>
Fix compatibility with svd2rust 1.16.1
svd2rust now generates a module containing generic descriptions which
the individual register definitions are based on. Fix the code
generation to deal with this module.
Signed-off-by: Rahix <rahix@rahix.de>
Implement interrupts
This commit adds a new feature-flag `rt` which, when enabled, adds the
`#[interrupt]` procedural macro to define an interrupt handler. Unlike
the implementation in cortex-m, this version needs an attribute which is
the name of the chip the interrupt is for. In code, an interrupt
handler might look like this:
#![feature(abi_avr_interrupt)]
#[avr_device::interrupt(atmega32u4)]
fn INT6() {
// Do Something
}
Closes #1.
Signed-off-by: Rahix <rahix@rahix.de>
Switch to a new design as outlined in #17
Signed-off-by: Rahix <rahix@rahix.de>
hack: Make sure you cannot build for more than one chip
Signed-off-by: Rahix <rahix@rahix.de>
atmega1280: Add missing Peripherals::take()
Signed-off-by: Rahix <rahix@rahix.de>