Commit graph

321 commits

Author SHA1 Message Date
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
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
4d8d53a206 add another would-be data race compile fail test 2017-04-14 10:18:50 -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
46baa7ea70 regression test 2017-04-13 23:31:11 -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
cc6c1ad3f3 add cfail tests for the tasks! macro 2017-04-12 16:05:48 -05:00
Jorge Aparicio
26f8ca6969 rustfmt 2017-04-12 15:28:18 -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
67881bc7f5 ci: allow auto and try branches 2017-04-11 23:24:39 -05:00
Jorge Aparicio
5d6847ab7b partial thumv6m-none-eabi support 2017-04-11 23:19:18 -05:00
Jorge Aparicio
6af1873922 add CI 2017-04-11 23:19:14 -05:00
Jorge Aparicio
5ae7d5f6e0 simplify the tasks! macro, make the request function more straightforward
in its meaning
2017-04-09 23:18:00 -05:00
Jorge Aparicio
595404c5ff compile time verified ceilings 2017-04-09 22:42:17 -05:00
Jorge Aparicio
6ac2625a75 drop global critical sections in checked::Resource 2017-04-07 19:33:08 -05:00
Jorge Aparicio
185f368d63 use volatile read/writes for checked::Resource.locked 2017-04-07 18:57:13 -05:00
Jorge Aparicio
22bb0d8eae removed global critical section from checked::release 2017-04-07 18:48:33 -05:00
Jorge Aparicio
f875cfcb5c use hw ceilings in checked::Resource.lock{,mut} 2017-04-07 18:18:37 -05:00
Jorge Aparicio
f2bab47aa4 allow returns from checked::Resource.lock{,mut}
also add compiler barriers
2017-04-07 18:14:48 -05:00