Jorge Aparicio
bad8851fee
add Resource.read
method for atomic reads of a resource's value
...
this method lets you directly read the value of a resource without paying for
synchronization overhead (no need for `Threshold.raise`). The catch is that
resource value must have a size of 4-bytes or smaller to guarantee that the read
operation is atomic -- atomic as in it can't be interrupted.
2017-05-20 12:59:37 -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
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
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
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
Jorge Aparicio
aee1d785a9
don't let the ceiling token escape the critical section
2017-04-19 14:15:18 -05:00
pln
70f573a6c4
with new formatting (perhaps)
2017-04-17 18:59:56 +02:00
pln
dad3a1f520
pub interface to logical2hw and hw2logical
2017-04-17 18:40:56 +02:00
Jorge Aparicio
a94de6bafc
wrap references to resources in static-ref's Ref/RefMut
...
to assert that they point to `static` data
2017-04-14 10:19:08 -05:00
Jorge Aparicio
3d88f6c6bf
re-export bkpt
2017-04-14 10:05:24 -05:00
Jorge Aparicio
be72ff5719
change signature of idle
to !
2017-04-14 00:39:12 -05:00
Jorge Aparicio
c6bf89a318
remove unnecessary trait bounds
2017-04-14 00:33:07 -05:00
Jorge Aparicio
bf17ee7422
pass P0 to init, derive GreaterThanOrEqual for U0
2017-04-14 00:15:49 -05:00
Jorge Aparicio
398a5ebc5c
add critical
, a global critical section
2017-04-13 23:52:02 -05:00
Jorge Aparicio
fdc060c273
remove system ceiling from lock_mut
closure
...
now it's impossible to do a `borrow` within that critical section as a borrow of
the task priority is required (and that's already mutably borrowed by the
`lock_mut` closure)
2017-04-13 23:00:39 -05:00
Jorge Aparicio
2fb00c7d85
fix memory safety hole around borrow
2017-04-13 22:58:29 -05:00
Jorge Aparicio
692ad81ad8
re-export Local and wfi from cortex-m
...
make Context private
2017-04-13 19:01:46 -05:00
Jorge Aparicio
1ed5696f76
fix warning
2017-04-12 16:26:42 -05:00
Jorge Aparicio
2d334e76dd
no lock_mut on thumbv6m
2017-04-12 16:14:29 -05:00
Jorge Aparicio
f62af15cfd
implement lock_mut
2017-04-12 15:27:48 -05:00
Jorge Aparicio
fb20b51528
add claim_mut
2017-04-12 10:43:36 -05:00
Jorge Aparicio
d9300f01f8
fix the tasks! macro
...
NVIC.set_priority now requires unsafe
2017-04-12 10:16:56 -05:00
Jorge Aparicio
5d6847ab7b
partial thumv6m-none-eabi support
2017-04-11 23:19:18 -05:00