use drone_core::thread::{RoutineFuture, RoutineStreamUnit};
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
use reg::afio;
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107", feature = "stm32l4x1",
feature = "stm32l4x2", feature = "stm32l4x3",
feature = "stm32l4x5", feature = "stm32l4x6"))]
use reg::exti;
use reg::prelude::*;
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
use reg::syscfg;
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107", feature = "stm32l4x1",
feature = "stm32l4x2", feature = "stm32l4x3",
feature = "stm32l4x5", feature = "stm32l4x6"))]
use thread::irq::{IrqExti0, IrqExti1, IrqExti1510, IrqExti2, IrqExti3,
IrqExti4, IrqExti95};
use thread::prelude::*;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ExtiLnOverflow;
#[allow(missing_docs)]
pub trait ExtiLn
where
Self: Sized + Send + Sync + 'static,
Self::Tokens: From<Self>,
{
type InputTokens;
type Tokens;
type Emr: RegField<Stt>;
type Imr: RegField<Stt>;
fn new(tokens: Self::InputTokens) -> Self;
fn emr(&self) -> &Self::Emr;
fn imr(&self) -> &Self::Imr;
}
#[allow(missing_docs)]
pub trait ExtiLnConf: ExtiLn {
type Ftsr: RegField<Stt>;
type Pr: RegField<Ftt>;
type Rtsr: RegField<Stt>;
type Swier: RegField<Stt>;
fn ftsr(&self) -> &Self::Ftsr;
fn pr(&self) -> &Self::Pr;
fn rtsr(&self) -> &Self::Rtsr;
fn swier(&self) -> &Self::Swier;
}
#[allow(missing_docs)]
pub trait ExtiLnExt<T, I>
where
Self: ExtiLn + ExtiLnConf,
T: Thread,
I: ThreadNumber,
{
type Exticr: RegField<Stt>;
fn irq(&self) -> ThreadToken<T, I>;
fn exticr(&self) -> &Self::Exticr;
fn future(&mut self) -> RoutineFuture<(), !>;
fn stream(&mut self) -> RoutineStreamUnit<ExtiLnOverflow>;
fn stream_skip(&mut self) -> RoutineStreamUnit<!>;
}
#[allow(unused_macros)]
macro_rules! exti_line {
(
$doc:expr,
$name:ident,
$name_macro:ident,
$doc_tokens:expr,
$name_tokens:ident,
$mr_ty:ident,
$emr_path:ident,
$imr_path:ident,
$exti_emr:ident,
$exti_imr:ident,
$exti_emr_mr:ident,
$exti_imr_mr:ident,
$mr:ident,
($((
$irq_g:ident: $irq_ty:ident,
$exti_ty:ident,
$irq:ident,
$($exticr_path:ident)::*,
$exticr:ident,
$exticr_exti:ident,
$exti:ident,
))*),
($((
($($conf_irq_g:ident: $conf_irq_ty:ident)*),
$tag_g:ident: $tag_sbt:ident $tag_fbt:ident,
$ft_ty:ident,
$pif_ty:ident,
$rt_ty:ident,
$swi_ty:ident,
$ftsr_path:ident,
$pr_path:ident,
$rtsr_path:ident,
$swier_path:ident,
$exti_ftsr:ident,
$exti_pr:ident,
$exti_rtsr:ident,
$exti_swier:ident,
$exti_ftsr_ft:ident,
$exti_pr_pif:ident,
$exti_rtsr_rt:ident,
$exti_swier_swi:ident,
$ft:ident,
$pif:ident,
$rt:ident,
$swi:ident,
))*),
) => {
#[doc = $doc]
pub struct $name<$(T: Thread, $irq_g: $irq_ty),*> {
tokens: $name_tokens<$(T, $irq_g,)* $($tag_fbt,)*>,
}
#[doc = $doc_tokens]
#[allow(missing_docs)]
pub struct $name_tokens<$(T, $irq_g,)* $($tag_g,)*>
where
$(
T: Thread,
$irq_g: $irq_ty,
)*
$(
$tag_g: RegTag,
)*
{
$(
pub $irq: ThreadToken<T, $irq_g>,
pub $exticr_exti: $($exticr_path)::*::$exti_ty<Stt>,
)*
$(
pub $exti_ftsr_ft: exti::$ftsr_path::$ft_ty<Stt>,
pub $exti_pr_pif: exti::$pr_path::$pif_ty<$tag_g>,
pub $exti_rtsr_rt: exti::$rtsr_path::$rt_ty<Stt>,
pub $exti_swier_swi: exti::$swier_path::$swi_ty<Stt>,
)*
pub $exti_emr_mr: exti::$emr_path::$mr_ty<Stt>,
pub $exti_imr_mr: exti::$imr_path::$mr_ty<Stt>,
}
#[macro_export]
macro_rules! $name_macro {
($thrd:ident, $regs:ident) => {
$crate::peripherals::exti::ExtiLn::new(
$crate::peripherals::exti::$name_tokens {
$(
$irq: $thrd.$irq,
$exticr_exti: $regs.$exticr.$exti,
)*
$(
$exti_ftsr_ft: $regs.$exti_ftsr.$ft,
$exti_pr_pif: $regs.$exti_pr.$pif,
$exti_rtsr_rt: $regs.$exti_rtsr.$rt,
$exti_swier_swi: $regs.$exti_swier.$swi,
)*
$exti_emr_mr: $regs.$exti_emr.$mr,
$exti_imr_mr: $regs.$exti_imr.$mr,
}
)
}
}
impl<$(T, $irq_g),*> From<$name<$(T, $irq_g),*>>
for $name_tokens<$(T, $irq_g,)* $($tag_fbt,)*>
where
$(
T: Thread,
$irq_g: $irq_ty,
)*
{
#[inline(always)]
fn from(exti_ln: $name<$(T, $irq_g),*>) -> Self {
exti_ln.tokens
}
}
impl<$(T, $irq_g),*> ExtiLn for $name<$(T, $irq_g),*>
where
$(
T: Thread,
$irq_g: $irq_ty,
)*
{
type InputTokens = $name_tokens<$(T, $irq_g,)* $($tag_sbt,)*>;
type Tokens = $name_tokens<$(T, $irq_g,)* $($tag_fbt,)*>;
type Emr = exti::$emr_path::$mr_ty<Stt>;
type Imr = exti::$imr_path::$mr_ty<Stt>;
#[inline(always)]
fn new(tokens: Self::InputTokens) -> Self {
Self {
tokens: Self::Tokens {
$(
$irq: tokens.$irq,
$exticr_exti: tokens.$exticr_exti,
)*
$(
$exti_ftsr_ft: tokens.$exti_ftsr_ft,
$exti_pr_pif: tokens.$exti_pr_pif.into(),
$exti_rtsr_rt: tokens.$exti_rtsr_rt,
$exti_swier_swi: tokens.$exti_swier_swi,
)*
$exti_emr_mr: tokens.$exti_emr_mr,
$exti_imr_mr: tokens.$exti_imr_mr,
}
}
}
#[inline(always)]
fn emr(&self) -> &Self::Emr {
&self.tokens.$exti_emr_mr
}
#[inline(always)]
fn imr(&self) -> &Self::Imr {
&self.tokens.$exti_imr_mr
}
}
$(
impl<$(T, $conf_irq_g),*> ExtiLnConf for $name<$(T, $conf_irq_g),*>
where
$(
T: Thread,
$conf_irq_g: $conf_irq_ty,
)*
{
type Ftsr = exti::$ftsr_path::$ft_ty<Stt>;
type Pr = exti::$pr_path::$pif_ty<Ftt>;
type Rtsr = exti::$rtsr_path::$rt_ty<Stt>;
type Swier = exti::$swier_path::$swi_ty<Stt>;
#[inline(always)]
fn ftsr(&self) -> &Self::Ftsr {
&self.tokens.$exti_ftsr_ft
}
#[inline(always)]
fn pr(&self) -> &Self::Pr {
&self.tokens.$exti_pr_pif
}
#[inline(always)]
fn rtsr(&self) -> &Self::Rtsr {
&self.tokens.$exti_rtsr_rt
}
#[inline(always)]
fn swier(&self) -> &Self::Swier {
&self.tokens.$exti_swier_swi
}
}
impl<$(T, $conf_irq_g),*> $name<$(T, $conf_irq_g),*>
where
$(
T: Thread,
$conf_irq_g: $conf_irq_ty,
)*
{
#[allow(dead_code)]
#[inline(always)]
fn pr_mut(&mut self) -> &mut <Self as ExtiLnConf>::Pr {
&mut self.tokens.$exti_pr_pif
}
}
)*
$(
impl<T, $irq_g> $name<T, $irq_g>
where
T: Thread,
$irq_g: $irq_ty,
{
fn stream_routine<E>(
&mut self
) -> impl Generator<
Yield = Option<()>,
Return = Result<Option<()>, E>,
> {
let pr = self.pr_mut().fork();
move || loop {
if pr.read_bit_band() {
pr.set_bit_band();
yield Some(());
}
yield None;
}
}
}
impl<T, $irq_g> ExtiLnExt<T, $irq_g> for $name<T, $irq_g>
where
T: Thread,
$irq_g: $irq_ty,
{
type Exticr = $($exticr_path)::*::$exti_ty<Stt>;
#[inline(always)]
fn irq(&self) -> ThreadToken<T, $irq_g> {
self.tokens.$irq
}
#[inline(always)]
fn exticr(&self) -> &Self::Exticr {
&self.tokens.$exticr_exti
}
fn future(&mut self) -> RoutineFuture<(), !> {
let pr = self.pr_mut().fork();
self.irq().future(move || loop {
if pr.read_bit_band() {
pr.set_bit_band();
break Ok(());
}
yield;
})
}
fn stream(&mut self) -> RoutineStreamUnit<ExtiLnOverflow> {
self.irq().stream(|| Err(ExtiLnOverflow), self.stream_routine())
}
fn stream_skip(&mut self) -> RoutineStreamUnit<!> {
self.irq().stream_skip(self.stream_routine())
}
}
)*
}
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 0",
ExtiLn0,
peripheral_exti_ln_0,
"EXTI Line 0 tokens",
ExtiLn0Tokens,
Mr0,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr0,
exti_imr_mr0,
mr0,
((
I: IrqExti0,
Exti0,
exti0,
afio::exticr1,
afio_exticr1,
afio_exticr1_exti0,
exti0,
)),
((
(I: IrqExti0),
R: Stt Ftt,
Tr0,
Pr0,
Tr0,
Swier0,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr0,
exti_pr_pr0,
exti_rtsr_tr0,
exti_swier_swier0,
tr0,
pr0,
tr0,
swier0,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 1",
ExtiLn1,
peripheral_exti_ln_1,
"EXTI Line 1 tokens",
ExtiLn1Tokens,
Mr1,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr1,
exti_imr_mr1,
mr1,
((
I: IrqExti1,
Exti1,
exti1,
afio::exticr1,
afio_exticr1,
afio_exticr1_exti1,
exti1,
)),
((
(I: IrqExti1),
R: Stt Ftt,
Tr1,
Pr1,
Tr1,
Swier1,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr1,
exti_pr_pr1,
exti_rtsr_tr1,
exti_swier_swier1,
tr1,
pr1,
tr1,
swier1,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 2",
ExtiLn2,
peripheral_exti_ln_2,
"EXTI Line 2 tokens",
ExtiLn2Tokens,
Mr2,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr2,
exti_imr_mr2,
mr2,
((
I: IrqExti2,
Exti2,
exti2,
afio::exticr1,
afio_exticr1,
afio_exticr1_exti2,
exti2,
)),
((
(I: IrqExti2),
R: Stt Ftt,
Tr2,
Pr2,
Tr2,
Swier2,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr2,
exti_pr_pr2,
exti_rtsr_tr2,
exti_swier_swier2,
tr2,
pr2,
tr2,
swier2,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 3",
ExtiLn3,
peripheral_exti_ln_3,
"EXTI Line 3 tokens",
ExtiLn3Tokens,
Mr3,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr3,
exti_imr_mr3,
mr3,
((
I: IrqExti3,
Exti3,
exti3,
afio::exticr1,
afio_exticr1,
afio_exticr1_exti3,
exti3,
)),
((
(I: IrqExti3),
R: Stt Ftt,
Tr3,
Pr3,
Tr3,
Swier3,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr3,
exti_pr_pr3,
exti_rtsr_tr3,
exti_swier_swier3,
tr3,
pr3,
tr3,
swier3,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 4",
ExtiLn4,
peripheral_exti_ln_4,
"EXTI Line 4 tokens",
ExtiLn4Tokens,
Mr4,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr4,
exti_imr_mr4,
mr4,
((
I: IrqExti4,
Exti4,
exti4,
afio::exticr2,
afio_exticr2,
afio_exticr2_exti4,
exti4,
)),
((
(I: IrqExti4),
R: Stt Ftt,
Tr4,
Pr4,
Tr4,
Swier4,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr4,
exti_pr_pr4,
exti_rtsr_tr4,
exti_swier_swier4,
tr4,
pr4,
tr4,
swier4,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 5",
ExtiLn5,
peripheral_exti_ln_5,
"EXTI Line 5 tokens",
ExtiLn5Tokens,
Mr5,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr5,
exti_imr_mr5,
mr5,
((
I: IrqExti95,
Exti5,
exti9_5,
afio::exticr2,
afio_exticr2,
afio_exticr2_exti5,
exti5,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr5,
Pr5,
Tr5,
Swier5,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr5,
exti_pr_pr5,
exti_rtsr_tr5,
exti_swier_swier5,
tr5,
pr5,
tr5,
swier5,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 6",
ExtiLn6,
peripheral_exti_ln_6,
"EXTI Line 6 tokens",
ExtiLn6Tokens,
Mr6,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr6,
exti_imr_mr6,
mr6,
((
I: IrqExti95,
Exti6,
exti9_5,
afio::exticr2,
afio_exticr2,
afio_exticr2_exti6,
exti6,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr6,
Pr6,
Tr6,
Swier6,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr6,
exti_pr_pr6,
exti_rtsr_tr6,
exti_swier_swier6,
tr6,
pr6,
tr6,
swier6,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 7",
ExtiLn7,
peripheral_exti_ln_7,
"EXTI Line 7 tokens",
ExtiLn7Tokens,
Mr7,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr7,
exti_imr_mr7,
mr7,
((
I: IrqExti95,
Exti7,
exti9_5,
afio::exticr2,
afio_exticr2,
afio_exticr2_exti7,
exti7,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr7,
Pr7,
Tr7,
Swier7,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr7,
exti_pr_pr7,
exti_rtsr_tr7,
exti_swier_swier7,
tr7,
pr7,
tr7,
swier7,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 8",
ExtiLn8,
peripheral_exti_ln_8,
"EXTI Line 8 tokens",
ExtiLn8Tokens,
Mr8,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr8,
exti_imr_mr8,
mr8,
((
I: IrqExti95,
Exti8,
exti9_5,
afio::exticr3,
afio_exticr3,
afio_exticr3_exti8,
exti8,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr8,
Pr8,
Tr8,
Swier8,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr8,
exti_pr_pr8,
exti_rtsr_tr8,
exti_swier_swier8,
tr8,
pr8,
tr8,
swier8,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 9",
ExtiLn9,
peripheral_exti_ln_9,
"EXTI Line 9 tokens",
ExtiLn9Tokens,
Mr9,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr9,
exti_imr_mr9,
mr9,
((
I: IrqExti95,
Exti9,
exti9_5,
afio::exticr3,
afio_exticr3,
afio_exticr3_exti9,
exti9,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr9,
Pr9,
Tr9,
Swier9,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr9,
exti_pr_pr9,
exti_rtsr_tr9,
exti_swier_swier9,
tr9,
pr9,
tr9,
swier9,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 10",
ExtiLn10,
peripheral_exti_ln_10,
"EXTI Line 10 tokens",
ExtiLn10Tokens,
Mr10,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr10,
exti_imr_mr10,
mr10,
((
I: IrqExti1510,
Exti10,
exti15_10,
afio::exticr3,
afio_exticr3,
afio_exticr3_exti10,
exti10,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr10,
Pr10,
Tr10,
Swier10,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr10,
exti_pr_pr10,
exti_rtsr_tr10,
exti_swier_swier10,
tr10,
pr10,
tr10,
swier10,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 11",
ExtiLn11,
peripheral_exti_ln_11,
"EXTI Line 11 tokens",
ExtiLn11Tokens,
Mr11,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr11,
exti_imr_mr11,
mr11,
((
I: IrqExti1510,
Exti11,
exti15_10,
afio::exticr3,
afio_exticr3,
afio_exticr3_exti11,
exti11,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr11,
Pr11,
Tr11,
Swier11,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr11,
exti_pr_pr11,
exti_rtsr_tr11,
exti_swier_swier11,
tr11,
pr11,
tr11,
swier11,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 12",
ExtiLn12,
peripheral_exti_ln_12,
"EXTI Line 12 tokens",
ExtiLn12Tokens,
Mr12,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr12,
exti_imr_mr12,
mr12,
((
I: IrqExti1510,
Exti12,
exti15_10,
afio::exticr4,
afio_exticr4,
afio_exticr4_exti12,
exti12,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr12,
Pr12,
Tr12,
Swier12,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr12,
exti_pr_pr12,
exti_rtsr_tr12,
exti_swier_swier12,
tr12,
pr12,
tr12,
swier12,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 13",
ExtiLn13,
peripheral_exti_ln_13,
"EXTI Line 13 tokens",
ExtiLn13Tokens,
Mr13,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr13,
exti_imr_mr13,
mr13,
((
I: IrqExti1510,
Exti13,
exti15_10,
afio::exticr4,
afio_exticr4,
afio_exticr4_exti13,
exti13,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr13,
Pr13,
Tr13,
Swier13,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr13,
exti_pr_pr13,
exti_rtsr_tr13,
exti_swier_swier13,
tr13,
pr13,
tr13,
swier13,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 14",
ExtiLn14,
peripheral_exti_ln_14,
"EXTI Line 14 tokens",
ExtiLn14Tokens,
Mr14,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr14,
exti_imr_mr14,
mr14,
((
I: IrqExti1510,
Exti14,
exti15_10,
afio::exticr4,
afio_exticr4,
afio_exticr4_exti14,
exti14,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr14,
Pr14,
Tr14,
Swier14,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr14,
exti_pr_pr14,
exti_rtsr_tr14,
exti_swier_swier14,
tr14,
pr14,
tr14,
swier14,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 15",
ExtiLn15,
peripheral_exti_ln_15,
"EXTI Line 15 tokens",
ExtiLn15Tokens,
Mr15,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr15,
exti_imr_mr15,
mr15,
((
I: IrqExti1510,
Exti15,
exti15_10,
afio::exticr4,
afio_exticr4,
afio_exticr4_exti15,
exti15,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr15,
Pr15,
Tr15,
Swier15,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr15,
exti_pr_pr15,
exti_rtsr_tr15,
exti_swier_swier15,
tr15,
pr15,
tr15,
swier15,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 16",
ExtiLn16,
peripheral_exti_ln_16,
"EXTI Line 16 tokens",
ExtiLn16Tokens,
Mr16,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr16,
exti_imr_mr16,
mr16,
(),
((
(),
R: Stt Ftt,
Tr16,
Pr16,
Tr16,
Swier16,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr16,
exti_pr_pr16,
exti_rtsr_tr16,
exti_swier_swier16,
tr16,
pr16,
tr16,
swier16,
)),
}
#[cfg(any(feature = "stm32f100", feature = "stm32f101",
feature = "stm32f102", feature = "stm32f103",
feature = "stm32f107"))]
exti_line! {
"EXTI Line 17",
ExtiLn17,
peripheral_exti_ln_17,
"EXTI Line 17 tokens",
ExtiLn17Tokens,
Mr17,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr17,
exti_imr_mr17,
mr17,
(),
((
(),
R: Stt Ftt,
Tr17,
Pr17,
Tr17,
Swier17,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr17,
exti_pr_pr17,
exti_rtsr_tr17,
exti_swier_swier17,
tr17,
pr17,
tr17,
swier17,
)),
}
#[cfg(any(feature = "stm32f101", feature = "stm32f102",
feature = "stm32f103", feature = "stm32f107"))]
exti_line! {
"EXTI Line 18",
ExtiLn18,
peripheral_exti_ln_18,
"EXTI Line 18 tokens",
ExtiLn18Tokens,
Mr18,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr18,
exti_imr_mr18,
mr18,
(),
((
(),
R: Stt Ftt,
Tr18,
Pr18,
Tr18,
Swier18,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr18,
exti_pr_pr18,
exti_rtsr_tr18,
exti_swier_swier18,
tr18,
pr18,
tr18,
swier18,
)),
}
#[cfg(any(feature = "stm32f107"))]
exti_line! {
"EXTI Line 19",
ExtiLn19,
peripheral_exti_ln_19,
"EXTI Line 19 tokens",
ExtiLn19Tokens,
Mr19,
emr,
imr,
exti_emr,
exti_imr,
exti_emr_mr19,
exti_imr_mr19,
mr19,
(),
((
(),
R: Stt Ftt,
Tr19,
Pr19,
Tr19,
Swier19,
ftsr,
pr,
rtsr,
swier,
exti_ftsr,
exti_pr,
exti_rtsr,
exti_swier,
exti_ftsr_tr19,
exti_pr_pr19,
exti_rtsr_tr19,
exti_swier_swier19,
tr19,
pr19,
tr19,
swier19,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 0",
ExtiLn0,
peripheral_exti_ln_0,
"EXTI Line 0 tokens",
ExtiLn0Tokens,
Mr0,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr0,
exti_imr1_mr0,
mr0,
((
I: IrqExti0,
Exti0,
exti0,
syscfg::exticr1,
syscfg_exticr1,
syscfg_exticr1_exti0,
exti0,
)),
((
(I: IrqExti0),
R: Stt Ftt,
Tr0,
Pr0,
Tr0,
Swier0,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr0,
exti_pr1_pr0,
exti_rtsr1_tr0,
exti_swier1_swier0,
tr0,
pr0,
tr0,
swier0,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 1",
ExtiLn1,
peripheral_exti_ln_1,
"EXTI Line 1 tokens",
ExtiLn1Tokens,
Mr1,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr1,
exti_imr1_mr1,
mr1,
((
I: IrqExti1,
Exti1,
exti1,
syscfg::exticr1,
syscfg_exticr1,
syscfg_exticr1_exti1,
exti1,
)),
((
(I: IrqExti1),
R: Stt Ftt,
Tr1,
Pr1,
Tr1,
Swier1,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr1,
exti_pr1_pr1,
exti_rtsr1_tr1,
exti_swier1_swier1,
tr1,
pr1,
tr1,
swier1,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 2",
ExtiLn2,
peripheral_exti_ln_2,
"EXTI Line 2 tokens",
ExtiLn2Tokens,
Mr2,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr2,
exti_imr1_mr2,
mr2,
((
I: IrqExti2,
Exti2,
exti2,
syscfg::exticr1,
syscfg_exticr1,
syscfg_exticr1_exti2,
exti2,
)),
((
(I: IrqExti2),
R: Stt Ftt,
Tr2,
Pr2,
Tr2,
Swier2,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr2,
exti_pr1_pr2,
exti_rtsr1_tr2,
exti_swier1_swier2,
tr2,
pr2,
tr2,
swier2,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 3",
ExtiLn3,
peripheral_exti_ln_3,
"EXTI Line 3 tokens",
ExtiLn3Tokens,
Mr3,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr3,
exti_imr1_mr3,
mr3,
((
I: IrqExti3,
Exti3,
exti3,
syscfg::exticr1,
syscfg_exticr1,
syscfg_exticr1_exti3,
exti3,
)),
((
(I: IrqExti3),
R: Stt Ftt,
Tr3,
Pr3,
Tr3,
Swier3,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr3,
exti_pr1_pr3,
exti_rtsr1_tr3,
exti_swier1_swier3,
tr3,
pr3,
tr3,
swier3,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 4",
ExtiLn4,
peripheral_exti_ln_4,
"EXTI Line 4 tokens",
ExtiLn4Tokens,
Mr4,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr4,
exti_imr1_mr4,
mr4,
((
I: IrqExti4,
Exti4,
exti4,
syscfg::exticr2,
syscfg_exticr2,
syscfg_exticr2_exti4,
exti4,
)),
((
(I: IrqExti4),
R: Stt Ftt,
Tr4,
Pr4,
Tr4,
Swier4,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr4,
exti_pr1_pr4,
exti_rtsr1_tr4,
exti_swier1_swier4,
tr4,
pr4,
tr4,
swier4,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 5",
ExtiLn5,
peripheral_exti_ln_5,
"EXTI Line 5 tokens",
ExtiLn5Tokens,
Mr5,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr5,
exti_imr1_mr5,
mr5,
((
I: IrqExti95,
Exti5,
exti9_5,
syscfg::exticr2,
syscfg_exticr2,
syscfg_exticr2_exti5,
exti5,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr5,
Pr5,
Tr5,
Swier5,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr5,
exti_pr1_pr5,
exti_rtsr1_tr5,
exti_swier1_swier5,
tr5,
pr5,
tr5,
swier5,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 6",
ExtiLn6,
peripheral_exti_ln_6,
"EXTI Line 6 tokens",
ExtiLn6Tokens,
Mr6,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr6,
exti_imr1_mr6,
mr6,
((
I: IrqExti95,
Exti6,
exti9_5,
syscfg::exticr2,
syscfg_exticr2,
syscfg_exticr2_exti6,
exti6,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr6,
Pr6,
Tr6,
Swier6,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr6,
exti_pr1_pr6,
exti_rtsr1_tr6,
exti_swier1_swier6,
tr6,
pr6,
tr6,
swier6,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 7",
ExtiLn7,
peripheral_exti_ln_7,
"EXTI Line 7 tokens",
ExtiLn7Tokens,
Mr7,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr7,
exti_imr1_mr7,
mr7,
((
I: IrqExti95,
Exti7,
exti9_5,
syscfg::exticr2,
syscfg_exticr2,
syscfg_exticr2_exti7,
exti7,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr7,
Pr7,
Tr7,
Swier7,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr7,
exti_pr1_pr7,
exti_rtsr1_tr7,
exti_swier1_swier7,
tr7,
pr7,
tr7,
swier7,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 8",
ExtiLn8,
peripheral_exti_ln_8,
"EXTI Line 8 tokens",
ExtiLn8Tokens,
Mr8,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr8,
exti_imr1_mr8,
mr8,
((
I: IrqExti95,
Exti8,
exti9_5,
syscfg::exticr3,
syscfg_exticr3,
syscfg_exticr3_exti8,
exti8,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr8,
Pr8,
Tr8,
Swier8,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr8,
exti_pr1_pr8,
exti_rtsr1_tr8,
exti_swier1_swier8,
tr8,
pr8,
tr8,
swier8,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 9",
ExtiLn9,
peripheral_exti_ln_9,
"EXTI Line 9 tokens",
ExtiLn9Tokens,
Mr9,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr9,
exti_imr1_mr9,
mr9,
((
I: IrqExti95,
Exti9,
exti9_5,
syscfg::exticr3,
syscfg_exticr3,
syscfg_exticr3_exti9,
exti9,
)),
((
(I: IrqExti95),
R: Stt Ftt,
Tr9,
Pr9,
Tr9,
Swier9,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr9,
exti_pr1_pr9,
exti_rtsr1_tr9,
exti_swier1_swier9,
tr9,
pr9,
tr9,
swier9,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 10",
ExtiLn10,
peripheral_exti_ln_10,
"EXTI Line 10 tokens",
ExtiLn10Tokens,
Mr10,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr10,
exti_imr1_mr10,
mr10,
((
I: IrqExti1510,
Exti10,
exti15_10,
syscfg::exticr3,
syscfg_exticr3,
syscfg_exticr3_exti10,
exti10,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr10,
Pr10,
Tr10,
Swier10,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr10,
exti_pr1_pr10,
exti_rtsr1_tr10,
exti_swier1_swier10,
tr10,
pr10,
tr10,
swier10,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 11",
ExtiLn11,
peripheral_exti_ln_11,
"EXTI Line 11 tokens",
ExtiLn11Tokens,
Mr11,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr11,
exti_imr1_mr11,
mr11,
((
I: IrqExti1510,
Exti11,
exti15_10,
syscfg::exticr3,
syscfg_exticr3,
syscfg_exticr3_exti11,
exti11,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr11,
Pr11,
Tr11,
Swier11,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr11,
exti_pr1_pr11,
exti_rtsr1_tr11,
exti_swier1_swier11,
tr11,
pr11,
tr11,
swier11,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 12",
ExtiLn12,
peripheral_exti_ln_12,
"EXTI Line 12 tokens",
ExtiLn12Tokens,
Mr12,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr12,
exti_imr1_mr12,
mr12,
((
I: IrqExti1510,
Exti12,
exti15_10,
syscfg::exticr4,
syscfg_exticr4,
syscfg_exticr4_exti12,
exti12,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr12,
Pr12,
Tr12,
Swier12,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr12,
exti_pr1_pr12,
exti_rtsr1_tr12,
exti_swier1_swier12,
tr12,
pr12,
tr12,
swier12,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 13",
ExtiLn13,
peripheral_exti_ln_13,
"EXTI Line 13 tokens",
ExtiLn13Tokens,
Mr13,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr13,
exti_imr1_mr13,
mr13,
((
I: IrqExti1510,
Exti13,
exti15_10,
syscfg::exticr4,
syscfg_exticr4,
syscfg_exticr4_exti13,
exti13,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr13,
Pr13,
Tr13,
Swier13,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr13,
exti_pr1_pr13,
exti_rtsr1_tr13,
exti_swier1_swier13,
tr13,
pr13,
tr13,
swier13,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 14",
ExtiLn14,
peripheral_exti_ln_14,
"EXTI Line 14 tokens",
ExtiLn14Tokens,
Mr14,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr14,
exti_imr1_mr14,
mr14,
((
I: IrqExti1510,
Exti14,
exti15_10,
syscfg::exticr4,
syscfg_exticr4,
syscfg_exticr4_exti14,
exti14,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr14,
Pr14,
Tr14,
Swier14,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr14,
exti_pr1_pr14,
exti_rtsr1_tr14,
exti_swier1_swier14,
tr14,
pr14,
tr14,
swier14,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 15",
ExtiLn15,
peripheral_exti_ln_15,
"EXTI Line 15 tokens",
ExtiLn15Tokens,
Mr15,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr15,
exti_imr1_mr15,
mr15,
((
I: IrqExti1510,
Exti15,
exti15_10,
syscfg::exticr4,
syscfg_exticr4,
syscfg_exticr4_exti15,
exti15,
)),
((
(I: IrqExti1510),
R: Stt Ftt,
Tr15,
Pr15,
Tr15,
Swier15,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr15,
exti_pr1_pr15,
exti_rtsr1_tr15,
exti_swier1_swier15,
tr15,
pr15,
tr15,
swier15,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 16",
ExtiLn16,
peripheral_exti_ln_16,
"EXTI Line 16 tokens",
ExtiLn16Tokens,
Mr16,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr16,
exti_imr1_mr16,
mr16,
(),
((
(),
R: Stt Ftt,
Tr16,
Pr16,
Tr16,
Swier16,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr16,
exti_pr1_pr16,
exti_rtsr1_tr16,
exti_swier1_swier16,
tr16,
pr16,
tr16,
swier16,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 17",
ExtiLn17,
peripheral_exti_ln_17,
"EXTI Line 17 tokens",
ExtiLn17Tokens,
Mr17,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr17,
exti_imr1_mr17,
mr17,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 18",
ExtiLn18,
peripheral_exti_ln_18,
"EXTI Line 18 tokens",
ExtiLn18Tokens,
Mr18,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr18,
exti_imr1_mr18,
mr18,
(),
((
(),
R: Stt Ftt,
Tr18,
Pr18,
Tr18,
Swier18,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr18,
exti_pr1_pr18,
exti_rtsr1_tr18,
exti_swier1_swier18,
tr18,
pr18,
tr18,
swier18,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 19",
ExtiLn19,
peripheral_exti_ln_19,
"EXTI Line 19 tokens",
ExtiLn19Tokens,
Mr19,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr19,
exti_imr1_mr19,
mr19,
(),
((
(),
R: Stt Ftt,
Tr19,
Pr19,
Tr19,
Swier19,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr19,
exti_pr1_pr19,
exti_rtsr1_tr19,
exti_swier1_swier19,
tr19,
pr19,
tr19,
swier19,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 20",
ExtiLn20,
peripheral_exti_ln_20,
"EXTI Line 20 tokens",
ExtiLn20Tokens,
Mr20,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr20,
exti_imr1_mr20,
mr20,
(),
((
(),
R: Stt Ftt,
Tr20,
Pr20,
Tr20,
Swier20,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr20,
exti_pr1_pr20,
exti_rtsr1_tr20,
exti_swier1_swier20,
tr20,
pr20,
tr20,
swier20,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 21",
ExtiLn21,
peripheral_exti_ln_21,
"EXTI Line 21 tokens",
ExtiLn21Tokens,
Mr21,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr21,
exti_imr1_mr21,
mr21,
(),
((
(),
R: Stt Ftt,
Tr21,
Pr21,
Tr21,
Swier21,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr21,
exti_pr1_pr21,
exti_rtsr1_tr21,
exti_swier1_swier21,
tr21,
pr21,
tr21,
swier21,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 22",
ExtiLn22,
peripheral_exti_ln_22,
"EXTI Line 22 tokens",
ExtiLn22Tokens,
Mr22,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr22,
exti_imr1_mr22,
mr22,
(),
((
(),
R: Stt Ftt,
Tr22,
Pr22,
Tr22,
Swier22,
ftsr1,
pr1,
rtsr1,
swier1,
exti_ftsr1,
exti_pr1,
exti_rtsr1,
exti_swier1,
exti_ftsr1_tr22,
exti_pr1_pr22,
exti_rtsr1_tr22,
exti_swier1_swier22,
tr22,
pr22,
tr22,
swier22,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 23",
ExtiLn23,
peripheral_exti_ln_23,
"EXTI Line 23 tokens",
ExtiLn23Tokens,
Mr23,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr23,
exti_imr1_mr23,
mr23,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 24",
ExtiLn24,
peripheral_exti_ln_24,
"EXTI Line 24 tokens",
ExtiLn24Tokens,
Mr24,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr24,
exti_imr1_mr24,
mr24,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 25",
ExtiLn25,
peripheral_exti_ln_25,
"EXTI Line 25 tokens",
ExtiLn25Tokens,
Mr25,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr25,
exti_imr1_mr25,
mr25,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 26",
ExtiLn26,
peripheral_exti_ln_26,
"EXTI Line 26 tokens",
ExtiLn26Tokens,
Mr26,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr26,
exti_imr1_mr26,
mr26,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 27",
ExtiLn27,
peripheral_exti_ln_27,
"EXTI Line 27 tokens",
ExtiLn27Tokens,
Mr27,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr27,
exti_imr1_mr27,
mr27,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 28",
ExtiLn28,
peripheral_exti_ln_28,
"EXTI Line 28 tokens",
ExtiLn28Tokens,
Mr28,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr28,
exti_imr1_mr28,
mr28,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 29",
ExtiLn29,
peripheral_exti_ln_29,
"EXTI Line 29 tokens",
ExtiLn29Tokens,
Mr29,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr29,
exti_imr1_mr29,
mr29,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 30",
ExtiLn30,
peripheral_exti_ln_30,
"EXTI Line 30 tokens",
ExtiLn30Tokens,
Mr30,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr30,
exti_imr1_mr30,
mr30,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 31",
ExtiLn31,
peripheral_exti_ln_31,
"EXTI Line 31 tokens",
ExtiLn31Tokens,
Mr31,
emr1,
imr1,
exti_emr1,
exti_imr1,
exti_emr1_mr31,
exti_imr1_mr31,
mr31,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 32",
ExtiLn32,
peripheral_exti_ln_32,
"EXTI Line 32 tokens",
ExtiLn32Tokens,
Mr32,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr32,
exti_imr2_mr32,
mr32,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 33",
ExtiLn33,
peripheral_exti_ln_33,
"EXTI Line 33 tokens",
ExtiLn33Tokens,
Mr33,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr33,
exti_imr2_mr33,
mr33,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 34",
ExtiLn34,
peripheral_exti_ln_34,
"EXTI Line 34 tokens",
ExtiLn34Tokens,
Mr34,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr34,
exti_imr2_mr34,
mr34,
(),
(),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 35",
ExtiLn35,
peripheral_exti_ln_35,
"EXTI Line 35 tokens",
ExtiLn35Tokens,
Mr35,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr35,
exti_imr2_mr35,
mr35,
(),
((
(),
R: Stt Ftt,
Ft35,
Pif35,
Rt35,
Swi35,
ftsr2,
pr2,
rtsr2,
swier2,
exti_ftsr2,
exti_pr2,
exti_rtsr2,
exti_swier2,
exti_ftsr2_ft35,
exti_pr2_pif35,
exti_rtsr2_rt35,
exti_swier2_swi35,
ft35,
pif35,
rt35,
swi35,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 36",
ExtiLn36,
peripheral_exti_ln_36,
"EXTI Line 36 tokens",
ExtiLn36Tokens,
Mr36,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr36,
exti_imr2_mr36,
mr36,
(),
((
(),
R: Stt Ftt,
Ft36,
Pif36,
Rt36,
Swi36,
ftsr2,
pr2,
rtsr2,
swier2,
exti_ftsr2,
exti_pr2,
exti_rtsr2,
exti_swier2,
exti_ftsr2_ft36,
exti_pr2_pif36,
exti_rtsr2_rt36,
exti_swier2_swi36,
ft36,
pif36,
rt36,
swi36,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 37",
ExtiLn37,
peripheral_exti_ln_37,
"EXTI Line 37 tokens",
ExtiLn37Tokens,
Mr37,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr37,
exti_imr2_mr37,
mr37,
(),
((
(),
R: Stt Ftt,
Ft37,
Pif37,
Rt37,
Swi37,
ftsr2,
pr2,
rtsr2,
swier2,
exti_ftsr2,
exti_pr2,
exti_rtsr2,
exti_swier2,
exti_ftsr2_ft37,
exti_pr2_pif37,
exti_rtsr2_rt37,
exti_swier2_swi37,
ft37,
pif37,
rt37,
swi37,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 38",
ExtiLn38,
peripheral_exti_ln_38,
"EXTI Line 38 tokens",
ExtiLn38Tokens,
Mr38,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr38,
exti_imr2_mr38,
mr38,
(),
((
(),
R: Stt Ftt,
Ft38,
Pif38,
Rt38,
Swi38,
ftsr2,
pr2,
rtsr2,
swier2,
exti_ftsr2,
exti_pr2,
exti_rtsr2,
exti_swier2,
exti_ftsr2_ft38,
exti_pr2_pif38,
exti_rtsr2_rt38,
exti_swier2_swi38,
ft38,
pif38,
rt38,
swi38,
)),
}
#[cfg(any(feature = "stm32l4x1", feature = "stm32l4x2",
feature = "stm32l4x3", feature = "stm32l4x5",
feature = "stm32l4x6"))]
exti_line! {
"EXTI Line 39",
ExtiLn39,
peripheral_exti_ln_39,
"EXTI Line 39 tokens",
ExtiLn39Tokens,
Mr39,
emr2,
imr2,
exti_emr2,
exti_imr2,
exti_emr2_mr39,
exti_imr2_mr39,
mr39,
(),
(),
}