Commit graph

32 commits

Author SHA1 Message Date
Jorge Aparicio
9897728709 add homogeneous multi-core support 2019-06-18 10:31:31 +02:00
Jorge Aparicio
81275bfa4f rtfm-syntax refactor + heterogeneous multi-core support 2019-06-13 23:56:59 +02:00
Jorge Aparicio
30d6327001 bump heapless dependency to v0.5.0; remove "nightly" feature
with the upcoming version of heapless we are able to initialize all internal
queues in const context removing the need for late initialization

this commit also removes the "nightly" feature because all the optimization
provided by it are now enabled by default
2019-05-21 15:22:25 +02:00
Jorge Aparicio
a452700628 implement RFCs 147 and 155, etc.
This commit:

- Implements RFC 147: "all functions must be safe"

- Implements RFC 155: "explicit Context parameter"

- Implements the pending breaking change #141: reject assign syntax in `init`
  (which was used to initialize late resources)

- Refactors code generation to make it more readable -- there are no more random
  identifiers in the output -- and align it with the book description of RTFM
  internals.

- Makes the framework hard depend on `core::mem::MaybeUninit` and thus will
  require nightly until that API is stabilized.

- Fixes a ceiling analysis bug where the priority of the system timer was not
  considered in the analysis.

- Shrinks the size of all the internal queues by turning `AtomicUsize` indices
  into `AtomicU8`s.

- Removes the integration with `owned_singleton`.
2019-05-01 20:49:25 +02:00
Jorge Aparicio
a562fb3232 v0.4.3 2019-04-21 18:20:57 +02:00
Jorge Aparicio
3310f507c0 v0.4.2 2019-02-27 00:56:56 +01:00
Jorge Aparicio
88078e7770 add "nightly" feature 2019-02-19 12:37:25 +01:00
Jorge Aparicio
aadd00c068 bump macros version 2019-02-12 17:29:50 +01:00
Jorge Aparicio
d98f6c9a61 v0.4.0 2018-12-16 21:19:19 +01:00
Jorge Aparicio
56d09a12dd move macros crate to the 2018 edition 2018-12-16 19:14:58 +01:00
Jorge Aparicio
4345c10596 properly handle #[cfg] (conditional compilation) on resources 2018-12-16 18:37:36 +01:00
Jorge Aparicio
35bb76ef5f codegen: stop using export_name
`export_name` creates external symbols that won't be removed when using `-Z
emit-stack-sizes`
2018-12-02 17:43:36 +01:00
Jorge Aparicio
9d0227bfeb 0.4.0-beta.2 2018-11-04 20:12:31 +01:00
Jorge Aparicio
3a867e70c3 update macros/Cargo.toml 2018-11-03 17:24:45 +01:00
Jorge Aparicio
c631049efc v0.4.0
closes #32
closes #33
2018-11-03 17:16:55 +01:00
Jorge Aparicio
2ec5d59ee9 v0.3.3 2018-08-24 16:49:03 +02:00
Ferdia McKeogh
5a3605050e Fix mistakes in dependencies 2018-06-07 11:50:14 +01:00
Ferdia McKeogh
14b1811182 Fix "Could not find Op in proc_macro" 2018-06-07 11:45:11 +01:00
Jorge Aparicio
8767f625d8 switch to a crates.io release of rtfm-syntax 2018-04-16 23:22:01 +02:00
Jorge Aparicio
7fdf16eab9 update parser
closes #69

this doesn't change functionality per se but improves diagnostics in some cases. Some hard errors
have becomes warnings, for example: when `resources` is empty, or when `idle.path` is set to the
default `idle` path.
2018-04-16 21:32:29 +02:00
Jorge Aparicio
def4fc8079 v0.3.0 2018-01-15 23:33:09 +01:00
Jorge Aparicio
88f505369c switch to master branches 2017-12-23 11:17:03 +01:00
Jorge Aparicio
d30bdcb096 safe &'static mut references via init.resources 2017-12-09 17:17:56 +01:00
Jorge Aparicio
948e1fd0fb v0.2.2 2017-11-22 09:29:01 +01:00
Jonas Schievink
b50c9095c0 Use rtfm-syntax 0.2.0 2017-09-22 20:11:39 +02:00
Jonas Schievink
7ebba49644 Allow initialization of resources in init. 2017-09-03 18:19:21 +02:00
Jorge Aparicio
6160548153 v0.2.0 2017-07-29 01:17:54 -05:00
Jorge Aparicio
2d80f3631b update examples 2017-07-29 00:46:38 -05:00
Jorge Aparicio
98596554b3 split macro parser into its own crate and improve error handling / reporting 2017-07-14 18:57:02 -05:00
Jorge Aparicio
59afbf02aa compiler plugin -> proc macro 2017-07-11 23:44:54 -05:00
Jorge Aparicio
17b252a8b6 rename rtfm-macros to cortex-m-rtfm-macros 2017-07-08 21:44:22 -05:00
Jorge Aparicio
86a360a396 rtfm! macro take 2 2017-07-04 11:26:11 -05:00