Merge pull request #197 from rukai/fix_stm32_warnings

Fix warnings for embassy-stm32 and embassy-stm32-examples and add .cargo/config.toml + memory.x
This commit is contained in:
Dario Nieuwenhuis 2021-05-21 17:25:59 +02:00 committed by GitHub
commit 2e6c550355
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 49 additions and 23 deletions

View File

@ -2,6 +2,7 @@
build-std = ["core"] build-std = ["core"]
[target.'cfg(all(target_arch = "arm", target_os = "none"))'] [target.'cfg(all(target_arch = "arm", target_os = "none"))']
# replace nRF82840_xxAA with your chip as listed in `probe-run --list-chips`
runner = "probe-run --chip nRF52840_xxAA" runner = "probe-run --chip nRF52840_xxAA"
rustflags = [ rustflags = [

View File

@ -0,0 +1,21 @@
[unstable]
build-std = ["core"]
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
# replace STM32F429ZITx with your chip as listed in `probe-run --list-chips`
runner = "probe-run --chip STM32F429ZITx"
rustflags = [
# LLD (shipped with the Rust toolchain) is used as the default linker
"-C", "link-arg=--nmagic",
"-C", "link-arg=-Tlink.x",
"-C", "link-arg=-Tdefmt.x",
# Code-size optimizations.
"-Z", "trap-unreachable=no",
"-C", "inline-threshold=5",
"-C", "no-vectorize-loops",
]
[build]
target = "thumbv7em-none-eabi"

View File

@ -0,0 +1,7 @@
MEMORY
{
/* NOTE 1 K = 1 KiBi = 1024 bytes */
/* These values correspond to the STM32F429ZI */
FLASH : ORIGIN = 0x08000000, LENGTH = 1024K
RAM : ORIGIN = 0x20000000, LENGTH = 256K
}

View File

@ -4,6 +4,7 @@
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)] #![feature(impl_trait_in_bindings)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![allow(incomplete_features)]
#[path = "../example_common.rs"] #[path = "../example_common.rs"]
mod example_common; mod example_common;

View File

@ -4,6 +4,7 @@
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)] #![feature(impl_trait_in_bindings)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![allow(incomplete_features)]
#[path = "../example_common.rs"] #[path = "../example_common.rs"]
mod example_common; mod example_common;

View File

@ -4,13 +4,14 @@
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)] #![feature(impl_trait_in_bindings)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![allow(incomplete_features)]
#[path = "../example_common.rs"] #[path = "../example_common.rs"]
mod example_common; mod example_common;
use embassy::executor::Executor; use embassy::executor::Executor;
use embassy::time::Clock; use embassy::time::Clock;
use embassy::util::Forever; use embassy::util::Forever;
use embassy_stm32::exti::{self, ExtiInput}; use embassy_stm32::exti::ExtiInput;
use embassy_stm32::gpio::{Input, Pull}; use embassy_stm32::gpio::{Input, Pull};
use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge}; use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge};
use example_common::*; use example_common::*;

View File

@ -4,20 +4,20 @@
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)] #![feature(impl_trait_in_bindings)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![allow(incomplete_features)]
#[path = "../example_common.rs"] #[path = "../example_common.rs"]
mod example_common; mod example_common;
use embassy_stm32::gpio::{Input, Level, Output, Pull}; use embassy_stm32::gpio::{Level, Output};
use embedded_hal::digital::v2::{InputPin, OutputPin}; use embedded_hal::digital::v2::OutputPin;
use example_common::*; use example_common::*;
use cortex_m_rt::entry; use cortex_m_rt::entry;
use stm32f4::stm32f429 as pac; use embassy_stm32::spi::{Config, Spi};
//use stm32l4::stm32l4x5 as pac;
use embassy_stm32::spi::{ByteOrder, Config, Spi, MODE_0};
use embassy_stm32::time::Hertz; use embassy_stm32::time::Hertz;
use embedded_hal::blocking::spi::Transfer; use embedded_hal::blocking::spi::Transfer;
use stm32f4::stm32f429 as pac;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
@ -47,7 +47,6 @@ fn main() -> ! {
w w
}); });
let rc = pp.RCC.cfgr.read().sws().bits();
let p = embassy_stm32::init(Default::default()); let p = embassy_stm32::init(Default::default());
let mut spi = Spi::new( let mut spi = Spi::new(
@ -64,9 +63,9 @@ fn main() -> ! {
loop { loop {
let mut buf = [0x0A; 4]; let mut buf = [0x0A; 4];
cs.set_low(); unwrap!(cs.set_low());
spi.transfer(&mut buf); unwrap!(spi.transfer(&mut buf));
cs.set_high(); unwrap!(cs.set_high());
info!("xfer {=[u8]:x}", buf); info!("xfer {=[u8]:x}", buf);
} }
} }

View File

@ -4,6 +4,7 @@
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)] #![feature(impl_trait_in_bindings)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![allow(incomplete_features)]
#[path = "../example_common.rs"] #[path = "../example_common.rs"]
mod example_common; mod example_common;
@ -11,7 +12,6 @@ use cortex_m::prelude::_embedded_hal_blocking_serial_Write;
use embassy::executor::Executor; use embassy::executor::Executor;
use embassy::time::Clock; use embassy::time::Clock;
use embassy::util::Forever; use embassy::util::Forever;
use embassy_stm32::gpio::NoPin;
use embassy_stm32::usart::{Config, Uart}; use embassy_stm32::usart::{Config, Uart};
use example_common::*; use example_common::*;

