mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-29 06:54:33 +01:00
note that the timer queue is not supported on ARMv6-M
This commit is contained in:
parent
d35f5bc0b0
commit
06c1e2f9b4
6 changed files with 33 additions and 13 deletions
|
@ -9,8 +9,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- This crate now compiles on 1.31-beta and will compile on the stable 1.31
|
- This crate now compiles on stable 1.31.
|
||||||
release.
|
|
||||||
|
|
||||||
- [breaking-change] The `app!` macro has been transformed into an attribute. See
|
- [breaking-change] The `app!` macro has been transformed into an attribute. See
|
||||||
the documentation for details.
|
the documentation for details.
|
||||||
|
|
|
@ -40,7 +40,9 @@ behave the way you expect please open [an issue]!
|
||||||
- **Highly efficient memory usage**: All the tasks share a single call stack and
|
- **Highly efficient memory usage**: All the tasks share a single call stack and
|
||||||
there's no hard dependency on a dynamic memory allocator.
|
there's no hard dependency on a dynamic memory allocator.
|
||||||
|
|
||||||
- **All Cortex-M devices are fully supported**.
|
- **All Cortex-M devices are supported**. The core features of RTFM are
|
||||||
|
supported on all Cortex-M devices. The timer queue is currently only supported
|
||||||
|
on ARMv7-M devices.
|
||||||
|
|
||||||
- This task model is amenable to known WCET (Worst Case Execution Time) analysis
|
- This task model is amenable to known WCET (Worst Case Execution Time) analysis
|
||||||
and scheduling analysis techniques. (Though we haven't yet developed Rust
|
and scheduling analysis techniques. (Though we haven't yet developed Rust
|
||||||
|
|
|
@ -7,6 +7,6 @@
|
||||||
This book contains user level documentation for the Real Time For the Masses
|
This book contains user level documentation for the Real Time For the Masses
|
||||||
(RTFM) framework. The API reference can be found [here](../api/rtfm/index.html).
|
(RTFM) framework. The API reference can be found [here](../api/rtfm/index.html).
|
||||||
|
|
||||||
{{#include ../../README.md:5:53}}
|
{{#include ../../README.md:5:55}}
|
||||||
|
|
||||||
{{#include ../../README.md:59:}}
|
{{#include ../../README.md:61:}}
|
||||||
|
|
4
build.rs
4
build.rs
|
@ -3,6 +3,10 @@ use std::env;
|
||||||
fn main() {
|
fn main() {
|
||||||
let target = env::var("TARGET").unwrap();
|
let target = env::var("TARGET").unwrap();
|
||||||
|
|
||||||
|
if target.starts_with("thumbv6m") {
|
||||||
|
println!("cargo:rustc-cfg=armv6m")
|
||||||
|
}
|
||||||
|
|
||||||
if target.starts_with("thumbv7m") | target.starts_with("thumbv7em") {
|
if target.starts_with("thumbv7m") | target.starts_with("thumbv7em") {
|
||||||
println!("cargo:rustc-cfg=armv7m")
|
println!("cargo:rustc-cfg=armv7m")
|
||||||
}
|
}
|
||||||
|
|
26
ci/script.sh
26
ci/script.sh
|
@ -12,11 +12,17 @@ main() {
|
||||||
esac
|
esac
|
||||||
|
|
||||||
cargo check --target $T
|
cargo check --target $T
|
||||||
cargo check --features timer-queue --target $T
|
if [ $TARGET != thumbv6m-none-eabi ]; then
|
||||||
|
cargo check --features timer-queue --target $T
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $TRAVIS_RUST_VERSION = beta ]; then
|
if [ $TRAVIS_RUST_VERSION != nightly ]; then
|
||||||
rm -f .cargo/config
|
rm -f .cargo/config
|
||||||
cargo doc --features timer-queue
|
if [ $TARGET != thumbv6m-none-eabi ]; then
|
||||||
|
cargo doc --features timer-queue
|
||||||
|
else
|
||||||
|
cargo doc
|
||||||
|
fi
|
||||||
( cd book && mdbook build )
|
( cd book && mdbook build )
|
||||||
|
|
||||||
local td=$(mktemp -d)
|
local td=$(mktemp -d)
|
||||||
|
@ -33,7 +39,9 @@ main() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cargo check --target $T --examples
|
cargo check --target $T --examples
|
||||||
cargo check --features timer-queue --target $T --examples
|
if [ $TARGET != thumbv6m-none-eabi ]; then
|
||||||
|
cargo check --features timer-queue --target $T --examples
|
||||||
|
fi
|
||||||
|
|
||||||
# run-pass tests
|
# run-pass tests
|
||||||
case $T in
|
case $T in
|
||||||
|
@ -76,11 +84,13 @@ main() {
|
||||||
diff -u ci/expected/$ex.run -
|
diff -u ci/expected/$ex.run -
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cargo run --features timer-queue --example $ex --target $T | \
|
if [ $TARGET != thumbv6m-none-eabi ]; then
|
||||||
diff -u ci/expected/$ex.run -
|
cargo run --features timer-queue --example $ex --target $T | \
|
||||||
|
diff -u ci/expected/$ex.run -
|
||||||
|
|
||||||
cargo run --features timer-queue --example $ex --target $T --release | \
|
cargo run --features timer-queue --example $ex --target $T --release | \
|
||||||
diff -u ci/expected/$ex.run -
|
diff -u ci/expected/$ex.run -
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,11 @@ pub mod export;
|
||||||
#[cfg(feature = "timer-queue")]
|
#[cfg(feature = "timer-queue")]
|
||||||
mod tq;
|
mod tq;
|
||||||
|
|
||||||
|
#[cfg(all(feature = "timer-queue", armv6m))]
|
||||||
|
compile_error!(
|
||||||
|
"The `timer-queue` feature is currently not supported on ARMv6-M (`thumbv6m-none-eabi`)"
|
||||||
|
);
|
||||||
|
|
||||||
/// Core peripherals
|
/// Core peripherals
|
||||||
///
|
///
|
||||||
/// This is `cortex_m::Peripherals` minus the peripherals that the RTFM runtime uses
|
/// This is `cortex_m::Peripherals` minus the peripherals that the RTFM runtime uses
|
||||||
|
|
Loading…
Reference in a new issue