Commit graph

1447 commits

Author SHA1 Message Date
n8tlarsen
70ebcc409f
Clarify BASEPRI and NVIC interaction
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2022-12-19 18:16:25 -06:00
n8tlarsen
60132495d9
Expand lock explanation
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2022-12-19 17:48:52 -06:00
n8tlarsen
c8d60d2910
Improve basepri explanation
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2022-12-19 17:45:53 -06:00
Nathan
f52b5fd1c4 Add documentation for different targets 2022-12-16 11:39:28 -06:00
Henrik Tjäder
d0b3d8b3f2
Remove redundant adding of rustfmt component 2022-12-16 11:30:01 +01:00
Henrik Tjäder
51f1bce077 Forgot cargo... 2022-12-16 00:52:46 +01:00
Henrik Tjäder
6dcd6a564a Changelog 2022-12-16 00:40:59 +01:00
Henrik Tjäder
49f3553943 Add clippy component 2022-12-16 00:28:06 +01:00
Henrik Tjäder
89a1b535b7 Bump swatinem/rust-cache to v2 2022-12-16 00:25:46 +01:00
Henrik Tjäder
ef40dd4b0b CI: Run rustup and cargo directly 2022-12-16 00:18:35 +01:00
bors[bot]
6c1743b553
Merge #668
668: Docs on RTOS r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2022-12-15 21:10:44 +00:00
Henrik Tjäder
10d2a59356 Clippy: Fix (clippy::needless_borrow) 2022-12-15 22:09:09 +01:00
Henrik Tjäder
e31ee3fa11 CI: Update to 22.04 2022-12-15 22:03:55 +01:00
Emil Fresk
d6edeb6a64 Fix CI error caused by critical-section 0.2.8 2022-12-14 21:28:29 +01:00
Emil Fresk
9afb1f888f Docs on RTOS 2022-12-14 21:04:31 +01:00
bors[bot]
a79cc08380
Merge #660
660: Clarify r=AfoHT a=01joja

I made 3 suggested changes

- `.cargo/config` -> `.cargo/config.toml`. Now extensions for vs code recognizes that it is a toml-file.
- Moved a note about how to configure target in cargo.toml to by-example.md from app_init.md.
- changed all occurrences of  `.cargo/config`  to `.cargo/config.toml` in the ru and eng version of the book.


Co-authored-by: Jonas Jacobsson <01joja@gmail.com>
2022-09-28 18:49:50 +00:00
bors[bot]
0539c3ca1a
Merge #661
661: Fix new lint in the compiler r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-09-28 18:43:16 +00:00
Emil Fresk
b711c036ab Fix new lint in the compiler 2022-09-28 20:42:16 +02:00
Jonas Jacobsson
ea6f824ad2 added .toml to .cargo/config in book 2022-09-27 15:37:54 +00:00
Jonas Jacobsson
ccbaea82aa .toml and note aboute target 2022-09-27 15:29:03 +00:00
bors[bot]
b87fca3d21
Merge #652
652: Remove use of basepri register on thumbv8m.base r=AfoHT a=neonquill

The basepri register appears to be aviable on thumbv8m.main but not thumbv8m.base. At the very least, attempting to compile against a Cortex-M23 based Microchip ATSAML10E16A generates an error:

```
error[E0432]: unresolved import `cortex_m::register::basepri`
  --> /Users/dwatson/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rtic-1.1.3/src/export.rs:25:5
   |
25 | use cortex_m::register::basepri;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `basepri` in `register`
```

I wasn't sure if it made more sense to replace the `armv7m` config flag with something related to basepri availability or to get closer to matching the cortex-m use of several architecture specific flags. In the end i chose to make the minimal change possible and just narrowed the existing `thumbv8m` check.

Context:
[cortex-m:src/register/mod.rs](4e90862520/src/register/mod.rs (L33)):
```
#[cfg(all(not(armv6m), not(armv8m_base)))]
pub mod basepri;
```

[cortex-m:build.rs](4e90862520/build.rs (L21)):
```
    } else if target.starts_with("thumbv8m.base") {
        println!("cargo:rustc-cfg=cortex_m");
        println!("cargo:rustc-cfg=armv8m");
        println!("cargo:rustc-cfg=armv8m_base");
```

Co-authored-by: David Watson <david@neonquill.com>
2022-07-27 19:15:09 +00:00
David Watson
368ab1d4fb Remove use of basepri register on thumbv8m.base
The basepri register appears to be aviable on thumbv8m.main but not
thumbv8m.base. At the very least, attempting to compile against a
Cortex-M23 based Microchip ATSAML10E16A generates an error:

```
error[E0432]: unresolved import `cortex_m::register::basepri`
  --> /Users/dwatson/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rtic-1.1.3/src/export.rs:25:5
   |
25 | use cortex_m::register::basepri;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `basepri` in `register`
```

This is an attempt to account for the fact that thumbv8m.base (M23)
MCUs don't have the BASEPRI register but have more than 32
interrupts. This moves away from the architecture specific config
flags and switches to a more functional flag.

Make the mask size depend on the max interrupt id

Rather than assuming a fixed interrupt count of 32 this code uses an
array of u32 bitmasks to calculate the priority mask. The size of this
array is calculated at compile time based on the size of the largest
interrupt id being used in the target code. For thumbv6m this should
be equivalent to the previous version that used a single u32 mask. For
thumbv8m.base it will be larger depending on the interrupts used.

