stm32f0: Enable debug access in low power modes

This commit is contained in:
Timo Kröger 2021-07-29 15:24:42 +02:00
parent 01e0a3928f
commit 2a4890165d
3 changed files with 12 additions and 8 deletions

View file

@ -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);
});
});
} }
} }

View file

@ -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;

View file

@ -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);