Commit graph

189 commits

Author SHA1 Message Date
Henrik Tjäder
9764121cc1 Upgrade of semihosting changed timing
New semihosting 0.5 does not use error handling,
returns directly and as semihosting is generally slow
this led to missing print statements.

Workaround is to add NOP, which seems sufficient
to let it flush the buffers
2023-01-14 11:24:51 +01:00
Henrik Tjäder
050313d62d Missed hprintln with multiline 2023-01-11 22:16:56 +01:00
Henrik Tjäder
c370c0b21f Remove ok() from hprintln!()
sd 'hprintln(.*).ok\(\)' 'hprintln' (fd -e rs .)
2023-01-11 21:40:33 +01:00
Henrik Tjäder
1fe587c516 Remove unwrap() from hprintln!()
sd 'hprintln(.*).unwrap\(\)' 'hprintln' (fd -e rs .)
2023-01-11 21:33:44 +01:00
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