Commit graph

185 commits

Author SHA1 Message Date
Emil Fresk
b711c036ab Fix new lint in the compiler 2022-09-28 20:42:16 +02:00
Per Lindgren
f86dab5ff3 Added support for SRP based scheduling for armv6m 2022-03-02 13:23:47 +01:00
Jakub Młynarczyk
20f1c396d5
Fix the locals.rs comment
I believe that is a typo s/shared/local_to_bar
2022-01-08 16:36:59 +11:00
Per Lindgren
305e8295d5 Drift free timing examples 2022-01-04 22:21:57 +01:00
Emil Fresk
7bec234766 Improved docs on where the 12 MHz comes from in SysTick 2021-12-26 11:42:14 +01:00
Henrik Tjäder
8c8f7f12c3 Idle: Switch to NOP instead of WFI
Add example how to get old WFI behaviour
2021-12-14 22:18:17 +01:00
Emil Fresk
0dcb0c4e49 New monotonic trait working 2021-11-09 10:20:43 +01:00
Emil Fresk
9e24fcbbd9 Fix CI 2021-11-03 08:54:18 +01:00
Per Lindgren
56a423cdbe remove outdated comment 2021-10-13 10:37:52 +02:00
Emil Fresk
b71df58f2f The great docs update 2021-09-23 16:11:04 +02:00
Jorge Aparicio
5805a05fac book/resources: rm #[task_local] mention; add #[lock_free] example
the #[task_local] attribute was removed
2021-07-22 09:17:39 +02:00
Jorge Aparicio
ae1f9008a4 comment out line that doesn't compile 2021-07-22 08:28:11 +02:00
Jorge Aparicio
cd4e8183f6 book/resources: remove mentions of the field attribute #[init(<expr>)]
it no longer exists. all resources are now late resources
2021-07-21 15:59:08 +02:00
Jorge Aparicio
6bf1c76d84 book/resources: do not use the lock API in the very first example
instead stick to `#[local]` resources
2021-07-21 15:55:14 +02:00
Jorge Aparicio
18880406cb use tuple struct syntax for Monotonics everywhere 2021-07-21 10:14:00 +02:00
Andrey Zgarbul
bf80035aef rustfmt 2021-07-20 11:44:03 +03:00
mriise
5e92715d8c fix pool example 2021-07-20 01:17:11 -07:00
Andrey Zgarbul
e4319de3d5 const generics 2021-07-09 18:44:19 +03:00
Emil Fresk
8f37043782 Cleanup from review (needs releases to compile) 2021-07-08 23:18:44 +02:00
Emil Fresk
98d2af9d73 Fixing tests 2021-07-07 23:07:09 +02:00
Emil Fresk
6155f1366a Minor cleanup 2021-05-23 14:11:51 +02:00
Emil Fresk
b4509bdbfe Flattened the _ out of it 2021-05-06 19:40:37 +02:00
Emil Fresk
6fc7b96474 use super::xx now works with monotonics 2021-04-22 17:39:07 +02:00
Emil Fresk
fbcf2aabb0 Fix for default monotonic, monotonics::now() now properly works 2021-04-20 10:34:26 +02:00
Emil Fresk
51500a1d70 Fixed UB in spawn_at 2021-04-08 10:14:14 +02:00
Emil Fresk
2068eae928 Type aliases now work in the app module 2021-04-08 09:15:38 +02:00
Emil Fresk
ae691952c3 Updated dwt-systick-monotonic 2021-04-07 11:09:21 +02:00
Emil Fresk
3adda3c766 Updated schedule example with all combinations 2021-03-22 08:24:18 +01:00
Emil Fresk
1087f2ee64 Added interface for cancel/reschedule
Use wrapping add for marker

No need to store handle to queue

Remove unnecessary `SpawnHandle::new`

Fix test

Updated interface to follow proposal
2021-03-13 10:50:56 +01:00
Henrik Tjäder
612efaf0c4 Use panic_semihosting for all examples 2021-03-03 08:53:03 +01:00
Emil Fresk
cd3484cbab GHA update
Fmt fixes

Spawn_after did not work with parameters

Examples working again

Revert "GHA update"

This reverts commit e0a71d4859966a6c5cf2629d3cb27e88acada9c0.

Readd flags

Only add DWT based dep with __v7 flag
2021-02-23 21:03:51 +01:00
Emil Fresk
555f36857e Test fixes 2021-02-20 19:22:45 +01:00
Emil Fresk
6277183906 Now handling SysTick as well 2020-12-13 14:52:16 +01:00
Emil Fresk
1c8de78f6f Cleanup 2020-12-12 23:35:47 +01:00
Emil Fresk
97a48983d2 More work 2020-12-10 20:33:13 +01:00
Emil Fresk
b23bb1192c TQ handlers being generated 2020-12-08 20:49:13 +01:00
Emil Fresk
ef50aeb2e8 Save, init generation fixed 2020-12-03 21:04:06 +01:00
Henrik Tjäder
f957f05b66 Move entry-point main into a separate module
Prevents conflict with user provided tasks named main
2020-11-15 17:28:19 +00:00
Emil Fresk
f111c825ba Added multilock to CI 2020-11-14 17:06:03 +01:00
Emil Fresk
243668df54 Multilock support 2020-11-14 16:02:36 +01:00
Per Lindgren
0cb7cb0ba8 resources 2020-11-12 18:55:11 +01:00
Per Lindgren
96cd625223 extern task 2020-10-29 19:29:46 +01:00
bors[bot]
4f4c95be40
Merge #400
400: codegen and examples r=AfoHT a=perlindgren

