~ruther/avr-device

27392685 — Rahix 4 years ago
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>
ba0df30a — Rahix 4 years ago
Update proc-macro dependencies

Update to syn 1.0 and fix the interrupt macro to work well with the new
version.

Signed-off-by: Rahix <rahix@rahix.de>
1969ec39 — Liam Perlaki 4 years ago
Add patches for ADC peripherals

Add a patch to fixup a few registers in the ADC peripheral
for ATmega328P, ATmega32U4, ATmega1280, and ATmega64.
8c207c61 — Rahix 4 years ago
ci: Fix nightly to 2020-07-12

Fix nightly to a version where rustfmt was still available.

Signed-off-by: Rahix <rahix@rahix.de>
7113a1e1 — Rahix 4 years ago
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>
c3144637 — Liam Perlaki 4 years ago
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.
67d2554c — Rahix 4 years ago
README: Use ATmega64 as an up-to-date example

Signed-off-by: Rahix <rahix@rahix.de>
29061345 — Rahix 4 years ago
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>
78a95883 — Rahix 4 years ago
Update dependency versions

Signed-off-by: Rahix <rahix@rahix.de>
25305d5b — Rahix 4 years ago
interrupts: Fix sed expressions for parsing interrupt list

The format for the interrupt sources changed which silently made
gen-intr-lut.sh no longer generate any interrupt names.  Fix the
expressions so interrupt names are recognized again and the macro
can be used for generating interrupt definitions again.

Signed-off-by: Rahix <rahix@rahix.de>
169804d1 — Rahix 5 years ago
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>
4d281f56 — Rahix 5 years ago
ci: Use atdf2svd from crates.io

Signed-off-by: Rahix <rahix@rahix.de>
75629772 — Rahix 5 years ago
Install atdf2svd from crates.io

Signed-off-by: Rahix <rahix@rahix.de>
6f0b1cc9 — Rahix 5 years ago
gen-intr-lut: Switch to /usr/bin/env bash as interpreter

The location of the `bash` binary can vary between systems.  Switch to
`/usr/bin/env bash` which is the recommended way to do it.

Ref: PR #22

Signed-off-by: Rahix <rahix@rahix.de>
dbbbc6ef — Rahix 5 years ago
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>
a2c84372 — Jonah Dahlquist 5 years ago
Add patch for SPI device

57eef724 — Rahix 5 years ago
Improve build instructions

This commit changes the install-command for rustfmt to explicitly
install the nightly version.  Ref #20.

Signed-off-by: Rahix <rahix@rahix.de>
5cbb4d85 — Rahix 5 years ago
ci: Test-build runtime feature

Signed-off-by: Rahix <rahix@rahix.de>
88fcf0c8 — Rahix 5 years ago
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>
0c0ed043 — Rahix 5 years ago
ci: Attempt building multple chips at once as well

Signed-off-by: Rahix <rahix@rahix.de>
Next
Do not follow this link