From 2b86205306c358862b4f85de36660aefc368140a Mon Sep 17 00:00:00 2001 From: Justin Latimer Date: Mon, 18 Oct 2021 22:40:38 +1300 Subject: [PATCH] Add support for ATtiny1614 --- Cargo.toml | 1 + Makefile | 2 +- README.md | 3 +- patch/attiny1614.yaml | 1 + src/devices/mod.rs | 19 + src/lib.rs | 5 + vendor/attiny1614.atdf | 5647 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 5676 insertions(+), 2 deletions(-) create mode 100644 patch/attiny1614.yaml create mode 100644 vendor/attiny1614.atdf diff --git a/Cargo.toml b/Cargo.toml index a32592c..afeb44f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,6 +45,7 @@ attiny841 = ["device-selected"] attiny85 = ["device-selected"] attiny861 = ["device-selected"] attiny88 = ["device-selected"] +attiny1614 = ["device-selected"] rt = ["avr-device-macros"] [dependencies] diff --git a/Makefile b/Makefile index dce61f3..83266e1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: deps chips -CHIPS := at90usb1286 atmega1280 atmega168 atmega2560 atmega8 atmega8u2 atmega328p atmega328pb atmega32u4 atmega4809 atmega48p atmega64 atmega644 attiny202 attiny2313 attiny2313a attiny84 attiny85 attiny88 attiny816 attiny841 attiny861 attiny167 +CHIPS := at90usb1286 atmega1280 atmega168 atmega2560 atmega8 atmega8u2 atmega328p atmega328pb atmega32u4 atmega4809 atmega48p atmega64 atmega644 attiny202 attiny2313 attiny2313a attiny84 attiny85 attiny88 attiny816 attiny841 attiny861 attiny167 attiny1614 RUSTUP_TOOLCHAIN ?= nightly diff --git a/README.md b/README.md index 1ef8e6b..8e43a08 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,8 @@ Via the feature you can select which chip you want the register specifications f | `atmega328p` | | | | `attiny816` | | `atmega328pb` | | | | `attiny841` | | `atmega1280` | | | | `attiny861` | -| `atmega2560` | | | | `attiny2313` | +| `atmega2560` | | | | `attiny1614` | +| | | | | `attiny2313` | | | | | | `attiny2313a` | ## Build Instructions diff --git a/patch/attiny1614.yaml b/patch/attiny1614.yaml new file mode 100644 index 0000000..6a5f01f --- /dev/null +++ b/patch/attiny1614.yaml @@ -0,0 +1 @@ +_svd: ../svd/attiny1614.svd diff --git a/src/devices/mod.rs b/src/devices/mod.rs index e3aa9e9..e12c315 100644 --- a/src/devices/mod.rs +++ b/src/devices/mod.rs @@ -269,6 +269,25 @@ impl attiny167::Peripherals { } } +/// [ATtiny1614](https://www.microchip.com/wwwproducts/en/ATtiny1614) +#[cfg(feature = "attiny1614")] +pub mod attiny1614; + +#[cfg(feature = "attiny1614")] +impl attiny1614::Peripherals { + /// Returns all the peripherals *once* + #[inline] + pub fn take() -> Option { + crate::interrupt::free(|_| { + if unsafe { DEVICE_PERIPHERALS } { + None + } else { + Some(unsafe { attiny1614::Peripherals::steal() }) + } + }) + } +} + /// [ATtiny202](https://www.microchip.com/wwwproducts/en/ATtiny202) #[cfg(feature = "attiny202")] pub mod attiny202; diff --git a/src/lib.rs b/src/lib.rs index ab0e4cb..b036588 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,6 +13,7 @@ #![cfg_attr(feature = "atmega64", doc = "**atmega64**,")] #![cfg_attr(feature = "atmega644", doc = "**atmega644**,")] #![cfg_attr(feature = "attiny167", doc = "**attiny167**,")] +#![cfg_attr(feature = "attiny1614", doc = "**attiny1614**,")] #![cfg_attr(feature = "attiny202", doc = "**attiny202**,")] #![cfg_attr(feature = "attiny2313", doc = "**attiny2313**,")] #![cfg_attr(feature = "attiny2313a", doc = "**attiny2313a**,")] @@ -40,6 +41,7 @@ //! * `atmega64` //! * `atmega644` //! * `attiny167` +//! * `attiny1614` //! * `attiny202` //! * `attiny2313` //! * `attiny2313a` @@ -113,6 +115,7 @@ compile_error!( * atmega8 * atmega8u2 * attiny167 + * attiny1614 * attiny202 * attiny2313 * attiny2313a @@ -156,6 +159,8 @@ pub use crate::devices::atmega8; pub use crate::devices::atmega8u2; #[cfg(feature = "attiny167")] pub use crate::devices::attiny167; +#[cfg(feature = "attiny1614")] +pub use crate::devices::attiny1614; #[cfg(feature = "attiny202")] pub use crate::devices::attiny202; #[cfg(feature = "attiny2313")] diff --git a/vendor/attiny1614.atdf b/vendor/attiny1614.atdf new file mode 100644 index 0000000..38b39ba --- /dev/null +++ b/vendor/attiny1614.atdf @@ -0,0 +1,5647 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.49.0