Commit graph

126 commits

Author SHA1 Message Date
Jorge Aparicio
45f9faae9c document #[app] 2019-08-21 12:19:38 +02:00
Jorge Aparicio
a87cb2486f change Monotonic::ratio return type to Fraction 2019-07-11 13:28:25 +02:00
Jorge Aparicio
596cf585ea Monotonic trait is safe; add MultiCore trait 2019-06-24 14:09:12 +02:00
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
fafc94ccfb removes the maybe_uninit feature gate
and stop newtyping `core::mem::MaybeUninit`
2019-05-21 14:18:43 +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
bors[bot]
6b61cd2e3f Merge #153
153: add "nightly" feature; replace hint::unreachable_unchecked with a panic r=korken89 a=japaric

this implements the action plan described in #149

to give you a sense of the overhead of this change: it has increased the binary
size of some of our examples by up to 10% but this is mainly from pulling in a
panic handler that does formatting

r? @korken89

Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-02-23 19:37:29 +00:00
Jorge Aparicio
3973b420ec add Duration.as_cycles 2019-02-19 17:14:34 +01:00
Jorge Aparicio
16821c8315 document the nightly feature 2019-02-19 13:13:16 +01:00
Jorge Aparicio
88078e7770 add "nightly" feature 2019-02-19 12:37:25 +01:00
Jorge Aparicio
1ba03b9f00 document MSRV and SemVer policy 2019-02-12 11:08:39 +01:00
Jorge Aparicio
0007a35a27 change layout of books 2019-02-11 21:40:53 +01:00
Jorge Aparicio
e7586f4a8a impl Default for Duration 2019-02-08 11:54:41 +01:00
Eddy Petrișor
8ac179d8ee Absolute link to the book so it works on crates.io
Signed-off-by: Eddy Petrișor <eddy.petrisor@gmail.com>
2019-01-09 01:56:21 +02:00
Jorge Aparicio
7de9687dfa note that entering / leaving a critical section is always constant time 2018-12-17 01:43:12 +01:00
Jorge Aparicio
06c1e2f9b4 note that the timer queue is not supported on ARMv6-M 2018-12-16 19:38:22 +01:00
Jorge Aparicio
d35f5bc0b0 use edition idioms in the top crate 2018-12-16 19:16:19 +01:00
Jorge Aparicio
37a0692a0f impl Mutex on all shared resources
document how to write generic code that operates on resources
2018-11-04 18:50:42 +01:00
Jorge Aparicio
c27efea6b7 fix some links 2018-11-03 19:29:44 +01:00
Jorge Aparicio
c631049efc v0.4.0
closes #32
closes #33
2018-11-03 17:16:55 +01:00
Jorge Aparicio
abca829926 more fixes 2018-08-24 16:31:04 +02:00
Jorge Aparicio
d8eb3eac75 fix documentation link 2018-01-15 23:58:04 +01:00
Jorge Aparicio
def4fc8079 v0.3.0 2018-01-15 23:33:09 +01:00
Jorge Aparicio
1be43fc489 adapt to changes in the cortex-m crate 2018-01-11 20:56:45 +01:00
Jorge Aparicio
c94bd2d98d add a Cargo feature, cm7-r0p1, to fix a Cortex-M7 BASEPRI erratum 2017-12-23 21:49:15 +01:00
Jorge Aparicio
219e172680 drop the Static wrapper 2017-12-09 17:15:15 +01:00
Jorge Aparicio
e97afa71ce peripherals as scoped singletons 2017-12-09 12:45:57 +01:00
Jonas Schievink
bbc873622d Hide UntaggedOption reexport 2017-09-22 13:45:28 +02:00
Jonas Schievink
57ed0963ff Use untagged_option crate 2017-09-06 19:06:43 +02:00
Jonas Schievink
7ebba49644 Allow initialization of resources in init. 2017-09-03 18:19:21 +02:00
Jorge Aparicio
a43c8a4d57 v0.2.1 2017-07-29 01:50:04 -05: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
d396da5950 make task.$T.enabled optional
and move the logic that differentiates interrupts from exceptions from the crate
to the procedural macro logic
2017-07-27 17:08:42 -05:00
Jorge Aparicio
ad2a523cf9 fix yet another warning on ARMv6-M 2017-07-27 15:15:19 -05:00
Jorge Aparicio
5e83dc295e fix warning on ARMv6-M 2017-07-27 14:59:31 -05:00
Jorge Aparicio
0b5afce771 refactor Resource / Threshold into its own crate, drop task!, tweak rtfm::atomic
task! can be re-added in a backward compatible fashion and I'd like to not have
two ways to assign a task handler to an interrupt / exception in the first
release.

rtfm::atomic now uses the `Threshold` token instead of the `CriticalSection`
token. This reduces overhead by dropping the "are interrupts enabled?" check.
2017-07-27 11:37:58 -05:00
Jorge Aparicio
6a2ff0aede inline claim
because it's needed for proper optimization / inlining
2017-07-25 22:30:41 -05:00
Jorge Aparicio
fb4542818b task! is not needed if tasks.$T.path is specified 2017-07-24 22:46:29 -05:00
Jorge Aparicio
74daa77fe0 document task! more 2017-07-23 22:35:05 -05:00
Jorge Aparicio
f3b397f460 drop rtfm::Cell 2017-07-23 20:51:37 -05:00
Jorge Aparicio
c64e7decfe doc tweaks 2017-07-20 23:14:41 -05:00
Jorge Aparicio
c7b9507a57 Resource trait, docs, examples and rtfm-syntax related changes 2017-07-20 22:53:44 -05:00
Jorge Aparicio
6577f4a91a bump cortex-m version to v0.3.1
barrier! is no longer needed
2017-07-20 16:13:02 -05:00
Jorge Aparicio
877a32448f make compatible with the unsafe_code lint 2017-07-18 20:17:09 -05:00
Jorge Aparicio
97a7e38db7 tasks / idle have exclusive access to Threshold, but do not own the token 2017-07-18 20:03:22 -05:00
Jorge Aparicio
e9788ff9b6 rename rtfm! to app! and adapt to changes in rtfm-syntax 2017-07-14 20:47:06 -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