diff --git a/CHANGELOG.md b/CHANGELOG.md index 889863ad2db859d712d926f03e5bcc2fb018c0ee..4a0d614d49dc35b97cd9d1c9ed21f01697e57843 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,33 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [v0.2.0] - 2017-07-29 + +### Added + +- The `app!` macro, a macro to declare the tasks and resources of an + application. + +- The `Resource` trait, which is used to write generic code that deals with + resources. + +### Changed + +- [breaking-change] The signature of the `atomic` function has changed. + +- [breaking-change] The threshold token has become a concrete type and lost its + `raise` method. + +### Removed + +- [breaking-change] The `tasks!` and `peripherals!` macros. + +- [breaking-change] The ceiling and priority tokens. + +- [breaking-change] The `Local`, `Resource` and `Peripheral` structs. + +- [breaking-change] The traits related to type level integers. + ## [v0.1.1] - 2017-06-05 ### Changed @@ -15,5 +42,6 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Initial release -[Unreleased]: https://github.com/japaric/cortex-m-rtfm/compare/v0.1.1...HEAD +[Unreleased]: https://github.com/japaric/cortex-m-rtfm/compare/v0.2.0...HEAD +[v0.2.0]: https://github.com/japaric/cortex-m-rtfm/compare/v0.1.1...v0.2.0 [v0.1.1]: https://github.com/japaric/cortex-m-rtfm/compare/v0.1.0...v0.1.1 diff --git a/Cargo.toml b/Cargo.toml index f7fe92abfc154f9ac0f273a2a6692bdd0aa6081b..f2a63e5df025cd9b882570401028b95040fc1063 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,12 +14,10 @@ version = "0.2.0" [dependencies] cortex-m = "0.3.1" +cortex-m-rtfm-macros = "=0.2.0" rtfm-core = "0.1.0" static-ref = "0.2.1" -[dependencies.cortex-m-rtfm-macros] -path = "macros" - [target.'cfg(target_arch = "x86_64")'.dev-dependencies] compiletest_rs = "0.2.8" diff --git a/macros/Cargo.toml b/macros/Cargo.toml index a62d20892bd75e396b6ace60e3aa7ba0c344d960..eda10c57ddf223afd6e454316a10613fe8a6613f 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -1,7 +1,13 @@ [package] authors = ["Jorge Aparicio <jorge@japaric.io>"] +categories = ["concurrency", "embedded", "no-std"] +description = "Procedural macros of the cortex-m-rtfm crate" +documentation = "https://docs.rs/cortex-m-rtfm-macros" +keywords = ["arm", "cortex-m"] +license = "MIT OR Apache-2.0" name = "cortex-m-rtfm-macros" -version = "0.1.0" +repository = "https://github.com/japaric/cortex-m-rtfm" +version = "0.2.0" [dependencies] error-chain = "0.10.0" diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 2a1f72e418fc9b39ff5806ea5d38bc266d36bf4d..bef5dcc1255de8ef47da1ce4736041b691f054bb 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -1,4 +1,4 @@ -//! Procedural macros for the RTFM framework +//! Procedural macros of the `cortex-m-rtfm` crate #![deny(warnings)] #![feature(proc_macro)] #![recursion_limit = "128"] diff --git a/src/lib.rs b/src/lib.rs index 6188ed317497e70ab58e215ef18b42a9792d11ad..30a490212d5efa02e3ff0dc02c8677ff3679b68d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -30,7 +30,7 @@ //! # Constraints //! //! - Tasks must run to completion. That's it, tasks can't contain endless -//! loops. However, you can run an endless event loop in the `idle` function. +//! loops. However, you can run an endless event loop in the `idle` *loop*. //! //! - Task priorities must remain constant at runtime. //! @@ -44,7 +44,7 @@ //! [`svd2rust`]: https://docs.rs/svd2rust/0..0/svd2rust/ //! [`<cpu>`]: https://www.keil.com/pack/doc/CMSIS/SVD/html/elem_cpu.html //! -//! # More documentation +//! # `app!` //! //! The `app!` macro is documented [here](../cortex_m_rtfm_macros/fn.app.html). //! @@ -52,6 +52,24 @@ //! //! In increasing grade of complexity. See the [examples](./examples/index.html) //! module. +//! +//! # References +//! +//! - Baker, T. P. (1991). Stack-based scheduling of realtime processes. +//! *Real-Time Systems*, 3(1), 67-99. +//! +//! > The original Stack Resource Policy paper. [PDF][srp]. +//! +//! [srp]: http://www.cs.fsu.edu/~baker/papers/mstacks3.pdf +//! +//! - Eriksson, J., Häggström, F., Aittamaa, S., Kruglyak, A., & Lindgren, P. +//! (2013, June). Real-time for the masses, step 1: Programming API and static +//! priority SRP kernel primitives. In Industrial Embedded Systems (SIES), +//! 2013 8th IEEE International Symposium on (pp. 110-113). IEEE. +//! +//! > A description of the RTFM task and resource model. [PDF][rtfm] +//! +//! [rtfm]: http://www.diva-portal.org/smash/get/diva2:1005680/FULLTEXT01.pdf #![deny(missing_docs)] #![deny(warnings)] #![feature(proc_macro)]