aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml18
-rw-r--r--rtic/CHANGELOG.md1
-rw-r--r--rtic/src/export/riscv_common.rs2
-rw-r--r--xtask/src/argument_parsing.rs97
4 files changed, 75 insertions, 43 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e780b7c..b43f136 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -65,7 +65,7 @@ jobs:
- run: cargo xtask --deny-warnings --platform lm3s6965 --backend ${{ matrix.input.backend }} check
# Clippy
- # TODO: clippy hifive1, esp32-c3
+ # TODO: clippy esp32-c3
clippy:
name: clippy
runs-on: ubuntu-22.04
@@ -73,17 +73,29 @@ jobs:
matrix:
input:
- backend: thumbv7
+ platform: lm3s6965
rustup-target: thumbv7m-none-eabi
- backend: thumbv6
+ platform: lm3s6965
rustup-target: thumbv6m-none-eabi
- backend: thumbv8-base
+ platform: lm3s6965
rustup-target: thumbv8m.base-none-eabi
- backend: thumbv8-main
+ platform: lm3s6965
rustup-target: thumbv8m.main-none-eabi
+ - backend: riscv32-imc-clint
+ platform: hifive1
+ rustup-target: riscv32imc-unknown-none-elf
+
+ - backend: riscv32-imc-mecall
+ platform: hifive1
+ rustup-target: riscv32imc-unknown-none-elf
+
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -97,7 +109,7 @@ jobs:
- name: Cache Dependencies
uses: Swatinem/rust-cache@v2
- - run: cargo xtask --deny-warnings --platform lm3s6965 --backend ${{ matrix.input.backend }} clippy
+ - run: cargo xtask --deny-warnings --platform ${{ matrix.input.platform }} --backend ${{ matrix.input.backend }} clippy
# Verify all examples, checks
checkexamples:
@@ -184,7 +196,7 @@ jobs:
- if: ${{ steps.cache-qemu.outputs.cache-hit != 'true' }}
name: Download QEMU
- run: wget "${{ env.QEMU_URL }}"
+ run: wget "${{ env.QEMU_URL }}"
- if: ${{ steps.cache-qemu.outputs.cache-hit != 'true' }}
name: Extract QEMU
diff --git a/rtic/CHANGELOG.md b/rtic/CHANGELOG.md
index e086b0e..157f13f 100644
--- a/rtic/CHANGELOG.md
+++ b/rtic/CHANGELOG.md
@@ -22,6 +22,7 @@ Example:
### Changed
+- Placate clippy
- Updated esp32c3 dependency to v0.27.0
### Added
diff --git a/rtic/src/export/riscv_common.rs b/rtic/src/export/riscv_common.rs
index d3028b4..9f39eb7 100644
--- a/rtic/src/export/riscv_common.rs
+++ b/rtic/src/export/riscv_common.rs
@@ -1,4 +1,4 @@
-/// GENERIC RE-EXPORTS: needed for all RTIC backends
+//! GENERIC RE-EXPORTS: needed for all RTIC backends
/// Read the stack pointer.
#[inline(always)]
diff --git a/xtask/src/argument_parsing.rs b/xtask/src/argument_parsing.rs
index 13ae6df..47c53a0 100644
--- a/xtask/src/argument_parsing.rs
+++ b/xtask/src/argument_parsing.rs
@@ -63,47 +63,26 @@ impl Package {
vec![Some(backend.to_rtic_macros_feature().to_string())]
}
Package::RticMonotonics => {
- let features = if partial {
- &[
- "cortex-m-systick",
- "rp2040",
- "nrf52840",
- "imxrt_gpt1,imxrt-ral/imxrt1062",
- "stm32_tim2,stm32h725ag",
- ][..]
+ let features = backend.to_rtic_monotonics_features(partial);
+
+ if let Some(features) = features {
+ features
+ .iter()
+ .map(|&s| {
+ if matches!(backend, Backends::Thumbv6) {
+ format!("{s},portable-atomic/critical-section")
+ } else {
+ s.to_string()
+ }
+ })
+ .map(Some)
+ .chain(std::iter::once(None))
+ .collect()
} else {
- &[
- "cortex-m-systick",
- "cortex-m-systick,systick-64bit",
- "rp2040",
- "nrf52805",
- "nrf52810",
- "nrf52811",
- "nrf52832",
- "nrf52833",
- "nrf52840",
- "nrf5340-app",
- "nrf5340-net",
- "nrf9160",
- "imxrt_gpt1,imxrt_gpt2,imxrt-ral/imxrt1062",
- "stm32_tim2,stm32_tim3,stm32_tim4,stm32_tim5,stm32_tim15,stm32h725ag",
- ][..]
- };
-
- features
- .iter()
- .map(|&s| {
- if matches!(backend, Backends::Thumbv6) {
- format!("{s},portable-atomic/critical-section")
- } else {
- s.to_string()
- }
- })
- .map(Some)
- .chain(std::iter::once(None))
- .collect()
+ vec![None]
+ }
}
- Package::RticSync if matches!(backend, Backends::Thumbv6) => {
+ Package::RticSync if matches!(backend, Backends::Thumbv6) || !backend.is_arm() => {
vec![Some("portable-atomic/critical-section".into())]
}
_ => vec![None],
@@ -200,6 +179,7 @@ impl Backends {
Backends::Riscv32ImcMecall | Backends::Riscv32ImacMecall => "riscv-mecall-backend",
}
}
+
#[allow(clippy::wrong_self_convention)]
pub fn to_rtic_macros_feature(&self) -> &'static str {
match self {
@@ -210,6 +190,45 @@ impl Backends {
Backends::Riscv32ImcMecall | Backends::Riscv32ImacMecall => "riscv-mecall",
}
}
+
+ #[allow(clippy::wrong_self_convention)]
+ pub fn to_rtic_monotonics_features(&self, partial: bool) -> Option<&[&str]> {
+ if !self.is_arm() {
+ None
+ } else if partial {
+ Some(&[
+ "cortex-m-systick",
+ "rp2040",
+ "nrf52840",
+ "imxrt_gpt1,imxrt-ral/imxrt1062",
+ "stm32_tim2,stm32h725ag",
+ ])
+ } else {
+ Some(&[
+ "cortex-m-systick",
+ "cortex-m-systick,systick-64bit",
+ "rp2040",
+ "nrf52805",
+ "nrf52810",
+ "nrf52811",
+ "nrf52832",
+ "nrf52833",
+ "nrf52840",
+ "nrf5340-app",
+ "nrf5340-net",
+ "nrf9160",
+ "imxrt_gpt1,imxrt_gpt2,imxrt-ral/imxrt1062",
+ "stm32_tim2,stm32_tim3,stm32_tim4,stm32_tim5,stm32_tim15,stm32h725ag",
+ ])
+ }
+ }
+
+ pub fn is_arm(&self) -> bool {
+ matches!(
+ self,
+ Self::Thumbv6 | Self::Thumbv7 | Self::Thumbv8Base | Self::Thumbv8Main
+ )
+ }
}
#[derive(Copy, Clone, Default, Debug)]