feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
17624 files changed
+4564928
-38
No files matched your search
Vendored
+699
@@ -0,0 +1,699 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [v0.7.5]
|
||||
|
||||
- Fix incorrect dependency on cortex-m-rt-macros in v0.7.4 which led to
|
||||
incorrect HardFault handlers being generated.
|
||||
- MSRV is now Rust 1.61 to support syn verions >=2.0.68
|
||||
- The `_stack_end` symbol is added, e.g. for use with MSPLIM (#565)
|
||||
- Macros now expand to include an `unsafe` block and `allow(static_mut_refs)`
|
||||
when generating the `&'static mut` references in entry/interrupt handlers
|
||||
(#561, #558)
|
||||
- `expect` attribute now permitted on entry/interrupt handlers (#557)
|
||||
- Up to 496 interrupts now permitted on ARMv8-M (#555)
|
||||
- Add new `paint-stack` feature which writes a fixed value to the entire stack
|
||||
during initialisation (#548)
|
||||
- The hard fault handler `_HardFault` is now placed in the `.HardFault.user`
|
||||
linker section (#535)
|
||||
|
||||
## [v0.7.4]
|
||||
|
||||
- Add `zero-init-ram` feature to initialize RAM with zeros on startup.
|
||||
This can be necessary to properly initialise hardware error detection.
|
||||
- Add optional `exception` argument for `HardFault`.
|
||||
It has one option `trampoline` which is `true` by default. When set to `false`,
|
||||
no trampoline will be created and the function will be called as the
|
||||
exception handler directly.
|
||||
- MSRV increased to 1.60.0 to align with `embedded-hal` version 1.
|
||||
- Improve linker error message when code does not fit into flash.
|
||||
- Update documentation on using custom linker scripts and linker sections
|
||||
and on the `pre_init` function.
|
||||
|
||||
## [v0.7.3]
|
||||
|
||||
- Fixed a potential miscompilation caused by the initial stack pointer
|
||||
not being 8-byte aligned. This issue affected 0.7.1 and 0.7.2; for
|
||||
more details please see [the advisory] ([#467]).
|
||||
- A linker error is generated if the initial stack pointer is not 8-byte aligned ([#464]).
|
||||
- The initial stack pointer is now forced to be 8-byte aligned in the linker script,
|
||||
to defend against it being overridden outside of the cortex-m-rt linker script ([#465]).
|
||||
|
||||
[the advisory]: https://github.com/rust-embedded/cortex-m/discussions/469
|
||||
[#464]: https://github.com/rust-embedded/cortex-m/issues/464
|
||||
[#465]: https://github.com/rust-embedded/cortex-m/issues/465
|
||||
[#467]: https://github.com/rust-embedded/cortex-m/issues/467
|
||||
|
||||
## [v0.7.2]
|
||||
|
||||
- MSRV is now Rust 1.59.
|
||||
- Moved precompiled assembly blobs to `global_asm!`, requiring Rust 1.59.
|
||||
- Add new `set_vtor` and `set-sp` features to conditionally set the VTOR and SP
|
||||
registers at device reset ([#423]).
|
||||
- Allow (unstable) `naked` attribute on interrupt handlers and `pre_init`.
|
||||
|
||||
## Fixes
|
||||
|
||||
- Fix `cortex_m_rt::exception` macro no longer being usable fully-qualified ([#414])
|
||||
- Fix veneer limit position in linker script ([#434]).
|
||||
|
||||
[#414]: https://github.com/rust-embedded/cortex-m/issues/414
|
||||
[#423]: https://github.com/rust-embedded/cortex-m/issues/423
|
||||
[#434]: https://github.com/rust-embedded/cortex-m/issues/434
|
||||
|
||||
## Notes
|
||||
|
||||
- From this release onwards, cortex-m-rt lives in the cortex-m repository;
|
||||
issue numbers refer there.
|
||||
|
||||
## [v0.7.1]
|
||||
|
||||
## Fixes
|
||||
|
||||
- Fix stack unwinding past `Reset` function ([#337])
|
||||
|
||||
[#337]: https://github.com/rust-embedded/cortex-m-rt/pull/337
|
||||
|
||||
## [v0.7.0]
|
||||
|
||||
### New Features
|
||||
|
||||
- Add support for CMSE secure gateway veneers ([#297]).
|
||||
- Allow using the crate with custom target JSON specs ([#304]).
|
||||
- Export Exception enum for other crates to use ([#224]).
|
||||
|
||||
[#224]: https://github.com/rust-embedded/cortex-m-rt/pull/224
|
||||
[#297]: https://github.com/rust-embedded/cortex-m-rt/pull/297
|
||||
[#304]: https://github.com/rust-embedded/cortex-m-rt/pull/304
|
||||
|
||||
### Fixes
|
||||
|
||||
- Various fixes to the linker script ([#265], [#286], [#287], [#323]).
|
||||
- Use the correct ABI for the `main` symbol ([#278]).
|
||||
- Add barriers after FPU enabling ([#279]).
|
||||
- (ARMv6-M) Set LR value to a known value on reset ([#293]).
|
||||
- Added CFI and size info to external assembly subroutines (`HardFaultTrampoline` and `FpuTrampoline`) ([#294]).
|
||||
- Allow building the crate for macOS targets ([#306], [#310]).
|
||||
- Perform RAM initialization in assembly, to avoid potential UB in Rust ([#301]).
|
||||
- Perform volatile reads of ICSR in DefaultHandler ([#315]).
|
||||
|
||||
[#265]: https://github.com/rust-embedded/cortex-m-rt/pull/265
|
||||
[#278]: https://github.com/rust-embedded/cortex-m-rt/pull/278
|
||||
[#279]: https://github.com/rust-embedded/cortex-m-rt/pull/279
|
||||
[#286]: https://github.com/rust-embedded/cortex-m-rt/pull/286
|
||||
[#287]: https://github.com/rust-embedded/cortex-m-rt/pull/287
|
||||
[#293]: https://github.com/rust-embedded/cortex-m-rt/pull/293
|
||||
[#294]: https://github.com/rust-embedded/cortex-m-rt/pull/294
|
||||
[#301]: https://github.com/rust-embedded/cortex-m-rt/pull/301
|
||||
[#306]: https://github.com/rust-embedded/cortex-m-rt/pull/306
|
||||
[#310]: https://github.com/rust-embedded/cortex-m-rt/pull/310
|
||||
[#315]: https://github.com/rust-embedded/cortex-m-rt/pull/315
|
||||
[#323]: https://github.com/rust-embedded/cortex-m-rt/pull/323
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Make `ExceptionFrame`s fields private, adding setters and getters instead
|
||||
([#239]).
|
||||
- Only allow certain attributes on handlers, and apply them to the trampoline
|
||||
too ([#228]).
|
||||
- Make it unsafe to define exception handlers for NMIs ([#289]).
|
||||
- Check that exceptions exist on the target chip when registering a handler for
|
||||
them ([#308]).
|
||||
|
||||
[#239]: https://github.com/rust-embedded/cortex-m-rt/pull/239
|
||||
[#228]: https://github.com/rust-embedded/cortex-m-rt/pull/228
|
||||
[#289]: https://github.com/rust-embedded/cortex-m-rt/pull/289
|
||||
[#308]: https://github.com/rust-embedded/cortex-m-rt/pull/308
|
||||
|
||||
### Other
|
||||
|
||||
- Change macros crate to use same version number as cortex-m-rt crate ([#245]).
|
||||
- Discourage use of `pre_init` in documentation ([#248]).
|
||||
- Backport: Use `links` in Cargo.toml to prevent multiple linking of
|
||||
cortex-m-rt ([#276]).
|
||||
|
||||
[#245]: https://github.com/rust-embedded/cortex-m-rt/pull/245
|
||||
[#248]: https://github.com/rust-embedded/cortex-m-rt/pull/248
|
||||
[#276]: https://github.com/rust-embedded/cortex-m-rt/pull/276
|
||||
|
||||
## Backport release: [v0.6.15] - 2021-07-12
|
||||
|
||||
### Fixed
|
||||
|
||||
- Backport: Mark .bss as NOLOAD ([#265])
|
||||
- Backport: Fix possible overflow of .data region ([#286])
|
||||
- Backport: Perform volatile reads of ICSR in DefaultHandler ([#315])
|
||||
|
||||
### Other
|
||||
- Backport: Use `links` in Cargo.toml to prevent multiple linking of
|
||||
cortex-m-rt ([#276])
|
||||
- Backport: Use same verison for macros crate as for cortex-m-rt itself
|
||||
([#245])
|
||||
|
||||
[#245]: https://github.com/rust-embedded/cortex-m-rt/pull/245
|
||||
[#265]: https://github.com/rust-embedded/cortex-m-rt/pull/265
|
||||
[#276]: https://github.com/rust-embedded/cortex-m-rt/pull/276
|
||||
[#286]: https://github.com/rust-embedded/cortex-m-rt/pull/286
|
||||
[#315]: https://github.com/rust-embedded/cortex-m-rt/pull/315
|
||||
|
||||
## [v0.6.14] - 2021-05-19
|
||||
|
||||
### Fixed
|
||||
|
||||
- Backport: Allow building the crate for macOS targets ([#306], [#310]).
|
||||
|
||||
[#306]: https://github.com/rust-embedded/cortex-m-rt/issues/306
|
||||
[#310]: https://github.com/rust-embedded/cortex-m-rt/issues/310
|
||||
|
||||
## Backport release: [v0.6.13] - 2020-09-07
|
||||
|
||||
### Fixed
|
||||
|
||||
- (ARMv6-M) Set LR value to a known value on reset (as the ARM spec requires)
|
||||
- Added CFI and size info to external assembly subroutines (`HardFaultTrampoline`)
|
||||
|
||||
## Backport release: [v0.6.12] - 2020-01-26
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed lint warnings getting emitted on macro-generated code.
|
||||
|
||||
## [v0.6.11] - 2019-12-04
|
||||
|
||||
### Changed
|
||||
|
||||
- Macros now generate a second trampoline function instead of randomizing the
|
||||
function's symbol name. This makes the build deterministic.
|
||||
- [breaking-change] `static mut` resources no longer have `'static` lifetime
|
||||
except in the `#[entry]` function (this is a soundness fix; see [#212]).
|
||||
|
||||
[#212]: https://github.com/rust-embedded/cortex-m-rt/issues/212
|
||||
|
||||
## [v0.6.10] - 2019-07-25
|
||||
|
||||
### Fixed
|
||||
|
||||
- Linker template now takes and discard `*(.ARM.exidx)`
|
||||
|
||||
## [v0.6.9] - 2019-07-11
|
||||
|
||||
### Added
|
||||
|
||||
- Input `.uninit.*` sections are now collected into an output `.uninit` section.
|
||||
Uninitialized static variables are meant to be placed in these sections. The
|
||||
output `.uninit` section is not initialized by the runtime.
|
||||
|
||||
## [v0.6.8] - 2019-04-02
|
||||
|
||||
### Fixed
|
||||
|
||||
- Correct stack-pointer is selected on `HardFault`
|
||||
- Linker template now takes and discard `*(.ARM.extab.*)`
|
||||
- Misc. documentation fixes
|
||||
|
||||
### Changed
|
||||
|
||||
- Architecture added: `armv8-m.main`
|
||||
- Cortex-M team added to `authors`
|
||||
- The nightly build is allowed to fail in CI
|
||||
|
||||
## [v0.6.7] - 2018-12-15
|
||||
|
||||
### Fixed
|
||||
|
||||
- entry / exception / interrupt: `#[cfg]` attributes used on `static mut`
|
||||
variables are now properly handled.
|
||||
|
||||
## [v0.6.6] - 2018-12-06
|
||||
|
||||
### Changed
|
||||
|
||||
- Misuse of attributes now produce compiler errors with proper spans instead of
|
||||
panicking messages.
|
||||
|
||||
- The `HardFault` symbol has been renamed to `HardFaultTrampoline`; likewise the
|
||||
`UserHardFault` symbol has been renamed to `HardFault`. If you were using
|
||||
breakpoints on `UserHardFault` to detect hard fault you should now put those
|
||||
breakpoints on the `HardFault` symbol.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Attributes on local `static mut` variables (declared at the beginning of
|
||||
`entry` / `interrupt` / `exception`) are now respected.
|
||||
|
||||
- The "GDB can now unwind HardFault callstacks" fix from the previous release
|
||||
broke `HardFault`'s' `&ExceptionFrame` argument (the pointer was off by 8
|
||||
bytes). This release fixes that problem without compromising GDB's ability to
|
||||
unwind `HardFault`s.
|
||||
|
||||
## [v0.6.5] - 2018-10-23
|
||||
|
||||
### Changed
|
||||
|
||||
- We now keep `.stack_sizes` by default, for use with external tooling.
|
||||
- (macros) New `#[interrupt]` attribute added, similar to `#[exception]` for
|
||||
use with device-specific interrupt handlers.
|
||||
|
||||
### Fixed
|
||||
|
||||
- GDB can now unwind HardFault callstacks
|
||||
|
||||
## [v0.6.4] - 2018-09-25
|
||||
|
||||
### Changed
|
||||
|
||||
- (macros) Improved the error message when any of the attribute is used on the
|
||||
wrong kind of item.
|
||||
|
||||
### Fixed
|
||||
|
||||
- (macros) The expansion of the `exception` attribute now uses the `extern "C"`
|
||||
ABI which is what the hardware expects.
|
||||
|
||||
- (macros) `entry` and `exception` now respect the declared unsafety. That is
|
||||
`#[entry] unsafe main() -> !` won't require `unsafe` blocks to use `unsafe`
|
||||
API.
|
||||
|
||||
## [v0.6.3] - 2018-09-09
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the `rand` problem for real.
|
||||
|
||||
## [v0.6.2] - 2018-09-09
|
||||
|
||||
### Fixed
|
||||
|
||||
- Worked around a Cargo limitation that broke builds that depend on `rand`.
|
||||
|
||||
- Updated the documentation link in the README to point to working docs.
|
||||
|
||||
## [v0.6.1] - 2018-09-06
|
||||
|
||||
### Changed
|
||||
|
||||
- Produce a better error message if two (or more) copies of `cortex-m-rt` are
|
||||
going to be linked into a binary.
|
||||
|
||||
## [v0.6.0] - 2018-09-06
|
||||
|
||||
### Changed
|
||||
|
||||
- [breaking-change] the `entry!`, `pre_init!` and `exception!` macros have been
|
||||
replaced with attributes: `#[entry]`, `#[pre_init]` and `#[exception]`,
|
||||
respectively. This also changes the toolchain requirement to 1.30-beta or
|
||||
newer.
|
||||
|
||||
## [v0.5.3] - 2018-08-27
|
||||
|
||||
### Changed
|
||||
|
||||
- This crate no longer depends on `arm-none-eabi-gcc`.
|
||||
|
||||
## [v0.5.2] - 2018-08-11
|
||||
|
||||
### Added
|
||||
|
||||
* A `pre_init!` macro and related functionality to run a function immediately
|
||||
after reset, before memory initialisation
|
||||
|
||||
### Changed
|
||||
|
||||
- The `entry!` and `exception!` macros now also accept a closure instead of a path.
|
||||
|
||||
- `DefaultHandler` and `UserHardFault` now default to an infinite loop if left undefined.
|
||||
|
||||
### Fixed
|
||||
|
||||
* Linked script modified to correctly detect `FLASH` overflow caused by `.data`
|
||||
|
||||
## [v0.5.1] - 2018-05-14
|
||||
|
||||
### Fixed
|
||||
|
||||
- A recompilation problem where this `cortex-m-rt` would be recompiled every time `cargo build` is
|
||||
invoked.
|
||||
|
||||
## [v0.5.0] - 2018-05-12
|
||||
|
||||
### Added
|
||||
|
||||
- An `entry!` macro to set the entry point of the program.
|
||||
|
||||
- A `heap_start` function that returns a pointer into the start of the heap region.
|
||||
|
||||
- A `device` feature. When disabled this crate provides the interrupt vectors; when enabled the
|
||||
interrupt vectors are expected to be provided by another crate. Read the documentation for
|
||||
details.
|
||||
|
||||
### Changed
|
||||
|
||||
- This crate now compiles on the beta and stable channels.
|
||||
|
||||
- [breaking-change] this crate now requires `arm-none-eabi-gcc` to be installed and available in
|
||||
`$PATH` to compile.
|
||||
|
||||
- [breaking-change] the `start` lang item has been removed. The standard `main` interface won't
|
||||
work. Instead use `#![no_main]` and the `entry!` macro. See documentation for details.
|
||||
|
||||
- [breaking-change] the `default_handler!` macro has been merged into the `exception!` macro. Use
|
||||
`exception!(*, ..)` to set the default exception handler.
|
||||
|
||||
- [breaking-change] there's no weak default handler so a default handler must be defined by the
|
||||
application, or one of its dependencies.
|
||||
|
||||
- [breaking-change] the syntax of the third argument of the `exception!` handler has changed. See
|
||||
the documentation of the macro for details.
|
||||
|
||||
- [breaking-change] the exception names that the `exception!` macro accepts has changed to match the
|
||||
CMSIS specification. See the documentation of the macro for the list of names it accepts.
|
||||
|
||||
- [breaking-change] The number of symbol interfaces has been reduced. Check the advanced section of
|
||||
the documentation for details.
|
||||
|
||||
## [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
|
||||
|
||||
- Support the newest nightly
|
||||
|
||||
## [v0.3.14] - 2018-04-01
|
||||
|
||||
### Fixed
|
||||
|
||||
- `dev` channel support
|
||||
|
||||
## [v0.3.13] - 2018-02-17
|
||||
|
||||
### Added
|
||||
|
||||
- Fictitious `.stack` and `.heap` linker sections that represent the locations of the stack and the
|
||||
heap in RAM. You can visualize these linker sections by running `arm-none-eabi-size -Ax` over your
|
||||
binary.
|
||||
|
||||
- Zero cost stack overflow protection when you use the `cortex-m-rt-ld` linker. Check documentation
|
||||
for details.
|
||||
|
||||
- A `_heap_size` symbol that indicates how large the heap is. This symbol is only used when
|
||||
`cortex-m-rt-ld` is used as a linker.
|
||||
|
||||
## [v0.3.12] - 2018-01-17
|
||||
|
||||
### Fixed
|
||||
|
||||
- Support for recent nightlies.
|
||||
|
||||
## [v0.3.11] - 2018-01-17 - YANKED
|
||||
|
||||
### Changed
|
||||
|
||||
- Dynamically support recent nightlies, which have the `termination` lang item, and
|
||||
nightly-2017-09-22, which doesn't. That nightly version is used by the docs.rs builder. Supporting
|
||||
that version instead of rejecting it ensures this crate and its reverse-dependencies will get
|
||||
their documentation built by the docs.rs service.
|
||||
|
||||
## [v0.3.10] - 2018-01-17 - YANKED
|
||||
|
||||
### Removed
|
||||
|
||||
- The nightly date check from build script that improved error messages for users of old,
|
||||
unsupported nightlies. Unfortunately the check was preventing this crate and reverse-dependencies
|
||||
from getting their documentation build on docs.rs
|
||||
|
||||
## [v0.3.9] - 2018-01-07
|
||||
|
||||
### Fixed
|
||||
|
||||
- `cargo doc` warnings
|
||||
|
||||
## [v0.3.8] - 2017-12-29
|
||||
|
||||
### Added
|
||||
|
||||
- `Termination` lang item
|
||||
|
||||
### Changed
|
||||
|
||||
- The `start` lang item to match the new signature
|
||||
|
||||
## [v0.3.7] - 2017-12-23
|
||||
|
||||
### Added
|
||||
|
||||
- Support for overriding the DEBUG_MONITOR exception handler on ARMv7-M.
|
||||
|
||||
## [v0.3.6] - 2017-10-03
|
||||
|
||||
### Fixed
|
||||
|
||||
- Builds with multiple codegen units by forcing the linker to look harder for the exceptions vector
|
||||
table.
|
||||
|
||||
## [v0.3.5] - 2017-07-21
|
||||
|
||||
### Fixed
|
||||
|
||||
- Remove duplication of default exception handlers. This saves 32 bytes of Flash
|
||||
memory (.text).
|
||||
|
||||
## [v0.3.4] - 2017-07-19
|
||||
|
||||
### Changed
|
||||
|
||||
- Align the end of .rodata to a 4-byte boundary. With this the sections that
|
||||
will go into Flash memory will be 4 byte aligned at the start and at the
|
||||
end. Which seems to be required (?) by Cortex-M0 devices.
|
||||
|
||||
- .bss and .data are now padded so their sizes are multiple of 4 bytes. This
|
||||
improves the output of `objdump`; before, the output showed "Address
|
||||
0x20000004 is out of bounds".
|
||||
|
||||
- Linking now aborts if any of the input files contains a .got section. Dynamic
|
||||
relocations are not supported and Rust code is not relocatable by default.
|
||||
This error only occurs if C code that was compiled with the -fPIC flag is
|
||||
linked in. The error message will tell the user how to compile their C code
|
||||
without -fPIC.
|
||||
|
||||
## [v0.3.3] - 2017-07-14
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated the documentation: it's no longer necessary to use the
|
||||
compiler-builtins repository since that crate landed in rust-lang/rust and
|
||||
it's now available in the `rust-src` component.
|
||||
|
||||
## [v0.3.2] - 2017-07-07
|
||||
|
||||
### Changed
|
||||
|
||||
- Tweaked documentation
|
||||
|
||||
## [v0.3.1] - 2017-07-07
|
||||
|
||||
### Fixed
|
||||
|
||||
- A warning when compiling for x86_64 and the "abort-on-panic" feature is
|
||||
enabled.
|
||||
|
||||
## [v0.3.0] - 2017-07-07
|
||||
|
||||
### Added
|
||||
|
||||
- A `default_handler!` macro to override the default exception handler.
|
||||
|
||||
- An `exception!` macro to override the handler for a particular exception.
|
||||
|
||||
### Changed
|
||||
|
||||
- The FPU will now be enabled before `main` if the target has FPU support.
|
||||
|
||||
- [breaking-change] the features "panic-over-itm" and "panic-over-semihosting"
|
||||
has been removed. the `panic_fmt` language item is now *not* included by
|
||||
default. An opt-in feature named "abort-on-panic" can be enabled to make this
|
||||
crate provide a `panic_fmt` implementation that simply aborts.
|
||||
|
||||
- [breaking-change] The sections `.rodata.{exceptions,interrupts}` have been
|
||||
renamed to `.vector_table.{exceptions,interrupts}`. This break the old
|
||||
mechanism for registering exceptions (`static EXCEPTIONS`); use the new ones:
|
||||
`default_handler!` and `exception!`.
|
||||
|
||||
- The `_stack_start` is now optional in the `memory.x` file. If unspecified its
|
||||
value will be set to `ORIGIN(RAM) + LENGTH(RAM)`.
|
||||
|
||||
## [v0.2.4] - 2017-06-03
|
||||
|
||||
### Added
|
||||
|
||||
- A non-allocatable `.stlog` section to support the [`stlog`] logging framework.
|
||||
|
||||
[`stlog`]: https://crates.io/crates/stlog
|
||||
|
||||
## [v0.2.3] - 2017-05-30
|
||||
|
||||
### Added
|
||||
|
||||
- A `_stext` symbol which can be specified in the linker script to customize the
|
||||
location of the `.text` section. If not specified the `.text` section will be
|
||||
placed right after the `.vector_table` section.
|
||||
|
||||
## [v0.2.2] - 2017-05-27
|
||||
|
||||
### Added
|
||||
|
||||
- A `_sheap` symbol where the heap can be located.
|
||||
|
||||
### Changed
|
||||
|
||||
- The linker sections have renamed / reorder to make `arm-none-eabi-size -A`
|
||||
more useful. You'll now see something like this:
|
||||
|
||||
```
|
||||
$ arm-none-eabi-size -A hello
|
||||
hello :
|
||||
section size addr
|
||||
.vector_table 1024 134217728
|
||||
.text 288 134218752
|
||||
.rodata 14 134219040
|
||||
```
|
||||
|
||||
- `cortex-m-rt::reset_handler` is now the entry point of all programs that link
|
||||
to `cortex-m-rt`. This makes GDB's `load` command work correctly. It will now
|
||||
set the Program Counter to `reset_handler` after flashing the program so
|
||||
there's no need to reset the microcontroller after flashing.
|
||||
|
||||
- Renamed `__exceptions` and `__interrupts` symbols, which are only used
|
||||
internally, to `_eexceptions` and `_einterrupts` respectively for consistency.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Include input `.text` and `.rodata` sections (note: no suffix as in
|
||||
`.text.foo`) in the output file. (C) Code compiled without the equivalent
|
||||
`-ffunction-sections` / `-fdata-sections` may place stuff in those unsuffixed
|
||||
sections.
|
||||
|
||||
## [v0.2.1] - 2017-05-07
|
||||
|
||||
### Fixed
|
||||
|
||||
- Do not load the `.debug_gdb_script` section in flash. It's only needed for
|
||||
debugging.
|
||||
|
||||
## [v0.2.0] - 2017-04-27
|
||||
|
||||
### Changed
|
||||
|
||||
- [breaking-change] the `_stack_start` symbol is now required and must be
|
||||
provided in the `memory.x` file when using the "linker-script" feature. This
|
||||
symbol indicates where in memory the call stack will be allocated.
|
||||
|
||||
## [v0.1.3] - 2017-04-25
|
||||
|
||||
### Fixed
|
||||
|
||||
- A `rustdoc` warning
|
||||
|
||||
## [v0.1.2] - 2017-04-22
|
||||
|
||||
### Changed
|
||||
|
||||
- Unclutter the `reset_handler` function for a better debugging experience.
|
||||
|
||||
## [v0.1.1] - 2017-04-15
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved linker error messages
|
||||
|
||||
## v0.1.0 - 2017-04-12
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/rust-embedded/cortex-m/compare/c-m-rt-v0.7.5...HEAD
|
||||
[v0.7.4]: https://github.com/rust-embedded/cortex-m/compare/c-m-rt-v0.7.4...c-m-rt-v0.7.5
|
||||
[v0.7.4]: https://github.com/rust-embedded/cortex-m/compare/c-m-rt-v0.7.3...c-m-rt-v0.7.4
|
||||
[v0.7.3]: https://github.com/rust-embedded/cortex-m/compare/c-m-rt-v0.7.2...c-m-rt-v0.7.3
|
||||
[v0.7.2]: https://github.com/rust-embedded/cortex-m/compare/c-m-rt-v0.7.1...c-m-rt-v0.7.2
|
||||
[v0.7.1]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.7.0...v0.7.1
|
||||
[v0.7.0]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.11...v0.7.0
|
||||
[v0.6.15]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.14...v0.6.15
|
||||
[v0.6.14]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.13...v0.6.14
|
||||
[v0.6.13]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.12...v0.6.13
|
||||
[v0.6.12]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.11...v0.6.12
|
||||
[v0.6.11]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.10...v0.6.11
|
||||
[v0.6.10]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.9...v0.6.10
|
||||
[v0.6.9]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.8...v0.6.9
|
||||
[v0.6.8]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.7...v0.6.8
|
||||
[v0.6.7]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.6...v0.6.7
|
||||
[v0.6.6]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.5...v0.6.6
|
||||
[v0.6.5]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.4...v0.6.5
|
||||
[v0.6.4]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.3...v0.6.4
|
||||
[v0.6.3]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.2...v0.6.3
|
||||
[v0.6.2]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.1...v0.6.2
|
||||
[v0.6.1]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.6.0...v0.6.1
|
||||
[v0.6.0]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.5.3...v0.6.0
|
||||
[v0.5.3]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.5.2...v0.5.3
|
||||
[v0.5.2]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.5.1...v0.5.2
|
||||
[v0.5.1]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.5.0...v0.5.1
|
||||
[v0.5.0]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.4.0...v0.5.0
|
||||
[v0.4.0]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.15...v0.4.0
|
||||
[v0.3.15]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.14...v0.3.15
|
||||
[v0.3.14]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.13...v0.3.14
|
||||
[v0.3.13]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.12...v0.3.13
|
||||
[v0.3.12]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.11...v0.3.12
|
||||
[v0.3.11]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.10...v0.3.11
|
||||
[v0.3.10]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.9...v0.3.10
|
||||
[v0.3.9]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.8...v0.3.9
|
||||
[v0.3.8]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.7...v0.3.8
|
||||
[v0.3.7]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.6...v0.3.7
|
||||
[v0.3.6]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.5...v0.3.6
|
||||
[v0.3.5]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.4...v0.3.5
|
||||
[v0.3.4]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.3...v0.3.4
|
||||
[v0.3.3]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.2...v0.3.3
|
||||
[v0.3.2]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.1...v0.3.2
|
||||
[v0.3.1]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.3.0...v0.3.1
|
||||
[v0.3.0]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.2.4...v0.3.0
|
||||
[v0.2.4]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.2.3...v0.2.4
|
||||
[v0.2.3]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.2.2...v0.2.3
|
||||
[v0.2.2]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.2.1...v0.2.2
|
||||
[v0.2.1]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.2.0...v0.2.1
|
||||
[v0.2.0]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.1.3...v0.2.0
|
||||
[v0.1.3]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.1.2...v0.1.3
|
||||
[v0.1.2]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.1.1...v0.1.2
|
||||
[v0.1.1]: https://github.com/rust-embedded/cortex-m-rt/compare/v0.1.0...v0.1.1
|
||||
Reference in new issue
Block a user