Don't write 0s to the ISER and ICER registers

Writing 0s to these registers is a no-op. Since these masks should be
calculated at compile time, this conditional should result in writes
being optimized out of the code.

Prevent panic on non-arm targets

Panicking on unknown targets was breaking things like the doc build on
linux. This change should only panic when building on unknown arm
targets.
2022-07-27 21:04:24 +02:00
bors[bot]
d4816e054b
Merge #653
653: Allow custom `link_section` attributes for late resources r=AfoHT a=vccggorski

This commit makes RTIC aware of user-provided `link_section` attributes,
letting user override default section mapping.

Co-authored-by: Gabriel Górski <gabriel.gorski@volvocars.com>
2022-07-27 18:36:56 +00:00
Gabriel Górski
f15614e7cb Update CHANGELOG.md 2022-07-27 20:29:14 +02:00
Gabriel Górski
b4cfc4db84 Fix missing formatting 2022-07-27 20:25:34 +02:00
Gabriel Górski
c6fd3cdd0a Allow custom link_section attributes for late resources
This commit makes RTIC aware of user-provided `link_section` attributes,
letting user override default section mapping.
2022-07-06 17:43:38 +02:00
bors[bot]
981fa1fb30
Merge #650
650: Release RTIC v1.1.3 r=korken89 a=AfoHT



Co-authored-by: Henrik Tjäder <henrik@grepit.se>
2022-06-23 12:01:45 +00:00
Henrik Tjäder
563a3c9d4c Release RTIC v1.1.3 2022-06-23 13:58:50 +02:00
bors[bot]
b9d7a113b6
Merge #649
649: Bump rtic-syntax to v1.0.2 and fix Changelog r=korken89 a=AfoHT

Use the latest rtic-syntax, update the changelog with the last few undocumented releases


Co-authored-by: Henrik Tjäder <henrik@grepit.se>
2022-06-23 11:39:22 +00:00
Henrik Tjäder
8af754fc72 Bump rtic-syntax to v1.0.2 and fix Changelog 2022-06-23 13:36:14 +02:00
bors[bot]
cffbfc7509
Merge #645
645: fix ci: use SYST::PTR r=korken89 a=japaric

SYST::ptr has been deprecated in cortex-m v0.7.5
SYST::PTR is available since cortex-m v0.7.0

CI was failing due to a warning turned into an error by `deny(warnings)`

Co-authored-by: Jorge Aparicio <jorge.aparicio@ferrous-systems.com>
2022-06-07 10:47:14 +00:00
Jorge Aparicio
ab90426416 fix ci: use SYST::PTR
SYST::ptr has been deprecated in cortex-m v0.7.5
SYST::PTR is available since cortex-m v0.7.0
2022-06-07 12:37:42 +02:00
bors[bot]
8d3c803308
Merge #644
644: Fix macros to Rust 2021 r=perlindgren a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-05-24 17:43:19 +00:00
Emil Fresk
5c47aba1a1 Fix macros to Rust 2021 2022-05-24 19:42:02 +02:00
bors[bot]
5fe6350278
Merge #643
643: Fix clash with defmt r=AfoHT a=korken89

Fixes #642

Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-05-24 07:14:59 +00:00
Emil Fresk
b15bda2d39 Fix clash with defmt 2022-05-24 08:31:31 +02:00
bors[bot]
1a24c725d2
Merge #641
641: More ergonomic error from static asserts messages r=perlindgren a=korken89

Closes #634

Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-05-17 18:39:30 +00:00
Emil Fresk
cd445165c5 More ergonomic error from static asserts messages 2022-05-17 20:20:59 +02:00
bors[bot]
6896749f7b
Merge #638
638: Fixed warning from Rust Analyzer r=perlindgren a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-05-10 11:39:49 +00:00
Emil Fresk
e5643ee94e Fixed warning from Rust Analyzer 2022-05-10 13:38:23 +02:00
bors[bot]
e98ddeabeb
Merge #637
637: Prepare v1.1.2 r=perlindgren a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-05-09 11:36:18 +00:00
Emil Fresk
906abba71e Prepare v1.1.2 2022-05-09 13:33:49 +02:00
bors[bot]
06d2941d6f
Merge #636
636: Added matrix bot r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-05-02 06:40:00 +00:00
Emil Fresk
2e5e7698b6 Added matrix bot 2022-05-02 08:35:49 +02:00
bors[bot]
f24e9264b1
Merge #626
626: Fix error in book, shared resource need only `Send` r=korken89 a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-04-20 11:42:36 +00:00
bors[bot]
d1aa20643d
Merge #635
635: Masks take 3 r=AfoHT a=korken89

This solves the `MASKS` generation issue by having `rtic::export` do the feature gating.

Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-04-20 11:35:08 +00:00
Emil Fresk
0f8bdbdd3f Added check for resource usage and to generate an compile error for thumbv6 exceptions 2022-04-20 13:05:22 +02:00
Emil Fresk
9f38a39377 Masks take 3 2022-04-20 10:56:13 +02:00
bors[bot]
8707418003
Merge #632
632: Fixed `macro` version r=AfoHT a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2022-04-13 17:29:04 +00:00
Emil Fresk
f247cc0b3a Fixed macro version 2022-04-13 19:28:04 +02:00