Commit graph

248 commits

Author SHA1 Message Date
Per Lindgren
2b70b1faf3 wip Priority leakage 2022-02-05 01:10:29 +01:00
Per Lindgren
d6cffba14d destruction problem 2022-02-05 01:10:28 +01:00
Per Lindgren
f9d05fdad0 api test, all implemented, TODO hide priority? 2022-02-05 01:10:28 +01:00
Per Lindgren
8917252dc5 api test (all but lock automated) 2022-02-05 01:10:27 +01:00
Per Lindgren
1459adadeb api test (priority automated) 2022-02-04 21:30:55 +01:00
Per Lindgren
53ace542c1 api test (mostly hard coded) 2022-02-04 21:30:55 +01:00
Henrik Tjäder
c297b4ee8d Clippy lints 2021-12-25 13:17:16 +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
Henrik Tjäder
3741d431be Remove #[deny(warnings)], but deny warnings for CI 2021-11-25 10:46:29 +01:00
Henrik Tjäder
2e5c6f8e36 Docs: add RTIC logo 2021-11-25 10:06:58 +01:00
Emil Fresk
6f2aa08910 Better errors on when missing to lock shared resources 2021-11-11 14:22:47 +01:00
bors[bot]
b4929032d5
Merge #547
547: New monotonic trait r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2021-11-09 10:15:11 +00:00
bors[bot]
4f3c5baf49
Merge #549
549: fix #543 r=korken89 a=andrewgazelka

The remaining PR to fix #543 alongside https://github.com/rtic-rs/rtic-syntax/pull/58

Co-authored-by: Andrew Gazelka <andrew.gazelka@gmail.com>
2021-11-09 09:52:28 +00:00
Emil Fresk
0dcb0c4e49 New monotonic trait working 2021-11-09 10:20:43 +01:00
Henrik Tjäder
03af9b1994 Match new rtic-syntax naming of shared and local 2021-11-07 00:42:57 +01:00
Andrew Gazelka
fb092aa65a
fix #543 2021-11-03 13:01:53 -07:00
Emil Fresk
50017b96f0 Fixed aliasing in lock impl 2021-11-03 08:27:05 +01:00
Emil Fresk
d3d66c97ae Cleanup of resource initialization, no need to dereference 2021-11-03 08:26:45 +01:00
Emil Fresk
8065d741ac Fixed aliasing issue due to RacyCell implementation 2021-11-02 13:41:12 +01:00
Emil Fresk
7c6588e6bd Fix export of SYST 2021-09-28 10:38:22 +02:00
Emil Fresk
9a0d27a91e Updated codegen for the updated syntax (default monotonic priority) 2021-09-27 12:10:42 +02:00
Emil Fresk
b71df58f2f The great docs update 2021-09-23 16:11:04 +02:00
bors[bot]
bf9df9fe73
Merge #525
525: Cleanup export and actually use rtic::export, made fn init inline r=perlindgren a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2021-09-14 17:17:33 +00:00
Emil Fresk
addb086070 Cleanup export and actually use rtic::export, made fn init inline 2021-09-14 16:13:28 +02:00
Jorge Aparicio
38bd29779e style fix 2021-08-31 19:53:55 +02:00
Jorge Aparicio
1a49d67490 validate unused dispatchers
closes #521
2021-08-31 19:50:50 +02:00
bors[bot]
22ec841ee1
Merge #516
516: More rustanalyzer lint fixes r=korken89 a=korken89

Found some more

Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2021-08-20 07:27:07 +00:00
Emil Fresk
52dc324aa7 More rustanalyzer lint fixes 2021-08-20 09:21:02 +02:00
datdenkikniet
cdbd8a2ced Use mark_internal_name by default for methods in util to make usage of these functions more straightforward.
fq_ident is always internal

rq_ident is always internal

monotonic_ident is always internal

inputs_ident is always internal

local_resources_ident is always internal

shared_resources_ident is always internal

monotonic_instants_ident is always internal

tq_ident is always internal

timer_queue_marker_ident is always internal

static_shared_resource_ident is always internal

static_local_resource_ident is always internal

