Pass WDT config around
By passing WDT config around we can control it more easily and promote sharing it between files.
This commit is contained in:
parent
0aa2a9ac27
commit
651eec0242
@ -149,11 +149,7 @@ pub struct WatchdogFlash<'d> {
|
|||||||
|
|
||||||
impl<'d> WatchdogFlash<'d> {
|
impl<'d> WatchdogFlash<'d> {
|
||||||
/// Start a new watchdog with a given flash and WDT peripheral and a timeout
|
/// Start a new watchdog with a given flash and WDT peripheral and a timeout
|
||||||
pub fn start(flash: Nvmc<'d>, wdt: WDT, timeout: u32) -> Self {
|
pub fn start(flash: Nvmc<'d>, wdt: WDT, config: wdt::Config) -> Self {
|
||||||
let mut config = wdt::Config::default();
|
|
||||||
config.timeout_ticks = 32768 * timeout; // timeout seconds
|
|
||||||
config.run_during_sleep = true;
|
|
||||||
config.run_during_debug_halt = false;
|
|
||||||
let (_wdt, [wdt]) = match wdt::Watchdog::try_new(wdt, config) {
|
let (_wdt, [wdt]) = match wdt::Watchdog::try_new(wdt, config) {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
|
@ -6,6 +6,7 @@ use cortex_m_rt::{entry, exception};
|
|||||||
use defmt_rtt as _;
|
use defmt_rtt as _;
|
||||||
use embassy_boot_nrf::*;
|
use embassy_boot_nrf::*;
|
||||||
use embassy_nrf::nvmc::Nvmc;
|
use embassy_nrf::nvmc::Nvmc;
|
||||||
|
use embassy_nrf::wdt;
|
||||||
|
|
||||||
#[entry]
|
#[entry]
|
||||||
fn main() -> ! {
|
fn main() -> ! {
|
||||||
@ -20,8 +21,14 @@ fn main() -> ! {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
let mut bl = BootLoader::default();
|
let mut bl = BootLoader::default();
|
||||||
|
|
||||||
|
let mut wdt_config = wdt::Config::default();
|
||||||
|
wdt_config.timeout_ticks = 32768 * 5; // timeout seconds
|
||||||
|
wdt_config.run_during_sleep = true;
|
||||||
|
wdt_config.run_during_debug_halt = false;
|
||||||
|
|
||||||
let start = bl.prepare(&mut SingleFlashConfig::new(&mut BootFlash::<_, 4096>::new(
|
let start = bl.prepare(&mut SingleFlashConfig::new(&mut BootFlash::<_, 4096>::new(
|
||||||
WatchdogFlash::start(Nvmc::new(p.NVMC), p.WDT, 5),
|
WatchdogFlash::start(Nvmc::new(p.NVMC), p.WDT, wdt_config),
|
||||||
)));
|
)));
|
||||||
unsafe { bl.load(start) }
|
unsafe { bl.load(start) }
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user