Add support for ATmega2560
make: Allow overriding rustup toolchain
Allow overriding the rustup toolchain used for rustfmt by invoking make
like this:
make RUSTUP_TOOLCHAIN=nightly-2020-07-12
This will (hopefully) help when working with nightly versions where
rustfmt is unavailable.
Signed-off-by: Rahix <rahix@rahix.de>
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>
make: Use a patchfile instead of weird sed expr
As reported in issue #24 the sed(1) expression used to patch the generated
`mod.rs` does not work on MacOS (BSD sed). Instead, use patch(1) and a small
patchfile to accomplish the same task.
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>
make: Make sed usage more portable
fixes #5
Signed-off-by: Rahix <rahix@rahix.de>
make: Add targets for individual chips
Signed-off-by: Rahix <rahix@rahix.de>
make: Fix dependencies of patch files
Signed-off-by: Rahix <rahix@rahix.de>
Integrate patching in the build process