diff options
| author | Jorge Aparicio <jorge@japaric.io> | 2017-04-21 21:38:39 -0500 |
|---|---|---|
| committer | Jorge Aparicio <jorge@japaric.io> | 2017-04-21 21:38:39 -0500 |
| commit | d0ddc322e378e498743121121c8849260d2f1726 (patch) | |
| tree | 489b8857b60f3b8808c87816c96fde0b0592ca51 /tests/cfail/access.rs | |
| parent | 296c88c49cbe72aea9d3726147a9436902b3446b (diff) | |
rename `borrow` to `access`
Diffstat (limited to 'tests/cfail/access.rs')
| -rw-r--r-- | tests/cfail/access.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/cfail/access.rs b/tests/cfail/access.rs new file mode 100644 index 0000000..db77602 --- /dev/null +++ b/tests/cfail/access.rs @@ -0,0 +1,37 @@ +extern crate cortex_m_rtfm as rtfm; + +use rtfm::{C1, C2, C3, C4, C5, P2, Resource}; + +static R1: Resource<i32, C4> = Resource::new(0); +static R2: Resource<i32, C3> = Resource::new(0); +static R3: Resource<i32, C4> = Resource::new(0); +static R4: Resource<i32, C5> = Resource::new(0); +static R5: Resource<i32, C1> = Resource::new(0); +static R6: Resource<i32, C2> = Resource::new(0); + +fn j1(prio: P2) { + let ceil = prio.as_ceiling(); + + ceil.raise( + &R1, |ceil| { + // NOTE SC = System Ceiling, P = task Priority + + // CAN access a resource with ceiling RC when SC > RC + let r2 = R2.access(&prio, ceil); + + // CAN access a resource with ceiling RC when SC == RC + let r3 = R3.access(&prio, ceil); + + // CAN'T access a resource with ceiling RC when SC < RC + let r4 = R4.access(&prio, ceil); + //~^ error + + // CAN'T access a resource with ceiling RC when RC < P + let r5 = R5.access(&prio, ceil); + //~^ error + + // CAN access a resource with ceiling RC when RC == P + let r6 = R6.access(&prio, ceil); + } + ); +} |
