From c94bd2d98d29cbf6d92f2f915e72d1555e282248 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sat, 23 Dec 2017 21:34:24 +0100 Subject: [PATCH] add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum --- Cargo.toml | 5 ++++- ci/script.sh | 9 ++++++++- src/lib.rs | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 05f90ab000..e506be02b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/japaric/cortex-m-rtfm" version = "0.3.0" [dependencies] -cortex-m = { git = "https://github.com/japaric/cortex-m" } +cortex-m = { git = "https://github.com/japaric/cortex-m", branch = "cm7-r0p1" } untagged-option = "0.1.1" # rtfm-core = "0.2.0" rtfm-core = { git = "https://github.com/japaric/rtfm-core" } @@ -32,5 +32,8 @@ features = ["rt"] git = "https://github.com/japaric/stm32f103xx" # version = "0.8.0" +[features] +cm7-r0p1 = ["cortex-m/cm7-r0p1"] + [profile.release] lto = true diff --git a/ci/script.sh b/ci/script.sh index af425da52f..222a1e0263 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -7,7 +7,14 @@ main() { return fi - xargo build --target $TARGET + case $TARGET in + thumbv7em-none-eabi*) + xargo check --target $TARGET --features cm7-r0p1 + xargo check --target $TARGET --features cm7-r0p1 --examples + ;; + esac + + xargo check --target $TARGET xargo check --target $TARGET --examples } diff --git a/src/lib.rs b/src/lib.rs index be670490e7..986a7c9ad2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -50,6 +50,11 @@ //! //! [here]: https://docs.rs/cortex-m-rtfm-macros/0.2.0/cortex_m_rtfm_macros/fn.app.html //! +//! # Important: Cortex-M7 devices +//! +//! If targeting a Cortex-M7 device with revision r0p1 then you MUST enable the `cm7-r0p1` Cargo +//! feature of this crate or the `Resource.claim` and `Resource.claim_mut` methods WILL misbehave. +//! //! # Examples //! //! In increasing grade of complexity. See the [examples](./examples/index.html)