~ruther/avr-device

ref: 8be91f55956952f89e4ceb71847fafa51ed6f835 avr-device/src d---------
84f2b651 — David 4 years ago
Add ATmega8U2

a1f82aa7 — Rahix 4 years ago
Improve error message when no device is selected

Introduce a new `device-selected` feature to simpilify the logic for
showing an error when no device was selected.
911c1e25 — jaxter184 4 years ago
Add attiny84 and atmega644 to `src/lib.rs`
397170ad — jaxter184 4 years ago
Add attiny841 and attiny861
d1eed41c — Jan Paw 4 years ago
Add basic support for ATmega4809

ce031034 — Johan Kristell 4 years ago
Add support for atmega328pb
10b826e3 — Boris Vinogradov 4 years ago
Add basic support for ATmega644
f48ac82c — Andrew Dona-Couch 4 years ago
Add support for the ATtiny84
6cd5000d — Boris Vinogradov 4 years ago
Add atmega48p device support
12879fde — Rahix 4 years ago
Only emit inline-assembly when building for AVR

Make sure that we'll never emit AVR assembly on non-AVR targets.
Instead of failing the build, fail at runtime, to allow a potential
application testsuite to run even if those functions somehow get linked
in.

Signed-off-by: Rahix <rahix@rahix.de>
90075ce5 — Karl ThorĂ©n 4 years ago
Add basic support for ATmega168

706a5c26 — Rahix 4 years ago
interrupt: Fix interrupt::free() reading wrong address

The SREG is at IO address 0x3F, not 0x35.  Fix interrupt::free() to read
the correct register to make it work as advertised.

Signed-off-by: Rahix <rahix@rahix.de>
c0edb56c — Rahix 4 years ago
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>
0e433616 — Rahix 4 years ago
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>
b0abe893 — Andrew Dona-Couch 4 years ago
Add support for ATtiny88
1e0eb40c — Andrew Dona-Couch 4 years ago
Add support for ATmega2560
cb089e6c — Rahix 4 years ago
Document #[interrupt] and #[entry]

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>
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.
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>
Next
Do not follow this link