Commit graph

256 commits

Author SHA1 Message Date
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
Emil Fresk
2068eae928 Type aliases now work in the app module 2021-04-08 09:15:38 +02:00
Emil Fresk
3adda3c766 Updated schedule example with all combinations 2021-03-22 08:24:18 +01:00
Emil Fresk
53c407017f Cancel and reschedule working
Support cfgs in the imports

Account for extern tasks
2021-03-20 08:19:56 +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
Emil Fresk
2e4a4ffd87 Preparing release 0.6.0-alpha.1 2021-03-04 20:00:03 +01:00
Emil Fresk
08a37d6d3d Updated spawn_after docs 2021-03-02 19:31:47 +01:00
Emil Fresk
d351f55e1c Documentation generation fixes
Test fixes
2021-02-25 19:16:28 +01:00
Emil Fresk
767d46e05b Review fixes 2021-02-25 17:32:12 +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
26870ae12e Use zero time in init for spawn_after to not cause panic 2021-02-22 21:47:59 +01:00
Emil Fresk
82d051e8e9 Added enable/disable timer calls 2021-02-22 20:59:03 +01:00
Emil Fresk
1345f30a69 Properly call on_interrupt 2021-02-21 21:57:18 +01:00
Emil Fresk
1a46345a2a Fixed UB in generated Monotonic::now() 2021-02-21 16:15:34 +01:00
Emil Fresk
d02f9a0241 Fixing warnings 2021-02-20 18:32:05 +01:00
Emil Fresk
ebf2f058a4 Now with new monotonic trait and crate 2021-02-18 19:30:59 +01:00
Emil Fresk
6fb43fa97b Minor fixes 2021-02-04 20:22:02 +01:00
Emil Fresk
aaa92ea2fa Cleanup 2020-12-13 17:48:11 +01:00
Emil Fresk
6277183906 Now handling SysTick as well 2020-12-13 14:52:16 +01:00
Emil Fresk
35b4ec0d04 Reexport embedded-time as rtic::time 2020-12-13 00:06:50 +01:00
Emil Fresk
1c8de78f6f Cleanup 2020-12-12 23:35:47 +01:00
Emil Fresk
8e8ec9b7b8 Monotonic codegen now passing compile stage 2020-12-12 23:24:54 +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
07afbe1ce7 Fix the link 2020-11-19 18:49:39 +00:00
Henrik Tjäder
a423ae1b25 Remove stale documentation, refer to the book 2020-11-19 18:11:43 +00:00
Henrik Tjäder
ad7b5a90c4 The module should not be pub 2020-11-15 17:40:14 +00: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
243668df54 Multilock support 2020-11-14 16:02:36 +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
bors[bot]
9fb5a223cb
Merge #396
396: Fix namespaces r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2020-10-22 16:48:56 +00:00
Emil Fresk
d2ac641c3f Hide lock type better to not collide with user types 2020-10-21 20:25:22 +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
Henrik Tjäder
21253297e4 Implement all clippy suggestions 2020-10-15 17:09:27 +00:00
Emil Fresk
6808cc7cdf Merge branch 'master' into spawn_experiment 2020-10-15 18:27:48 +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
37ee3a47af Create Enum containing all tasks 2020-10-15 15:56:20 +00:00
Henrik Tjäder
e2364aae3e Updated examples and rtic-name 2020-10-15 15:56:20 +00:00
Henrik Tjäder
d4439fe73b Print module name and priority 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
48abc26e85 Detect if the rt flag is defined in the PAC/HAL
Better error message

Improved error string

Update UI tests
2020-10-15 16:06:30 +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
e8b4fa7b32 Added critical sections 2020-10-08 17:33:16 +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
aac97a2109 spawn POC works, likely unsound, cleanup 2020-10-05 22:02:04 +02:00
Per Lindgren
6bd168d711 spawn POC works, likely unsound 2020-10-05 21:57:44 +02:00
Emil Fresk
8ab7be9871 Added back accidentally removed block 2020-10-05 20:19:52 +02:00
Emil Fresk
eec0908024 Merge branch 'master' into always_late_resources 2020-10-05 18:25:15 +02:00
Henrik Tjäder
1e46ffdfbc
Merge branch 'master' into mod_const 2020-10-02 11:36:28 +02:00
Emil Fresk
fb61a78cdd Added bare_metal::CriticalSection to init::Context 2020-10-01 20:01:25 +02:00
Emil Fresk
e7f0d9c3e3 Now late resources are always used 2020-10-01 19:38:49 +02:00
Henrik Tjäder
96e6350c0d Rename const_app to mod_app 2020-10-01 16:22:37 +00:00
Henrik Tjäder
3ab2c049c5 Remove stale comment 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
5b17f8b599 Due to new module boundaries the schedule fn needs to be pub 2020-09-25 14:33:08 +00:00
Henrik Tjäder
a151974245 cfg_core is gone, cargo fmt 2020-09-25 14:33:02 +00:00
Henrik Tjäder
86578b76fb Add format_ident imports 2020-09-25 14:29:34 +00:00
Henrik Tjäder
2881cc8f43 Modify macro tests, use mod instead of const 2020-09-25 14:29:34 +00:00
Henrik Tjäder
0c7a619432 Compose the use-statements, reduce debug-printouts 2020-09-25 14:29:34 +00:00
Henrik Tjäder
9fd052b876 Collect and generate required use-statements 2020-09-25 14:29:34 +00:00
Henrik Tjäder
46bf583cc2 Handle user hardware and software tasks and some resources 2020-09-25 14:29:34 +00:00
Henrik Tjäder
c718413cb5 Generate mod instead of const, handle import of idle and init 2020-09-25 14:29:34 +00:00
Henrik Tjäder
148ad4045e Update documentation where const is replaced by mod 2020-09-25 14:29:34 +00:00
Henrik Tjäder
d06cf91acc Remove stale code, fix comment styling 2020-09-01 17:48:53 +00:00
Henrik Tjäder
d8c9476372 Since there only will be one init/idle use .first().unwrap(), matching rtic-syntax 2020-09-01 17:48:53 +00:00
Henrik Tjäder
f151d5871c Cargo fmt 2020-09-01 14:50:06 +00:00
Henrik Tjäder
76cf14c520 Brutally yank out multicore 2020-09-01 14:50:06 +00:00
Henrik Tjäder
a4eb8c576c Reuse cortex-m 2020-08-27 12:33:51 +00:00
Per Lindgren
e297ceb1ad rtic::export::Peripherals created by into instead of transmute 2020-07-09 19:37:04 +02: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
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
bors[bot]
8898224950
Merge #314
314: do not optimize build deps r=korken89 a=japaric

this may make CI faster

Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2020-06-11 16:33:39 +00: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
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
Jorge Aparicio
3ed4fe3771 TODO(remove) codegen no-op 2020-05-26 22:21:32 +02:00
Henrik Tjäder
f58f37b2b9 Retain cfg-attributes on resources 2020-04-22 09:26:13 +00:00
Jorge Aparicio
9f092efe24 do not zero late resource memory on boot 2019-10-21 16:38:04 -05:00
Jorge Aparicio
c8197f524e fix gh-pages build 2019-09-15 20:19:48 +02:00
Jorge Aparicio
7aa270cb92 don't use deprecated API 2019-09-15 18:36:00 +02:00
Jorge Aparicio
996bdf8f0c doc tweaks 2019-08-21 12:33:04 +02:00
Jorge Aparicio
45f9faae9c document #[app] 2019-08-21 12:19:38 +02:00
Jorge Aparicio
0e146f8d11 adapt to changes in rtfm-syntax 2019-08-20 15:17:37 +02:00