diff options
-rw-r--r-- | cortex-m-rt/CHANGELOG.md | 31 | ||||
-rw-r--r-- | cortex-m-rt/src/lib.rs | 4 |
2 files changed, 33 insertions, 2 deletions
diff --git a/cortex-m-rt/CHANGELOG.md b/cortex-m-rt/CHANGELOG.md index f9e2abd..c2a7045 100644 --- a/cortex-m-rt/CHANGELOG.md +++ b/cortex-m-rt/CHANGELOG.md @@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [v0.4.0] - 2018-04-09 + +### Added + +- LLD support. The linker script provided by this crate has been tweaked to support both LLD and GNU + LD. To use LLD as a linker change `.cargo/config` to look like this: + +``` diff + [target.thumbv7m-none-eabi] + rustflags = [ + "-C", "link-arg=-Tlink.x", +- "-C", "linker=arm-none-eabi-ld", +- "-Z", "linker-flavor=ld", ++ "-C", "linker=lld", ++ "-Z", "linker-flavor=ld.lld", + ] +``` + +### Removed + +- [breaking-change] Stack overflow protection has been removed. Unfortunately, supporting this + feature produces totally wrong `arm-none-eabi-size` reports when LLD is used to link the + program. If you need the stack overflow protection feature you can continue to use version + v0.3.13+. + +- [breaking-change] The "abort-on-panic" Cargo feature, which provided a `panic_fmt` implementation, + has been removed. If you were using this feature you can instead use a [panic implementation + crate][panic-impl]. + +[panic-impl]: https://crates.io/keywords/panic-impl + ## [v0.3.15] - 2018-04-08 ### Fixed diff --git a/cortex-m-rt/src/lib.rs b/cortex-m-rt/src/lib.rs index e2e52b5..7028cce 100644 --- a/cortex-m-rt/src/lib.rs +++ b/cortex-m-rt/src/lib.rs @@ -38,7 +38,7 @@ //! $ # add this crate as a dependency //! $ cargo add cortex-m-rt --vers 0.4.0 //! -//! $ # select a panicking behavior +//! $ # select a panicking behavior (look for the panic-impl keyword on crates.io) //! $ cargo add panic-abort //! //! $ # memory layout of the device @@ -151,7 +151,7 @@ //! #[linkage = "weak"] //! #[naked] //! #[no_mangle] -//! extern "C" fn WWDG() { +//! extern "C" fn PVD() { //! unsafe { //! asm!("b DEFAULT_HANDLER" :::: "volatile"); //! core::intrinsics::unreachable(); |