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:
commit
2e6c550355
@ -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 = [
|
||||||
|
21
embassy-stm32-examples/.cargo/config.toml
Normal file
21
embassy-stm32-examples/.cargo/config.toml
Normal 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"
|
7
embassy-stm32-examples/memory.x
Normal file
7
embassy-stm32-examples/memory.x
Normal 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
|
||||||
|
}
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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::*;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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::*;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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};
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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::*;
|
||||||
|
@ -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();
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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::*;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user