stm32f0: Enable debug access in low power modes
This commit is contained in:
parent
01e0a3928f
commit
2a4890165d
3 changed files with 12 additions and 8 deletions
|
@ -2,7 +2,8 @@ use core::marker::PhantomData;
|
||||||
|
|
||||||
use embassy::util::Unborrow;
|
use embassy::util::Unborrow;
|
||||||
|
|
||||||
use crate::pac::{DBGMCU, FLASH, RCC};
|
use crate::dbgmcu::Dbgmcu;
|
||||||
|
use crate::pac::{FLASH, RCC};
|
||||||
use crate::peripherals;
|
use crate::peripherals;
|
||||||
use crate::time::Hertz;
|
use crate::time::Hertz;
|
||||||
|
|
||||||
|
@ -193,12 +194,7 @@ impl<'d> Rcc<'d> {
|
||||||
if self.config.enable_debug_wfe {
|
if self.config.enable_debug_wfe {
|
||||||
RCC.ahbenr().modify(|w| w.set_dmaen(true));
|
RCC.ahbenr().modify(|w| w.set_dmaen(true));
|
||||||
|
|
||||||
critical_section::with(|_| {
|
critical_section::with(|_| Dbgmcu::enable_all());
|
||||||
DBGMCU.cr().modify(|w| {
|
|
||||||
w.set_dbg_standby(true);
|
|
||||||
w.set_dbg_stop(true);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ use embassy_stm32::Peripherals;
|
||||||
#[path = "../example_common.rs"]
|
#[path = "../example_common.rs"]
|
||||||
mod example_common;
|
mod example_common;
|
||||||
|
|
||||||
#[embassy::main]
|
#[embassy::main(config = "example_common::config()")]
|
||||||
async fn main(_spawner: Spawner, _p: Peripherals) -> ! {
|
async fn main(_spawner: Spawner, _p: Peripherals) -> ! {
|
||||||
loop {
|
loop {
|
||||||
Timer::after(Duration::from_secs(1)).await;
|
Timer::after(Duration::from_secs(1)).await;
|
||||||
|
|
|
@ -6,6 +6,14 @@ use panic_probe as _;
|
||||||
pub use defmt::*;
|
pub use defmt::*;
|
||||||
|
|
||||||
use core::sync::atomic::{AtomicUsize, Ordering};
|
use core::sync::atomic::{AtomicUsize, Ordering};
|
||||||
|
use embassy_stm32::rcc;
|
||||||
|
use embassy_stm32::Config;
|
||||||
|
|
||||||
|
pub fn config() -> Config {
|
||||||
|
let mut rcc_config = rcc::Config::default();
|
||||||
|
rcc_config.enable_debug_wfe = true;
|
||||||
|
Config::default().rcc(rcc_config)
|
||||||
|
}
|
||||||
|
|
||||||
defmt::timestamp! {"{=u64}", {
|
defmt::timestamp! {"{=u64}", {
|
||||||
static COUNT: AtomicUsize = AtomicUsize::new(0);
|
static COUNT: AtomicUsize = AtomicUsize::new(0);
|
||||||
|
|
Loading…
Reference in a new issue