Commit graph

902 commits

Author SHA1 Message Date
Jorge Aparicio
a2b0c9e0d0 resources owned by idle have 'static lifetime 2017-07-18 19:49:52 -05:00
Jorge Aparicio
5824f837e1 adapt to changes in rtfm-syntax 2017-07-18 16:49:59 -05:00
Jorge Aparicio
1f1cf84ab4 add cfail tests 2017-07-18 15:14:39 -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
Jorge Aparicio
8485a24d36 make the init::Resources argument optional 2017-07-09 16:30:04 -05:00
Jorge Aparicio
b7e43c1dbc make the tasks and resources fields optional 2017-07-08 21:56:39 -05:00
Jorge Aparicio
e18eb9610e fix unused variable warning around interrupt::free 2017-07-08 21:56:15 -05:00
Jorge Aparicio
17b252a8b6 rename rtfm-macros to cortex-m-rtfm-macros 2017-07-08 21:44:22 -05:00
Jorge Aparicio
3cebf49a2f syntax tweaks, relax check, add set_pending(), deal with imported types
- allow trailing commas in list of resources

- make task.resources optional

- add rtfm::set_pending function which can be used to force an interrupt into
  the pending state. This is a replacement of the old rtfm::request.
  rtfm::set_pending takes the Interrupt enum provided by the device crate as
  argument. (The old rtfm::request took a task function as argument)

- the user may want to use types they imported into the root of the crate. These
  types are not available in e.g. `mod idle` so `idle::Resources` *can't* be
  defined in that module. To workaround this problem `idle::Resources` will be
  defined in the root, with some other name, and then be re-exported in the
  `idle` module.

- remove the "a resource only used by one task should be local data" check. In
  some cases you do want a resource owned by a single task instead of local
  data since `init` can access resources but not a task local data.
2017-07-06 23:25:29 -05:00
Jorge Aparicio
4b0c3bff87 rtfm!: remove init.resources and make idle.local optional 2017-07-06 17:51:34 -05:00
Jorge Aparicio
86a360a396 rtfm! macro take 2 2017-07-04 11:26:11 -05:00
Jorge Aparicio
2bf5401439 v0.1.1 2017-06-05 21:05:29 -05:00
Jorge Aparicio
984171edf6 fix unused macro error 2017-06-05 20:57:17 -05:00
Jorge Aparicio
b1e54883ac make the register_block field optional in the peripherals! macro
with svd2rust 0.8.x peripheral types are written in UPPERCASE and match their
names so specifying the type in the register_block field is no longer necessary.
2017-05-25 16:39:26 -05:00
Jorge Aparicio
c1465b2117 fix links in the references section 2017-05-15 22:16:59 -05:00
Jorge Aparicio
5cecc12d4c v0.1.0 2017-05-09 09:04:35 -05:00
Jorge Aparicio
acdfa6f09d drop the Ceiling newtype
it's not required as the user never deal with Ceiling tokens
2017-05-08 13:27:29 -05:00
Jorge Aparicio
c1a0f8173a require Resource protected data to be Send, make tokens !Send 2017-05-08 13:25:20 -05:00
Jorge Aparicio
fc4cb7d472 replace the ceiling token with a preemption threshold token 2017-05-08 12:05:42 -05:00
Jorge Aparicio
2063697c62 update examples 2017-04-28 09:23:30 -05:00
Jorge Aparicio
e2bde8d21a make the ceiling part of the task signature
remove the P.as_ceiling method
2017-04-27 19:28:27 -05:00
Jorge Aparicio
ec2df608ca make as_ceiling a general method of P<N> 2017-04-27 18:34:21 -05:00
Jorge Aparicio
a3cc01df67 add crates.io badges 2017-04-27 16:27:07 -05:00
Jorge Aparicio
25f959d329 add categories 2017-04-27 15:37:27 -05:00
Jorge Aparicio
731dd54b5f tweak attribution 2017-04-26 13:01:16 -05:00
Jorge Aparicio
aa0347e36c fix cfail tests 2017-04-25 21:55:11 -05:00
Jorge Aparicio
404dde6f2a rename rtfm::critical to rtfm::atomic, touch up the documentation 2017-04-25 21:51:07 -05:00
Jorge Aparicio
840c32060b hide the unsafe Peripheral::new constructor
`peripherals!` is the safe way to declare `Peripheral`s
2017-04-25 19:46:33 -05:00
Jorge Aparicio
f9ada3f7f4 ignore no_mangle related warning 2017-04-25 17:42:34 -05:00
Jorge Aparicio
8659ecea72 add a peripherals! macro
for safe declaration of `Peripheral`s

closes #12
2017-04-25 14:13:46 -05:00
Jorge Aparicio
e72687a366 fix build for thumbv6m 2017-04-25 11:09:51 -05:00
Jorge Aparicio
59cff5815b update examples in doc comments 2017-04-25 10:24:17 -05:00
Jorge Aparicio
39c111a59a change tasks! syntax to resemble struct initialization 2017-04-25 09:29:29 -05:00
Jorge Aparicio
62356da0be update examples 2017-04-25 09:23:27 -05:00
Jorge Aparicio
3713959b3d update the examples in the crate documentation 2017-04-21 22:45:23 -05:00
Jorge Aparicio
d2008e783d add enable / disable functions, add $enabled parameter to tasks! 2017-04-21 22:02:49 -05:00
Jorge Aparicio
d0ddc322e3 rename borrow to access 2017-04-21 21:38:39 -05:00
Jorge Aparicio
296c88c49c add borrow_mut to Local 2017-04-21 21:25:10 -05:00
Jorge Aparicio
eea8030083 reword the comments in compile-fail tests 2017-04-21 21:24:28 -05:00
Jorge Aparicio
1c82f1b119 raise_to -> Ceiling.raise 2017-04-21 15:41:03 -05:00
Jorge Aparicio
3e165f2a42 drop lock methods, add raise_to function 2017-04-21 15:31:02 -05:00
Jorge Aparicio
854939fc6b rename "system ceiling" to "current ceiling" 2017-04-21 08:38:30 -05:00
Jorge Aparicio
4992db7877 more docs, remove Ceiling / Priority / Level traits 2017-04-21 00:24:54 -05:00
Jorge Aparicio
0a6583ddc6 fix warning on thumbv6m-none-eabi 2017-04-20 10:56:33 -05:00
Jorge Aparicio
4e6818eb2c remove claim, add Priority.as_ceiling 2017-04-19 17:21:13 -05:00
Jorge Aparicio
0827c40a26 remove the _mut methods
they are too limited
2017-04-19 16:35:07 -05:00
Jorge Aparicio
914e19d6a5 tasks! macro: update the signature of idle 2017-04-19 15:26:50 -05:00
Jorge Aparicio
aee3c2b29b critical: don't let the ceiling token escape the critical section 2017-04-19 15:03:49 -05:00