diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f4105230..fc836dfc 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -102,8 +102,15 @@ jobs: with: path: target key: ${{ runner.os }}-${{ matrix.target }} + + # We have to append the "-D warnings" flag to .cargo/config rather than + # using the RUSTFLAGS environment variable because if we set RUSTFLAGS + # cargo will ignore the rustflags config in .cargo/config. - name: Check - run: cd ${{ matrix.package }} && cargo check --features=${{ matrix.features }} --target=${{ matrix.target }} + run: | + mkdir -p .cargo + echo -e '[target."cfg(all())"]\nrustflags = ["-D", "warnings"]' >> .cargo/config + cd ${{ matrix.package }} && RUSTFLAGS=-Dwarnings cargo check --features=${{ matrix.features }} --target=${{ matrix.target }} fmt: runs-on: ubuntu-latest diff --git a/embassy-nrf/src/gpiote.rs b/embassy-nrf/src/gpiote.rs index 2ef26e36..54d3dd01 100644 --- a/embassy-nrf/src/gpiote.rs +++ b/embassy-nrf/src/gpiote.rs @@ -10,7 +10,7 @@ use embedded_hal::digital::v2::{InputPin, StatefulOutputPin}; use futures::future::poll_fn; use crate::gpio::sealed::Pin as _; -use crate::gpio::{AnyPin, Input, Output, Pin as GpioPin, Port}; +use crate::gpio::{AnyPin, Input, Output, Pin as GpioPin}; use crate::pac; use crate::ppi::{Event, Task}; use crate::{interrupt, peripherals}; @@ -140,8 +140,8 @@ impl<'d, C: Channel, T: GpioPin> InputChannel<'d, C, T> { }; #[cfg(any(feature = "nrf52833", feature = "nrf52840"))] w.port().bit(match pin.pin.port() { - Port::Port0 => false, - Port::Port1 => true, + crate::gpio::Port::Port0 => false, + crate::gpio::Port::Port1 => true, }); unsafe { w.psel().bits(pin.pin.pin()) } }); @@ -223,8 +223,8 @@ impl<'d, C: Channel, T: GpioPin> OutputChannel<'d, C, T> { }; #[cfg(any(feature = "nrf52833", feature = "nrf52840"))] w.port().bit(match pin.pin.port() { - Port::Port0 => false, - Port::Port1 => true, + crate::gpio::Port::Port0 => false, + crate::gpio::Port::Port1 => true, }); unsafe { w.psel().bits(pin.pin.pin()) } }); diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index 36af6ec4..7480c4a3 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs @@ -1,6 +1,5 @@ use crate::adc::{AdcPin, Instance}; use core::marker::PhantomData; -use cortex_m::delay::Delay; use embassy::util::Unborrow; use embassy_extras::unborrow; use embedded_hal::blocking::delay::DelayUs; @@ -123,7 +122,7 @@ pub struct Adc<'d, T: Instance> { } impl<'d, T: Instance> Adc<'d, T> { - pub fn new(_peri: impl Unborrow + 'd, mut delay: Delay) -> (Self, Delay) { + pub fn new(_peri: impl Unborrow + 'd, delay: &mut impl DelayUs) -> Self { unborrow!(_peri); unsafe { T::regs().cr().modify(|reg| { @@ -142,18 +141,15 @@ impl<'d, T: Instance> Adc<'d, T> { delay.delay_us(1); - ( - Self { - sample_time: Default::default(), - resolution: Resolution::default(), - calibrated_vdda: VDDA_CALIB_MV, - phantom: PhantomData, - }, - delay, - ) + Self { + sample_time: Default::default(), + resolution: Resolution::default(), + calibrated_vdda: VDDA_CALIB_MV, + phantom: PhantomData, + } } - pub fn enable_vref(&self, mut delay: Delay) -> (Vref, Delay) { + pub fn enable_vref(&self, delay: &mut impl DelayUs) -> Vref { unsafe { T::common_regs().ccr().modify(|reg| { reg.set_vrefen(true); @@ -166,7 +162,7 @@ impl<'d, T: Instance> Adc<'d, T> { //cortex_m::asm::delay(20_000_000); delay.delay_us(15); - (Vref {}, delay) + Vref {} } pub fn enable_temperature(&self) -> Temperature { diff --git a/examples/stm32l4/src/bin/adc.rs b/examples/stm32l4/src/bin/adc.rs index a909e1bb..a3c44d3c 100644 --- a/examples/stm32l4/src/bin/adc.rs +++ b/examples/stm32l4/src/bin/adc.rs @@ -16,8 +16,8 @@ use cortex_m_rt::entry; use cortex_m::delay::Delay; use embassy_stm32::adc::{Adc, Resolution}; use stm32l4::stm32l4x5 as pac; -use stm32l4xx_hal::rcc::PllSource; use stm32l4xx_hal::prelude::*; +use stm32l4xx_hal::rcc::PllSource; #[entry] fn main() -> ! { @@ -29,12 +29,11 @@ fn main() -> ! { let mut rcc = pp.RCC.constrain(); let mut pwr = pp.PWR.constrain(&mut rcc.apb1r1); - let delay = Delay::new(cp.SYST, 80_000_000); + let mut delay = Delay::new(cp.SYST, 80_000_000); // TRY the other clock configuration // let clocks = rcc.cfgr.freeze(&mut flash.acr); - rcc - .cfgr + rcc.cfgr .sysclk(80.mhz()) .pclk1(80.mhz()) .pclk2(80.mhz()) @@ -69,7 +68,7 @@ fn main() -> ! { let p = embassy_stm32::init(Default::default()); - let (mut adc, _) = Adc::new(p.ADC1, delay); + let mut adc = Adc::new(p.ADC1, &mut delay); //adc.enable_vref(); adc.set_resolution(Resolution::EightBit); let mut channel = p.PC0;