just a test

Co-authored-by: Per Lindgren <per.lindgren@ltu.se>
2020-10-23 22:03:08 +00:00
Per Lindgren
1c244a995d move dispatchers to app argument 2020-10-23 23:58:09 +02:00
Emil Fresk
e8eca4be37 Now all locks are symmetric
Test fixes

Fix test

Fix comment
2020-10-23 08:38:18 +02:00
Henrik Tjäder
86699039e9 Add the cfgs on a task to the module for that task 2020-10-22 17:04:34 +00:00
Emil Fresk
17e976ab49 Fix UI tests
Fix
2020-10-22 17:45:06 +02:00
Emil Fresk
f076b33bb9 Namespace cleanup 2020-10-21 20:25:13 +02:00
Emil Fresk
f96b25fdf2 Updated examples
More work
2020-10-21 20:25:05 +02:00
Emil Fresk
6808cc7cdf Merge branch 'master' into spawn_experiment 2020-10-15 18:27:48 +02:00
Emil Fresk
b5779d834e Fix comments in examples 2020-10-15 18:06:03 +02:00
bors[bot]
1cda9eaecc
Merge #371
371: task_local and lock_free r=korken89 a=AfoHT

Getting this going to test with GHA

For further discussion see https://github.com/rtic-rs/rfcs/issues/30

Co-authored-by: Per <Per Lindgren>
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-10-15 16:01:07 +00:00
Henrik Tjäder
e2364aae3e Updated examples and rtic-name 2020-10-15 15:56:20 +00:00
Henrik Tjäder
b29a0c1348 Add example with features on all resources combined with lock_free and task_local 2020-10-15 15:56:20 +00:00
Per
6eafcf10e9 task_local and lock_free analysis (take 1) 2020-10-15 15:56:20 +00:00
Emil Fresk
5ac16f6aae Merge branch 'master' into spawn_experiment 2020-10-15 17:55:00 +02:00
Emil Fresk
5b8e6a22ab Fixing examples and tests, modules now import user imports correctly
Fmt

Correct syntax crate

UI test fix

Fix build script

Cleanup

More cleanup
2020-10-11 20:35:50 +02:00
Emil Fresk
524273c96a Now with spawn/schedule from anywhere 2020-10-11 18:38:38 +02:00
Emil Fresk
c83b15b643 Merge branch 'master' into spawn_experiment 2020-10-08 17:33:42 +02:00
Emil Fresk
6d003e20a8 Now core contains the same Peripherals type based on monotonic 2020-10-07 15:17:00 +02:00
Per Lindgren
0bc2168cd6 spawn examples updated 2020-10-05 22:30:38 +02:00
Per Lindgren
6bd168d711 spawn POC works, likely unsound 2020-10-05 21:57:44 +02:00
Emil Fresk
eec0908024 Merge branch 'master' into always_late_resources 2020-10-05 18:25:15 +02:00
bors[bot]
dbf9a7f298
Merge #368
368: Mod over const r=korken89 a=AfoHT