View File

@ -4,6 +4,7 @@
#![feature(min_type_alias_impl_trait)] #![feature(min_type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)] #![feature(impl_trait_in_bindings)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![allow(incomplete_features)]
#[path = "../example_common.rs"] #[path = "../example_common.rs"]
mod example_common; mod example_common;

View File

@ -3,6 +3,7 @@
#[cfg_attr(feature = "_dma_v1", path = "v1.rs")] #[cfg_attr(feature = "_dma_v1", path = "v1.rs")]
#[cfg_attr(feature = "_dma_v2", path = "v2.rs")] #[cfg_attr(feature = "_dma_v2", path = "v2.rs")]
mod _version; mod _version;
#[allow(unused)]
pub use _version::*; pub use _version::*;
use crate::pac; use crate::pac;

View File

@ -5,7 +5,7 @@ use embassy::util::AtomicWaker;
use futures::future::poll_fn; use futures::future::poll_fn;
use super::*; use super::*;
use crate::fmt::{assert, *}; use crate::fmt::assert;
use crate::interrupt; use crate::interrupt;
use crate::pac; use crate::pac;
use crate::pac::dma::{regs, vals}; use crate::pac::dma::{regs, vals};

View File

@ -11,7 +11,6 @@ use embassy_extras::unsafe_impl_unborrow;
use embedded_hal::digital::v2::InputPin; use embedded_hal::digital::v2::InputPin;
use pac::exti::{regs, vals}; use pac::exti::{regs, vals};
use crate::fmt::*;
use crate::gpio::{AnyPin, Input, Pin as GpioPin}; use crate::gpio::{AnyPin, Input, Pin as GpioPin};
use crate::interrupt; use crate::interrupt;
use crate::pac; use crate::pac;

View File

@ -9,8 +9,6 @@
// This must go FIRST so that all the other modules see its macros. // This must go FIRST so that all the other modules see its macros.
pub mod fmt; pub mod fmt;
use embassy::interrupt::{Interrupt, InterruptExt};
#[cfg(feature = "_dma")] #[cfg(feature = "_dma")]
pub mod dma; pub mod dma;
pub mod exti; pub mod exti;

View File

@ -1,4 +1,3 @@
#![no_std]
#![doc = "Peripheral access API (generated using svd2rust v0.17.0 (22741fa 2021-04-20))"] #![doc = "Peripheral access API (generated using svd2rust v0.17.0 (22741fa 2021-04-20))"]
pub mod syscfg_l4 { pub mod syscfg_l4 {
use crate::generic::*; use crate::generic::*;

View File

@ -8,7 +8,6 @@ use embassy_extras::unborrow;
use futures::future::poll_fn; use futures::future::poll_fn;
use rand_core::{CryptoRng, RngCore}; use rand_core::{CryptoRng, RngCore};
use crate::fmt::*;
use crate::pac; use crate::pac;
pub(crate) static RNG_WAKER: AtomicWaker = AtomicWaker::new(); pub(crate) static RNG_WAKER: AtomicWaker = AtomicWaker::new();

View File

@ -8,6 +8,7 @@ pub use _version::*;
use crate::gpio::Pin; use crate::gpio::Pin;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Error { pub enum Error {
Framing, Framing,
Crc, Crc,

View File

@ -20,7 +20,6 @@ impl WordSize {
} }
pub struct Spi<'d, T: Instance> { pub struct Spi<'d, T: Instance> {
//peri: T,
sck: AnyPin, sck: AnyPin,
mosi: AnyPin, mosi: AnyPin,
miso: AnyPin, miso: AnyPin,
@ -31,7 +30,7 @@ pub struct Spi<'d, T: Instance> {
impl<'d, T: Instance> Spi<'d, T> { impl<'d, T: Instance> Spi<'d, T> {
pub fn new<F>( pub fn new<F>(
pclk: Hertz, pclk: Hertz,
peri: impl Unborrow<Target = T> + 'd, _peri: impl Unborrow<Target = T> + 'd,
sck: impl Unborrow<Target = impl SckPin<T>>, sck: impl Unborrow<Target = impl SckPin<T>>,
mosi: impl Unborrow<Target = impl MosiPin<T>>, mosi: impl Unborrow<Target = impl MosiPin<T>>,
miso: impl Unborrow<Target = impl MisoPin<T>>, miso: impl Unborrow<Target = impl MisoPin<T>>,
@ -41,7 +40,7 @@ impl<'d, T: Instance> Spi<'d, T> {
where where
F: Into<Hertz>, F: Into<Hertz>,
{ {
unborrow!(peri, sck, mosi, miso); unborrow!(sck, mosi, miso);
unsafe { unsafe {
sck.set_as_af(sck.af_num()); sck.set_as_af(sck.af_num());
@ -90,7 +89,6 @@ impl<'d, T: Instance> Spi<'d, T> {
} }
Self { Self {
//peri,
sck, sck,
mosi, mosi,
miso, miso,

View File

@ -3,8 +3,7 @@ use core::marker::PhantomData;
use embassy::util::Unborrow; use embassy::util::Unborrow;
use embassy_extras::unborrow; use embassy_extras::unborrow;
use crate::gpio::{NoPin, Pin}; use crate::pac::usart::{regs, vals};
use crate::pac::usart::{regs, vals, Usart};
use super::*; use super::*;