diff options
author | 2017-06-30 19:05:11 -0500 | |
---|---|---|
committer | 2017-06-30 19:05:11 -0500 | |
commit | 6c642b7f3efbe8806a2e6d12ba1beb04c83486d5 (patch) | |
tree | eff01cd42f80b4688bee9e402091221c03535048 | |
parent | 45ec58c6bf16e5ea00eac9753de7f8acffa464f8 (diff) | |
download | cortex-m-6c642b7f3efbe8806a2e6d12ba1beb04c83486d5.tar.gz cortex-m-6c642b7f3efbe8806a2e6d12ba1beb04c83486d5.tar.zst cortex-m-6c642b7f3efbe8806a2e6d12ba1beb04c83486d5.zip |
update CHANGELOG
-rw-r--r-- | CHANGELOG.md | 30 | ||||
-rw-r--r-- | src/exception.rs | 12 |
2 files changed, 36 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e52c26e..ec96200 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Changed + +- [breaking-change] Renamed `StackedRergisters` to `ExceptionFrame` to better + reflect the ARM documentation. + +- [breaking-change] Renamed the variants of `Exception` to better match the + ARM documentation. + +- [breaking-change] Renamed `Exception::current` to `Exception::active` and + changed the signature to return `None` when no exception is being serviced. + +### Removed + +- [breaking-change] The `ctxt` module along with the exception "tokens" in the + `exception` module. The `cortex-m-rt` crate v0.3.0 provides a more ergonomic + mechanism to add state to interrupts / exceptions; replace your uses of + `Local` with that. + +- [breaking-change] `default_handler`, `DEFAULT_HANDLERS` and `Handlers` from + the `exception` module as well as `Reserved` from the root of the crate. + `cortex-m-rt` v0.3.0 provides a mechanism to override exceptions and the + default exception handler. Change your use of these `Handlers` and others to + that. + +### Fixed + +- `interrupt::{enable,disable}` are now compiler barriers. The compiler should + not reorder code around these function calls for memory safety; that is the + case now. + ## [v0.2.11] - 2017-06-16 ### Added diff --git a/src/exception.rs b/src/exception.rs index 4195d67..3052f66 100644 --- a/src/exception.rs +++ b/src/exception.rs @@ -4,7 +4,7 @@ #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum Exception { /// Non-maskable interrupt - Nmi, + NMI, /// Other type of faults and unhandled faults HardFault, /// Memory protection related fault @@ -14,9 +14,9 @@ pub enum Exception { /// Fault due to undefined instruction or illegal state UsageFault, /// Supervisor call - Svcall, + SVCall, /// Pendable request for system-level service - Pendsv, + PendSV, /// System timer exception SysTick, /// An interrupt @@ -36,13 +36,13 @@ impl Exception { Some(match icsr as u8 { 0 => return None, - 2 => Exception::Nmi, + 2 => Exception::NMI, 3 => Exception::HardFault, 4 => Exception::MenManage, 5 => Exception::BusFault, 6 => Exception::UsageFault, - 11 => Exception::Svcall, - 14 => Exception::Pendsv, + 11 => Exception::SVCall, + 14 => Exception::PendSV, 15 => Exception::SysTick, n if n >= 16 => Exception::Interrupt(n - 16), _ => Exception::Reserved, |