aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cortex-m-rt/CHANGELOG.md31
-rw-r--r--cortex-m-rt/src/lib.rs4
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();