Related [RFC](https://github.com/rtic-rs/rfcs/pull/34)

Dependent on [rtic-syntax-PR30](https://github.com/rtic-rs/rtic-syntax/pull/30)

~~Currently using my own dev-branch~~

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-10-05 08:40:19 +00:00
Emil Fresk
f0f982faca Updated documentation to include the critical section token in init 2020-10-03 15:30:15 +02:00
Emil Fresk
e7f0d9c3e3 Now late resources are always used 2020-10-01 19:38:49 +02:00
Henrik Tjäder
fa4dcdd6e1 Annotate the resource struct 2020-09-29 11:56:56 +00:00
Henrik Tjäder
19b35d7aad Pool example need to import things into the mod 2020-09-29 11:56:56 +00:00
Henrik Tjäder
4b40ff00b6 Workaround lint for now 2020-09-29 11:56:56 +00:00
Henrik Tjäder
487fea45ce Keep user code as-is within the module, add example 2020-09-29 11:56:56 +00:00
Henrik Tjäder
96df0a33b1 All examples use #[resources] attribute 2020-09-29 11:33:41 +00:00
Henrik Tjäder
abc50d2c58 Name collision with RTIC-main
With modules the scoping is different and task names collide with main generated by RTIC
2020-09-25 14:33:08 +00:00
Henrik Tjäder
224e1991e0 Update new example to use mod {} 2020-09-25 14:33:08 +00:00
Henrik Tjäder
dcc31fb884 Examples need to import the resources 2020-09-25 14:29:34 +00:00
Henrik Tjäder
5cfd9b9238 Modules using lower-case in examples 2020-09-25 14:29:34 +00:00
Henrik Tjäder
8df2ec11b0 Examples using mod instead of const 2020-09-25 14:29:34 +00:00
Emil Fresk
7ff35bd041 Fixed example and v7 flag 2020-09-25 14:52:09 +02:00
Emil Fresk
72ba18b0e8 Regression in master on double schedule 2020-09-24 20:56:49 +02:00
Emil Fresk
413f525c93 Fixed so examples do not crash in release mode 2020-09-14 09:35:10 +02:00
bors[bot]
bfb498e722
Merge #337
337: Examples: Clarify extern section r=korken89 a=dbrgn

Some beginners are confused about the "extern" section, so I added an explanation comment to all examples.

![image](https://user-images.githubusercontent.com/105168/85903840-9ad2a780-b807-11ea-943d-3f37b814c23f.png)

Furthermore, using the UARTx interrupts when UART is actually being used in the same example may be confusing, so I changed them all to SSI0/QEI0.

Co-authored-by: Danilo Bargen <mail@dbrgn.ch>
2020-06-30 20:16:46 +00:00
Emil Fresk
d9e8b68662 Fixes an issue where one could double take the cortex_m Peripheral
Added qemu test

Added comment

Typo

Add cfg for homogeneous

More cfg

Now multicore working

Add .run file
2020-06-30 22:06:57 +02:00
Danilo Bargen
8e636f0d12 Examples: Clarify extern section
Some beginners are confused about the "extern" section, so I added an
explanation comment to all examples. Furthermore, using the UARTx
interrupts when UART is actually being used in the same example may be
confusing, so I changed them all to SSI0/QEI0.
2020-06-26 23:53:11 +02:00
Henrik Tjäder
602a5b4374 Rename RTFM to RTIC 2020-06-11 17:18:29 +00:00
Emil Fresk
eb6406da7e Fmt 2020-06-11 19:00:52 +02:00
Emil Fresk
ac0e687431
Merge pull request #313 from russell/patch-1
Update example to use better initial value
2020-06-11 18:45:51 +02:00
bors[bot]
4795c1dba3
Merge #315
315: allow handlers to be named 'main' r=korken89 a=japaric

`#[init]`, `#[idle]` and `#[task]` handlers can now be named `main`

fixes #311

Co-authored-by: Jorge Aparicio <jorge.aparicio@ferrous-systems.com>
2020-06-11 16:22:33 +00:00
Henrik Tjäder
5f61f7b75f Use cargo feature instead of conditional compilation hacks 2020-06-10 13:31:48 +00:00
Henrik Tjäder
137283959c Run cargo fmt 2020-06-03 10:34:01 +00:00
Jorge Aparicio
0ad311074e allow handlers to be named 'main'
`#[init]`, `#[idle]` and `#[task]` handlers can now be named `main`

fixes #311
2020-05-29 14:50:28 +02:00
Russell Sim
7266ffe3a6
Update example to use better initial value
The example above this in the documentation states

```
        // semantically, the monotonic timer is frozen at time "zero" during `init`
        // NOTE do *not* call `Instant::now` in this context; it will return a nonsense value
        let now = cx.start; // the start time of the system
```

It results in weird scheduling issues, but still eventually works.  `cx.start` is much more reliable.

Relates to https://github.com/rtfm-rs/cortex-m-rtfm/issues/196
2020-05-26 07:33:18 +02:00
Henrik Tjäder
f58f37b2b9 Retain cfg-attributes on resources 2020-04-22 09:26:13 +00:00
bors[bot]
60c14ef680
Merge #294
294: use the safe DWT::unlock API r=korken89 a=japaric

instead of a unsafe write_volatile call

Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2020-01-24 15:45:14 +00:00
Jorge Aparicio
b04103f6df docs: do not use Instant::now in #[init] 2020-01-21 22:23:20 +01:00
Jorge Aparicio
60639b3a9c use the safe DWT::unlock API
instead of a unsafe write_volatile call
2020-01-21 22:13:23 +01:00
Emil Fresk
76e234599f Added struct de-structure-ing example in tips & tricks 2019-11-07 14:12:16 +01:00
Jorge Aparicio
eef4e7bf79 more monotonic timer docs
covers

- initialization and configuration of the timer; this is now a responsibility of
  the application author
- correctness of `Monotonic::now()` in `#[init]`
- safety of `Monotonic::reset()`

closes #251
2019-10-15 18:44:49 -05:00
Jorge Aparicio
7ca5bbf404 fix preempt example 2019-08-21 10:53:13 +02:00
Jorge Aparicio
07b2b4d830 doc up 2019-08-21 10:17:27 +02:00
Jorge Aparicio
9195038c87 implement RFC #212 2019-07-10 22:42:44 +02:00
Jorge Aparicio
4e51bb68b9 RFC #207 2019-06-20 06:19:59 +02:00