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
Jorge Aparicio
fb84029bee
implement the #[shared] attribute as specified in RFC #211
2019-07-11 12:53:58 +02:00
Jorge Aparicio
9195038c87
implement RFC #212
2019-07-10 22:42:44 +02:00
Jorge Aparicio
14d63f4961
fix (cross-core) initialization barriers
2019-07-03 20:36:52 +02:00
Jorge Aparicio
be92041a59
WIP
2019-06-29 09:11:57 +02:00
Jorge Aparicio
df4a7fd3e5
check that the app is not compiled for more cores than were specified
2019-06-24 14:15:00 +02:00
Jorge Aparicio
596cf585ea
Monotonic trait is safe; add MultiCore trait
2019-06-24 14:09:12 +02:00
Jorge Aparicio
4e51bb68b9
RFC #207
2019-06-20 06:19:59 +02:00
Jorge Aparicio
9897728709
add homogeneous multi-core support
2019-06-18 10:31:31 +02:00
Jorge Aparicio
81275bfa4f
rtfm-syntax refactor + heterogeneous multi-core support
2019-06-13 23:56:59 +02:00
bors[bot]
fafeeb2727
Merge #194
...
194: bump heapless dependency to v0.5.0; remove "nightly" feature r=japaric a=japaric
with the upcoming version of heapless we are able to initialize all internal
queues in const context removing the need for late initialization
this commit also removes the "nightly" feature because all the optimization
provided by it are now enabled by default
Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-21 19:15:18 +00:00
Jorge Aparicio
30d6327001
bump heapless dependency to v0.5.0; remove "nightly" feature
...
with the upcoming version of heapless we are able to initialize all internal
queues in const context removing the need for late initialization
this commit also removes the "nightly" feature because all the optimization
provided by it are now enabled by default
2019-05-21 15:22:25 +02:00
Jorge Aparicio
0fb2726e6c
remove unused check
...
that was added in #140 but it's no longer required
2019-05-21 14:43:05 +02:00
Jorge Aparicio
fafc94ccfb
removes the maybe_uninit feature gate
...
and stop newtyping `core::mem::MaybeUninit`
2019-05-21 14:18:43 +02:00
bors[bot]
6acb156482
Merge #189
...
189: write generated code to disk for easier inspection r=japaric a=japaric
now that the generated code is actually readable let's make it easier to access
this commit also documents how to inspect the generated code via
`rtfm-expansion.rs` and `cargo-expand`
Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-05-09 19:53:56 +00:00
Jorge Aparicio
36073a6342
generate resource proxies only when needed
...
only `static mut` resources need proxies
2019-05-09 18:25:34 +02:00
Jorge Aparicio
d4eb4d2c47
write generated code to disk for easier inspection
...
now that the generated code is actually readable let's make it easier to access
this commit also documents how to inspect the generated code via
`rtfm-expansion.rs` and `cargo-expand`
2019-05-08 14:08:09 +02:00
Jorge Aparicio
485601245b
rtfm::app: update error message
2019-05-01 20:49:25 +02:00
Jorge Aparicio
a452700628
implement RFCs 147 and 155, etc.
...
This commit:
- Implements RFC 147: "all functions must be safe"
- Implements RFC 155: "explicit Context parameter"
- Implements the pending breaking change #141 : reject assign syntax in `init`
(which was used to initialize late resources)
- Refactors code generation to make it more readable -- there are no more random
identifiers in the output -- and align it with the book description of RTFM
internals.
- Makes the framework hard depend on `core::mem::MaybeUninit` and thus will
require nightly until that API is stabilized.
- Fixes a ceiling analysis bug where the priority of the system timer was not
considered in the analysis.
- Shrinks the size of all the internal queues by turning `AtomicUsize` indices
into `AtomicU8`s.
- Removes the integration with `owned_singleton`.
2019-05-01 20:49:25 +02:00
Jorge Aparicio
a562fb3232
v0.4.3
2019-04-21 18:20:57 +02:00
bors[bot]
77def32454
Merge #170
...
170: check task priority at compile time r=TeXitoi a=japaric
before we were checking the priority at runtime. The compile time error message
when the priority is too high is kind of awful though.
Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-04-16 22:54:18 +00:00
Jorge Aparicio
210921e06c
now fix the fix
2019-04-17 00:18:02 +02:00
Jorge Aparicio
53f0ca1504
more nightly fixes
2019-04-16 23:41:00 +02:00
Jorge Aparicio
10d2638488
[NFC] fix nightly ci
2019-04-16 23:17:28 +02:00
Jorge Aparicio
aa7eec0299
check task priority at compile time
...
before we were checking the priority at runtime. The compile time error message
when the priority is too high is kind of awful though.
2019-04-16 23:04:24 +02:00
Jorge Aparicio
8eccef7d9c
refactor: make binds
harder to misuse
2019-02-26 23:25:16 +01:00
Jorge Aparicio
2fd6ae69d1
binds
can only appear once in the argument list
2019-02-26 23:22:34 +01:00
Jorge Aparicio
11f795aaf6
add binds
example and make it work
2019-02-26 23:22:34 +01:00
Jorge Aparicio
72f0cc505a
make cfail test actually fail
2019-02-26 23:22:34 +01:00
Jorge Aparicio
d0f33add0a
add binds
argument to the interrupt
and exception
attributes
2019-02-26 23:22:31 +01:00
Jorge Aparicio
73529ea650
reject duplicate arguments in #[interrupt] and #[exception]
...
This program was being accepted:
``` rust
#[task(
capacity = 1,
capacity = 2,
priority = 1,
priority = 2,
)]
fn foo() {}
```
now it will trigger a compiler error
2019-02-23 22:35:29 +01:00
Jorge Aparicio
88078e7770
add "nightly" feature
2019-02-19 12:37:25 +01:00
Jorge Aparicio
e5e54ee8f1
rebase fix
2019-02-16 00:28:12 +01:00
Jorge Aparicio
7ce052be37
cargo fmt
2019-02-16 00:26:07 +01:00
Jorge Aparicio
2b8e743f35
make debug builds reproducible
2019-02-16 00:25:48 +01:00
Hugo van der Wijst
577d188f72
Make generated names stable when sorting.
2019-02-16 00:23:01 +01:00
Hugo van der Wijst
a654d13eef
Seed RNG with package name and prepend string to full random name.
2019-02-16 00:23:01 +01:00
Hugo van der Wijst
be8a5e89b8
Make identifiers deterministic.
2019-02-16 00:23:01 +01:00
Hugo van der Wijst
2f89688ca9
Make builds reproducible
...
This is done by using `BTreeMap`s and `BTreeSet`s to get deterministic
ordering.
Also updated the CI job to check reproducibility of all examples.
2019-02-16 00:22:22 +01:00
Jorge Aparicio
5f7e831d27
fix non_camel_case_types warnings
2019-02-13 15:37:24 +01:00
Jorge Aparicio
88599780e0
accept init: fn() -> init::LateResources
2019-02-12 14:53:49 +01:00
Jorge Aparicio
557a51ede1
forbid early returns in init
2019-02-12 11:07:15 +01:00
Hugo van der Wijst
45e98afbc1
Fix build on recent nightlies.
2019-01-17 10:55:21 -08:00
Jorge Aparicio
56d09a12dd
move macros crate to the 2018 edition
2018-12-16 19:14:58 +01:00
Jorge Aparicio
8e9a91d0b0
properly handle #[cfg]
(conditional compilation) on tasks
2018-12-16 19:10:36 +01:00
Jorge Aparicio
4345c10596
properly handle #[cfg] (conditional compilation) on resources
2018-12-16 18:37:36 +01:00
Jorge Aparicio
9757c33b00
use the single core variant of spsc::Queue
2018-12-16 01:11:54 +01:00
Jorge Aparicio
4f00d8bd78
codegen/statics: forward #[cfg] attributes
...
fixes #110
2018-12-15 22:04:30 +01:00
Jorge Aparicio
d14e25d72d
move some interrupt configuration to pre_init
2018-12-15 20:35:00 +01:00
Jorge Aparicio
f7ac71ab22
codegen: merge dictionaries related to task dispatchers
2018-12-15 19:17:08 +01:00
Jorge Aparicio
0b3f0b2eb5
codegen: merge dictionaries related to tasks
2018-12-15 19:07:09 +01:00
Jorge Aparicio
35bb76ef5f
codegen: stop using export_name
...
`export_name` creates external symbols that won't be removed when using `-Z
emit-stack-sizes`
2018-12-02 17:43:36 +01:00
Jorge Aparicio
22d758ddac
fix codegen
2018-11-04 19:46:49 +01:00
Jorge Aparicio
37a0692a0f
impl Mutex on all shared resources
...
document how to write generic code that operates on resources
2018-11-04 18:50:42 +01:00
Jorge Aparicio
c631049efc
v0.4.0
...
closes #32
closes #33
2018-11-03 17:16:55 +01:00
Jorge Aparicio
abca829926
more fixes
2018-08-24 16:31:04 +02:00
Ferdia McKeogh
14b1811182
Fix "Could not find Op
in proc_macro
"
2018-06-07 11:45:11 +01:00
Jorge Aparicio
7fdf16eab9
update parser
...
closes #69
this doesn't change functionality per se but improves diagnostics in some cases. Some hard errors
have becomes warnings, for example: when `resources` is empty, or when `idle.path` is set to the
default `idle` path.
2018-04-16 21:32:29 +02:00
Jorge Aparicio
def4fc8079
v0.3.0
2018-01-15 23:33:09 +01:00
Jorge Aparicio
1be43fc489
adapt to changes in the cortex-m crate
2018-01-11 20:56:45 +01:00
Jorge Aparicio
b00f4fec14
add missing comma
2017-12-17 10:00:56 +01:00
Jorge Aparicio
d30bdcb096
safe &'static mut
references via init.resources
2017-12-09 17:17:56 +01:00
Jorge Aparicio
a6dd004113
implement the Resource trait for owned resources
...
this unbreaks the "generics" example
2017-12-09 17:17:56 +01:00
Jorge Aparicio
219e172680
drop the Static wrapper
2017-12-09 17:15:15 +01:00
Jorge Aparicio
62c5c1ae43
make resource proxies not Sync
2017-12-09 16:13:22 +01:00
Jorge Aparicio
9865a7246d
make resource proxies !Send
2017-12-09 15:10:29 +01:00
Jorge Aparicio
79e2b7dc2e
rename LateResourceValues to LateResources
2017-12-09 13:20:41 +01:00
Jorge Aparicio
1830bdbe5c
remove special case around peripherals from codegen
2017-12-09 13:08:08 +01:00
Jorge Aparicio
e97afa71ce
peripherals as scoped singletons
2017-12-09 12:45:57 +01:00
Jorge Aparicio
948e1fd0fb
v0.2.2
2017-11-22 09:29:01 +01:00