~ruther/avr-device

ref: 06ef5e65c7234543f08be66f1a10c284e2cdd68f avr-device/macros d---------
06ef5e65 — Michael Buesch 2 years ago
Small fixes
0e19ff0d — Rahix 2 years ago
Prepare 0.4.0
829131b7 — Rahix 2 years ago
Prepare 0.3.4
b19f2a16 — Rahix 2 years ago
Prepare 0.3.3
b0ac212c — Rahix 3 years ago
Prepare 0.3.2
46eebb95 — Rahix 3 years ago
Prepare 0.3.1
9aef8977 — tones111 3 years ago
rt: Implement cortex-m-rt-macros static mut conversion

Inside the entrypoint and interrupt handlers, perform a conversion which
turns `static mut`s into &mut references to the static.  This is safe
because exception handlers and the entrypoint are guaranteed to not be
reentrant.

This is the same behavior as `cortex-m-rt` where it is documented in the
Rust Embedded Book [1].

[1]: https://docs.rust-embedded.org/book/start/exceptions.html
cda2bcb5 — Rahix 4 years ago
Prepare 0.3.0
fc98f48a — Rahix 4 years ago
Prepare 0.2.3

Signed-off-by: Rahix <rahix@rahix.de>
054bfdbd — Rahix 4 years ago
Prepare 0.2.2

Signed-off-by: Rahix <rahix@rahix.de>
91f3ea8a — lights0123 4 years ago
Cause an error in the #[entry] macro instead of avr-device
ab1f1360 — Rahix 4 years ago
Prepare 0.2.0

Signed-off-by: Rahix <rahix@rahix.de>
ce2fbacc — Rahix 4 years ago
Include generated files instead of build-script

Signed-off-by: Rahix <rahix@rahix.de>
d11a9c2f — Rahix 4 years ago
Add crate metadata

Signed-off-by: Rahix <rahix@rahix.de>
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>
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>
Do not follow this link