aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatous Hybl <[email protected]>2021-11-16 12:13:43 +0100
committerMatous Hybl <[email protected]>2021-11-23 11:00:37 +0100
commit0ca6060bfdc3807567e3a22dd356c238745f6cdd (patch)
tree116657522b48a3beccc34c19dec225330b2b11ec
parentd98d18d2ee5932580463a91bc9ac257e51d0ac46 (diff)
Fix interrupt_take macro by specifying path to panic macro.
-rw-r--r--embassy-macros/src/lib.rs8
-rw-r--r--examples/nrf/src/bin/buffered_uart.rs1
-rw-r--r--examples/nrf/src/bin/multiprio.rs1
-rw-r--r--examples/nrf/src/bin/qspi.rs2
-rw-r--r--examples/nrf/src/bin/qspi_lowpower.rs1
-rw-r--r--examples/nrf/src/bin/rng.rs2
-rw-r--r--examples/nrf/src/bin/saadc.rs1
-rw-r--r--examples/nrf/src/bin/saadc_continuous.rs1
-rw-r--r--examples/nrf/src/bin/spim.rs1
-rw-r--r--examples/nrf/src/bin/temp.rs1
-rw-r--r--examples/nrf/src/bin/twim.rs2
-rw-r--r--examples/nrf/src/bin/twim_lowpower.rs2
-rw-r--r--examples/nrf/src/bin/uart.rs1
-rw-r--r--examples/nrf/src/bin/uart_idle.rs1
-rw-r--r--examples/stm32l0/src/bin/usart_irq.rs1
15 files changed, 10 insertions, 16 deletions
diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs
index 8d8accfcc..bcd3f2ad7 100644
--- a/embassy-macros/src/lib.rs
+++ b/embassy-macros/src/lib.rs
@@ -223,7 +223,11 @@ pub fn interrupt_declare(item: TokenStream) -> TokenStream {
223 }; 223 };
224 result.into() 224 result.into()
225} 225}
226 226/// # interrupt_take procedural macro
227///
228/// core::panic! is used as a default way to panic in this macro as there is no sensible way of enabling/disabling defmt for macro generation.
229/// We are aware that this brings bloat in the form of core::fmt, but the bloat is already included with e.g. array indexing panics.
230/// To get rid of this bloat, use the compiler flags `-Zbuild-std=core -Zbuild-std-features=panic_immediate_abort`.
227#[proc_macro] 231#[proc_macro]
228pub fn interrupt_take(item: TokenStream) -> TokenStream { 232pub fn interrupt_take(item: TokenStream) -> TokenStream {
229 let name = syn::parse_macro_input!(item as syn::Ident); 233 let name = syn::parse_macro_input!(item as syn::Ident);
@@ -250,7 +254,7 @@ pub fn interrupt_take(item: TokenStream) -> TokenStream {
250 static TAKEN: ::embassy::export::atomic::AtomicBool = ::embassy::export::atomic::AtomicBool::new(false); 254 static TAKEN: ::embassy::export::atomic::AtomicBool = ::embassy::export::atomic::AtomicBool::new(false);
251 255
252 if TAKEN.compare_exchange(false, true, ::embassy::export::atomic::Ordering::AcqRel, ::embassy::export::atomic::Ordering::Acquire).is_err() { 256 if TAKEN.compare_exchange(false, true, ::embassy::export::atomic::Ordering::AcqRel, ::embassy::export::atomic::Ordering::Acquire).is_err() {
253 panic!("IRQ Already taken"); 257 core::panic!("IRQ Already taken");
254 } 258 }
255 259
256 let irq: interrupt::#name_interrupt = unsafe { ::core::mem::transmute(()) }; 260 let irq: interrupt::#name_interrupt = unsafe { ::core::mem::transmute(()) };
diff --git a/examples/nrf/src/bin/buffered_uart.rs b/examples/nrf/src/bin/buffered_uart.rs
index 69c7de93b..90d288780 100644
--- a/examples/nrf/src/bin/buffered_uart.rs
+++ b/examples/nrf/src/bin/buffered_uart.rs
@@ -5,7 +5,6 @@
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7 7
8use defmt::panic;
9use embassy::executor::Spawner; 8use embassy::executor::Spawner;
10use embassy::io::{AsyncBufReadExt, AsyncWriteExt}; 9use embassy::io::{AsyncBufReadExt, AsyncWriteExt};
11use embassy_nrf::buffered_uarte::State; 10use embassy_nrf::buffered_uarte::State;
diff --git a/examples/nrf/src/bin/multiprio.rs b/examples/nrf/src/bin/multiprio.rs
index 78ea5bc0e..85e126908 100644
--- a/examples/nrf/src/bin/multiprio.rs
+++ b/examples/nrf/src/bin/multiprio.rs
@@ -62,7 +62,6 @@ mod example_common;
62use example_common::*; 62use example_common::*;
63 63
64use cortex_m_rt::entry; 64use cortex_m_rt::entry;
65use defmt::panic;
66use embassy::executor::{Executor, InterruptExecutor}; 65use embassy::executor::{Executor, InterruptExecutor};
67use embassy::interrupt::InterruptExt; 66use embassy::interrupt::InterruptExt;
68use embassy::time::{Duration, Instant, Timer}; 67use embassy::time::{Duration, Instant, Timer};
diff --git a/examples/nrf/src/bin/qspi.rs b/examples/nrf/src/bin/qspi.rs
index e5560cead..c7f9503bb 100644
--- a/examples/nrf/src/bin/qspi.rs
+++ b/examples/nrf/src/bin/qspi.rs
@@ -5,7 +5,7 @@
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7 7
8use defmt::{assert_eq, panic}; 8use defmt::assert_eq;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::traits::flash::Flash; 10use embassy::traits::flash::Flash;
11use embassy_nrf::Peripherals; 11use embassy_nrf::Peripherals;
diff --git a/examples/nrf/src/bin/qspi_lowpower.rs b/examples/nrf/src/bin/qspi_lowpower.rs
index 7a3c68ee1..e9e1bac42 100644
--- a/examples/nrf/src/bin/qspi_lowpower.rs
+++ b/examples/nrf/src/bin/qspi_lowpower.rs
@@ -6,7 +6,6 @@
6mod example_common; 6mod example_common;
7 7
8use core::mem; 8use core::mem;
9use defmt::panic;
10use embassy::executor::Spawner; 9use embassy::executor::Spawner;
11use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
12use embassy::traits::flash::Flash; 11use embassy::traits::flash::Flash;
diff --git a/examples/nrf/src/bin/rng.rs b/examples/nrf/src/bin/rng.rs
index 5f575897e..d12684e35 100644
--- a/examples/nrf/src/bin/rng.rs
+++ b/examples/nrf/src/bin/rng.rs
@@ -5,7 +5,7 @@
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7 7
8use defmt::{panic, unwrap}; 8use defmt::unwrap;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::traits::rng::Rng as _; 10use embassy::traits::rng::Rng as _;
11use embassy_nrf::interrupt; 11use embassy_nrf::interrupt;
diff --git a/examples/nrf/src/bin/saadc.rs b/examples/nrf/src/bin/saadc.rs
index c6eac555b..bc6b2b52c 100644
--- a/examples/nrf/src/bin/saadc.rs
+++ b/examples/nrf/src/bin/saadc.rs
@@ -4,7 +4,6 @@
4 4
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7use defmt::panic;
8use embassy::executor::Spawner; 7use embassy::executor::Spawner;
9use embassy::time::{Duration, Timer}; 8use embassy::time::{Duration, Timer};
10use embassy_nrf::saadc::{ChannelConfig, Config, Saadc}; 9use embassy_nrf::saadc::{ChannelConfig, Config, Saadc};
diff --git a/examples/nrf/src/bin/saadc_continuous.rs b/examples/nrf/src/bin/saadc_continuous.rs
index a06a01e91..81559237b 100644
--- a/examples/nrf/src/bin/saadc_continuous.rs
+++ b/examples/nrf/src/bin/saadc_continuous.rs
@@ -4,7 +4,6 @@
4 4
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7use defmt::panic;
8use embassy::executor::Spawner; 7use embassy::executor::Spawner;
9use embassy_nrf::ppi::Ppi; 8use embassy_nrf::ppi::Ppi;
10use embassy_nrf::saadc::{ChannelConfig, Config, Saadc, SamplerState}; 9use embassy_nrf::saadc::{ChannelConfig, Config, Saadc, SamplerState};
diff --git a/examples/nrf/src/bin/spim.rs b/examples/nrf/src/bin/spim.rs
index 9afd17ef9..d34ca0b85 100644
--- a/examples/nrf/src/bin/spim.rs
+++ b/examples/nrf/src/bin/spim.rs
@@ -5,7 +5,6 @@
5#[path = "../example_common.rs"] 5#[path = "../example_common.rs"]
6mod example_common; 6mod example_common;
7 7
8use defmt::panic;
9use embassy::executor::Spawner; 8use embassy::executor::Spawner;
10use embassy_nrf::gpio::{Level, Output, OutputDrive}; 9use embassy_nrf::gpio::{Level, Output, OutputDrive};
11use embassy_nrf::Peripherals; 10use embassy_nrf::Peripherals;
diff --git a/examples/nrf/src/bin/temp.rs b/examples/nrf/src/bin/temp.rs
index af9775f5a..4b30b6ea3 100644
--- a/examples/nrf/src/bin/temp.rs
+++ b/examples/nrf/src/bin/temp.rs
@@ -6,7 +6,6 @@
6mod example_common; 6mod example_common;
7use example_common::*; 7use example_common::*;
8 8
9use defmt::panic;
10use embassy::{ 9use embassy::{
11 executor::Spawner, 10 executor::Spawner,
12 time::{Duration, Timer}, 11 time::{Duration, Timer},
diff --git a/examples/nrf/src/bin/twim.rs b/examples/nrf/src/bin/twim.rs
index c0a2aab58..4c2f2bf2e 100644
--- a/examples/nrf/src/bin/twim.rs
+++ b/examples/nrf/src/bin/twim.rs
@@ -9,7 +9,7 @@
9#[path = "../example_common.rs"] 9#[path = "../example_common.rs"]
10mod example_common; 10mod example_common;
11 11
12use defmt::{panic, *}; 12use defmt::*;
13use embassy::executor::Spawner; 13use embassy::executor::Spawner;
14use embassy_nrf::twim::{self, Twim}; 14use embassy_nrf::twim::{self, Twim};
15use embassy_nrf::{interrupt, Peripherals}; 15use embassy_nrf::{interrupt, Peripherals};
diff --git a/examples/nrf/src/bin/twim_lowpower.rs b/examples/nrf/src/bin/twim_lowpower.rs
index e25ecb576..62a5f0c94 100644
--- a/examples/nrf/src/bin/twim_lowpower.rs
+++ b/examples/nrf/src/bin/twim_lowpower.rs
@@ -13,7 +13,7 @@ mod example_common;
13 13
14use core::mem; 14use core::mem;
15 15
16use defmt::{panic, *}; 16use defmt::*;
17use embassy::executor::Spawner; 17use embassy::executor::Spawner;
18use embassy::time::{Duration, Timer}; 18use embassy::time::{Duration, Timer};
19use embassy_nrf::twim::{self, Twim}; 19use embassy_nrf::twim::{self, Twim};
diff --git a/examples/nrf/src/bin/uart.rs b/examples/nrf/src/bin/uart.rs
index df7a4e78e..6b89e083d 100644
--- a/examples/nrf/src/bin/uart.rs
+++ b/examples/nrf/src/bin/uart.rs
@@ -6,7 +6,6 @@
6mod example_common; 6mod example_common;
7use example_common::*; 7use example_common::*;
8 8
9use defmt::panic;
10use embassy::executor::Spawner; 9use embassy::executor::Spawner;
11use embassy::traits::uart::{Read, Write}; 10use embassy::traits::uart::{Read, Write};
12use embassy_nrf::gpio::NoPin; 11use embassy_nrf::gpio::NoPin;
diff --git a/examples/nrf/src/bin/uart_idle.rs b/examples/nrf/src/bin/uart_idle.rs
index e9f4a285a..ec9a36026 100644
--- a/examples/nrf/src/bin/uart_idle.rs
+++ b/examples/nrf/src/bin/uart_idle.rs
@@ -7,7 +7,6 @@ mod example_common;
7use embassy_traits::uart::ReadUntilIdle; 7use embassy_traits::uart::ReadUntilIdle;
8use example_common::*; 8use example_common::*;
9 9
10use defmt::panic;
11use embassy::executor::Spawner; 10use embassy::executor::Spawner;
12use embassy::traits::uart::Write; 11use embassy::traits::uart::Write;
13use embassy_nrf::gpio::NoPin; 12use embassy_nrf::gpio::NoPin;
diff --git a/examples/stm32l0/src/bin/usart_irq.rs b/examples/stm32l0/src/bin/usart_irq.rs
index 8dc047cf3..588073902 100644
--- a/examples/stm32l0/src/bin/usart_irq.rs
+++ b/examples/stm32l0/src/bin/usart_irq.rs
@@ -7,7 +7,6 @@ mod example_common;
7 7
8use example_common::*; 8use example_common::*;
9 9
10use defmt::panic;
11use embassy::executor::Spawner; 10use embassy::executor::Spawner;
12use embassy::io::{AsyncBufReadExt, AsyncWriteExt}; 11use embassy::io::{AsyncBufReadExt, AsyncWriteExt};
13use embassy_stm32::dma::NoDma; 12use embassy_stm32::dma::NoDma;