From 60639b3a9ca22b89067124651ff86ab3c81756c1 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 21 Jan 2020 22:13:23 +0100 Subject: [PATCH] use the safe DWT::unlock API instead of a unsafe write_volatile call --- Cargo.toml | 2 +- examples/schedule.rs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 56ef2aca43..b76777ebab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,7 +47,7 @@ name = "types" required-features = ["__v7"] [dependencies] -cortex-m = "0.6.0" +cortex-m = "0.6.2" cortex-m-rtfm-macros = { path = "macros", version = "0.5.0" } rtfm-core = "0.3.0" cortex-m-rt = "0.6.9" diff --git a/examples/schedule.rs b/examples/schedule.rs index 97818e36a1..8dbe4ab8b8 100644 --- a/examples/schedule.rs +++ b/examples/schedule.rs @@ -1,9 +1,11 @@ //! examples/schedule.rs +#![deny(unsafe_code)] #![deny(warnings)] #![no_main] #![no_std] +use cortex_m::peripheral::DWT; use cortex_m_semihosting::hprintln; use panic_halt as _; use rtfm::cyccnt::{Instant, U32Ext as _}; @@ -15,8 +17,8 @@ const APP: () = { fn init(mut cx: init::Context) { // Initialize (enable) the monotonic timer (CYCCNT) cx.core.DCB.enable_trace(); - // required on devices that software lock the DWT (e.g. STM32F7) - unsafe { cx.core.DWT.lar.write(0xC5ACCE55) } + // required on Cortex-M7 devices that software lock the DWT (e.g. STM32F7) + DWT::unlock(); cx.core.DWT.enable_cycle_counter(); // semantically, the monotonic timer is frozen at time "zero" during `init`