declared_static_local_resource_ident is always internal

Only names, not idents, are now marked as internal

Use same rtic internal everywhere
2021-08-20 08:12:13 +02:00
Henrik Tjäder
018e4a121f Silence rust-analyzer warnings on internal types 2021-08-19 13:02:17 +02:00
Emil Fresk
13f7516a4d Fixed some lints from Rust Analyzer with experimental proc-macros 2021-08-19 09:49:00 +02:00
Emil Fresk
bc3eb5c547 Remove linked list impl - use heapless, linked list init now const fn 2021-08-16 15:38:31 +02:00
Alex Crawford
5f395658f0 Propogate the task attributes to the spawn handles
This allows tasks to be gated by `cfg` attributes when also using
monotonics. For example:

```rust
#[cfg(feature = "logging")]
#[task(shared = [logger])]
fn logger_init(mut cx: logger_init::Context) {
    /* ... */
}
```

Without this change, the reschedule_at() implementation is
unconditionally included even though it references the SpawnHandle from
its task module, which is _conditionally_ included. This resulted in
compiler errors like the following:

```
error[E0433]: failed to resolve: use of undeclared crate or module `logger_init`
   --> src/main.rs:243:8
    |
243 |     fn logger_init(mut cx: logger_init::Context) {
    |        ^^^^^^^^^^^ use of undeclared crate or module `logger_init`
```
2021-07-22 01:00:57 -07:00
Jorge Aparicio
18880406cb use tuple struct syntax for Monotonics everywhere 2021-07-21 10:14:00 +02: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
d7393c5b27 Full local resource syntax working 2021-07-07 21:04:31 +02:00
Emil Fresk
ef5307d83a Minimal app now compiles 2021-07-06 22:47:48 +02:00
Emil Fresk
3f85cb5caf Started work 2021-07-05 21:40:01 +02:00
Emil Fresk
c17348d290 Prepare release alpha.4 2021-05-27 18:10:24 +02:00
Emil Fresk
b4509bdbfe Flattened the _ out of it 2021-05-06 19:40:37 +02:00
bors[bot]
aad8f81991
Merge #469
469: Goodbye static mut r=AfoHT a=korken89

Squashed and updated version of @perlindgren branch.

In release there are 0 bytes difference for all examples 🎉 
For debug we see a bloat of ~1-2% worst case, commonly less.

Complete diff of sizes for all examples (first is goodbye static mut, second is master):

