From c94bd2d98d29cbf6d92f2f915e72d1555e282248 Mon Sep 17 00:00:00 2001
From: Jorge Aparicio <jorge@japaric.io>
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 05f90ab..e506be0 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 af425da..222a1e0 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 be67049..986a7c9 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)
-- 
GitLab