Commit graph

64 commits

Author SHA1 Message Date
Jorge Aparicio
09c2e99989 split [Node] into [Payload] and [Baseline] 2018-05-07 22:05:19 +02:00
Jorge Aparicio
0c7a0116a7 more fixes 2018-05-07 17:46:26 +02:00
Jorge Aparicio
cfcf25ef53 simplify timer queue dispatch 2018-05-05 10:08:17 +02:00
Jorge Aparicio
0cc456ba80 reduce memory overhead
by storing indices (u8) in the queues instead of pointers (*mut u8)

in the binary heap we store the baseline inline along with the index and the task name. Before we
stored a pointer to the message and had to lookup the baseline when comparing two nodes in the heap.
2018-05-04 10:59:23 +02:00
Jorge Aparicio
1b735d8fdd don't split the slot queue in 2018-05-03 05:47:32 +02:00
Jorge Aparicio
20c5e277f7 add example of using async from an interrupt triggered task 2018-05-01 15:55:11 +02:00
Jorge Aparicio
9058a655dc put async_after behind a Cargo feature 2018-05-01 15:29:13 +02:00
Jorge Aparicio
e34abea704 update the cfail tests 2018-05-01 14:46:17 +02:00
Jorge Aparicio
205aa44ed5 make compatible with #[deny(unsafe_code, warnings)] 2018-05-01 12:05:53 +02:00
Jorge Aparicio
8723c6d45b WIP 2018-04-29 08:45:31 +02: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
1be43fc489 adapt to changes in the cortex-m crate 2018-01-11 20:56:45 +01:00
Jorge Aparicio
88f505369c switch to master branches 2017-12-23 11:17:03 +01:00
Jorge Aparicio
b00f4fec14 add missing comma 2017-12-17 10:00:56 +01:00
Jorge Aparicio
d30bdcb096 safe &'static mut references via init.resources 2017-12-09 17:17:56 +01:00
Jorge Aparicio
a6dd004113 implement the Resource trait for owned resources
this unbreaks the "generics" example
2017-12-09 17:17:56 +01:00
Jorge Aparicio
219e172680 drop the Static wrapper 2017-12-09 17:15:15 +01:00
Jorge Aparicio
62c5c1ae43 make resource proxies not Sync 2017-12-09 16:13:22 +01:00
Jorge Aparicio
9865a7246d make resource proxies !Send 2017-12-09 15:10:29 +01:00
Jorge Aparicio
79e2b7dc2e rename LateResourceValues to LateResources 2017-12-09 13:20:41 +01:00
Jorge Aparicio
1830bdbe5c remove special case around peripherals from codegen 2017-12-09 13:08:08 +01:00
Jorge Aparicio
e97afa71ce peripherals as scoped singletons 2017-12-09 12:45:57 +01:00
Jorge Aparicio
948e1fd0fb v0.2.2 2017-11-22 09:29:01 +01:00
Jorge Aparicio
2415a640af fix idle::Resources::new
it assumed that all resources were "early" resources
2017-10-02 14:49:40 +02:00
Jonas Schievink
b50c9095c0 Use rtfm-syntax 0.2.0 2017-09-22 20:11:39 +02:00
Jonas Schievink
1556948458 Fix shared resource handling and extend example.
The extended example tests that this actually works this time.
2017-09-22 18:19:18 +02:00
Jonas Schievink
70e243694d Simplify iterator usage 2017-09-22 18:10:00 +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
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
271df39bdb Send-ness check is now in rtfm-core 2017-07-27 21:30:24 -05:00
Jorge Aparicio
b9f50e432e make task.$T.path mandatory 2017-07-27 19:39:18 -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
dd539d114f don't generate empty modules 2017-07-27 12:29:52 -05:00
Jorge Aparicio
b37c45ad2a make task.$T.priority optional
default the value to 1 if omitted
2017-07-27 12:11:22 -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
dee2fcde71 provide a Threshold token even when all resources are lockless
because the token will always be required for calling generic functions
2017-07-26 19:30:47 -05:00
Jorge Aparicio
4a1509cb53 fix around owned idle resource 2017-07-26 17:01:53 -05:00
Jorge Aparicio
8aa3621034 fix errors around the use of super in relative paths 2017-07-25 22:27:57 -05:00
Jorge Aparicio
0e05682d09 more "hygiene"
prepend an underscore to the name of the statics generated in the root of the
crate
2017-07-24 23:07:11 -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
f5a4d8e904 don't wrap static references in a Static 2017-07-23 20:59:35 -05:00
Jorge Aparicio
f3b397f460 drop rtfm::Cell 2017-07-23 20:51:37 -05:00
Jorge Aparicio
03f373fb24 drop idle.locals 2017-07-23 20:03:59 -05:00
Jorge Aparicio
bf4eabf287 misc fixes 2017-07-20 23:47:14 -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