```

<   27220	      0	     28	  27248	   6a70	spawn
---
>   27092	      0	     28	  27120	   69f0	spawn

<   16916	      0	     44	  16960	   4240	late
---
>   16836	      0	     44	  16880	   41f0	late

<   15952	      0	     12	  15964	   3e5c	type-usage
---
>   15872	      0	     12	  15884	   3e0c	type-usage

<   22068	      0	     44	  22112	   5660	cfg
---
>   21812	      0	     44	  21856	   5560	cfg

<   34784	      0	     40	  34824	   8808	periodic
---
>   34496	      0	     40	  34536	   86e8	periodic

<   22308	      0	     32	  22340	   5744	task
---
>   21972	      0	     32	  22004	   55f4	task

<   15076	      8	     24	  15108	   3b04	task-local
---
>   14980	      8	     24	  15012	   3aa4	task-local

<   12884	      0	     24	  12908	   326c	destructure
---
>   12820	      0	     24	  12844	   322c	destructure

<   10128	      0	     16	  10144	   27a0	init
---
>   10112	      0	     16	  10128	   2790	init

<   19044	      0	     20	  19064	   4a78	task_named_main
---
>   18916	      0	     20	  18936	   49f8	task_named_main

<   27252	      0	     28	  27280	   6a90	extern_spawn
---
>   27124	      0	     28	  27152	   6a10	extern_spawn

<   10176	      0	     16	  10192	   27d0	idle
---
>   10160	      0	     16	  10176	   27c0	idle

<   13972	      0	     16	  13988	   36a4	resource
---
>   13940	      0	     16	  13956	   3684	resource

<   16228	      0	     24	  16252	   3f7c	multilock
---
>   16116	      0	     24	  16140	   3f0c	multilock

<   14660	      0	     16	  14676	   3954	lock
---
>   14628	      0	     16	  14644	   3934	lock

<   10416	      0	     16	  10432	   28c0	task-local-minimal
---
>   10400	      0	     16	  10416	   28b0	task-local-minimal

<   14164	      0	     24	  14188	   376c	generics
---
>   14148	      0	     24	  14172	   375c	generics

<   30644	      0	     48	  30692	   77e4	message
---
>   30308	      0	     48	  30356	   7694	message

<   28964	      0	     36	  29000	   7148	spawn2
---
>   28724	      0	     36	  28760	   7058	spawn2

<   15952	      0	      8	  15960	   3e58	t-schedule-core-stable
---
>   15872	      0	      8	  15880	   3e08	t-schedule-core-stable

<   17408	      0	     20	  17428	   4414	t-cfg
---
>   17248	      0	     20	  17268	   4374	t-cfg

<   12948	      0	     16	  12964	   32a4	hardware
---
>   12932	      0	     16	  12948	   3294	hardware

<   54640	      0	    104	  54744	   d5d8	t-schedule
---
>   53696	      0	    104	  53800	   d228	t-schedule

<   26132	      0	    548	  26680	   6838	pool
---
>   25876	      0	    548	  26424	   6738	pool

<   22372	      0	     56	  22428	   579c	cfg-whole-task
---
>   22100	      0	     56	  22156	   568c	cfg-whole-task

<   38292	      0	     76	  38368	   95e0	schedule
---
>   37828	      0	     76	  37904	   9410	schedule

<   21216	      0	     32	  21248	   5300	t-spawn
---
>   20880	      0	     32	  20912	   51b0	t-spawn

<   22820	      0	     56	  22876	   595c	capacity
---
>   22580	      0	     56	  22636	   586c	capacity

<   17060	      0	     48	  17108	   42d4	static
---
>   16980	      0	     48	  17028	   4284	static

<   20288	      0	     24	  20312	   4f58	ramfunc
---
>   20096	      0	     24	  20120	   4e98	ramfunc

<   11760	      0	     20	  11780	   2e04	t-resource
---
>   11664	      0	     20	  11684	   2da4	t-resource

<   13028	      0	     16	  13044	   32f4	only-shared-access
---
>   13012	      0	     16	  13028	   32e4	only-shared-access

<   16576	      0	     16	  16592	   40d0	not-sync
---
>   16432	      0	     16	  16448	   4040	not-sync

<   13892	      0	     16	  13908	   3654	resource-user-struct
---
>   13860	      0	     16	  13876	   3634	resource-user-struct

<   37472	      0	     64	  37536	   92a0	double_schedule
---
>   36960	      0	     64	  37024	   90a0	double_schedule

<   17648	      0	      8	  17656	   44f8	t-stask-main
---
>   17520	      0	      8	  17528	   4478	t-stask-main

<    8816	      0	      4	   8820	   2274	t-late-not-send
---
>    8800	      0	      4	   8804	   2264	t-late-not-send

<   23280	      0	     32	  23312	   5b10	types
---
>   23120	      0	     32	  23152	   5a70	types
```

Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2021-04-22 16:42:45 +00:00
Emil Fresk
50f26e78ed Keep comments 2021-04-22 18:38:42 +02:00
Emil Fresk
6fc7b96474 use super::xx now works with monotonics 2021-04-22 17:39:07 +02:00
bors[bot]
99a53c7ca7
Merge #477
477: Fix for default monotonic, `monotonics::now()` now properly works r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2021-04-20 17:06:08 +00:00
Emil Fresk
fbcf2aabb0 Fix for default monotonic, monotonics::now() now properly works 2021-04-20 10:34:26 +02:00
Conor Patrick
bc10fe266d reclaim stack space used in init 2021-04-18 14:35:11 -07:00
Emil Fresk
6aa0fb450f Goodbye static mut 2021-04-08 19:58:20 +02:00
Emil Fresk
51500a1d70 Fixed UB in spawn_at 2021-04-08 10:14:14 +02:00