From 94b232cf88b85a5c68817524c999c7308875b069 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 4 Mar 2022 17:41:27 +0100 Subject: [PATCH 1/8] docs: prevent inline doc spam for reexports. --- embassy-nrf/src/chips/nrf5340_app.rs | 3 +++ embassy-nrf/src/chips/nrf5340_net.rs | 1 + embassy-nrf/src/chips/nrf9160.rs | 3 +++ embassy-stm32/src/can/bxcan.rs | 1 + 4 files changed, 8 insertions(+) diff --git a/embassy-nrf/src/chips/nrf5340_app.rs b/embassy-nrf/src/chips/nrf5340_app.rs index 4fcb742e8..ae6887b3c 100644 --- a/embassy-nrf/src/chips/nrf5340_app.rs +++ b/embassy-nrf/src/chips/nrf5340_app.rs @@ -4,6 +4,7 @@ pub mod pac { // The nRF5340 has a secure and non-secure (NS) mode. // To avoid cfg spam, we remove _ns or _s suffixes here. + #[doc(no_inline)] pub use nrf5340_app_pac::{ interrupt, Interrupt, @@ -57,6 +58,7 @@ pub mod pac { }; #[cfg(feature = "nrf5340-app-ns")] + #[doc(no_inline)] pub use nrf5340_app_pac::{ CLOCK_NS as CLOCK, COMP_NS as COMP, @@ -127,6 +129,7 @@ pub mod pac { }; #[cfg(feature = "nrf5340-app-s")] + #[doc(no_inline)] pub use nrf5340_app_pac::{ CACHEDATA_S as CACHEDATA, CACHEINFO_S as CACHEINFO, diff --git a/embassy-nrf/src/chips/nrf5340_net.rs b/embassy-nrf/src/chips/nrf5340_net.rs index ea09f8d78..e2ae97a9d 100644 --- a/embassy-nrf/src/chips/nrf5340_net.rs +++ b/embassy-nrf/src/chips/nrf5340_net.rs @@ -4,6 +4,7 @@ pub mod pac { // The nRF5340 has a secure and non-secure (NS) mode. // To avoid cfg spam, we remove _ns or _s suffixes here. + #[doc(no_inline)] pub use nrf5340_net_pac::{ interrupt, Interrupt, diff --git a/embassy-nrf/src/chips/nrf9160.rs b/embassy-nrf/src/chips/nrf9160.rs index 51f6cb804..b8caa1264 100644 --- a/embassy-nrf/src/chips/nrf9160.rs +++ b/embassy-nrf/src/chips/nrf9160.rs @@ -4,6 +4,7 @@ pub mod pac { // The nRF9160 has a secure and non-secure (NS) mode. // To avoid cfg spam, we remove _ns or _s suffixes here. + #[doc(no_inline)] pub use nrf9160_pac::{ interrupt, Interrupt, @@ -42,6 +43,7 @@ pub mod pac { }; #[cfg(feature = "nrf9160-ns")] + #[doc(no_inline)] pub use nrf9160_pac::{ CLOCK_NS as CLOCK, DPPIC_NS as DPPIC, @@ -96,6 +98,7 @@ pub mod pac { }; #[cfg(feature = "nrf9160-s")] + #[doc(no_inline)] pub use nrf9160_pac::{ CC_HOST_RGF_S as CC_HOST_RGF, CLOCK_S as CLOCK, diff --git a/embassy-stm32/src/can/bxcan.rs b/embassy-stm32/src/can/bxcan.rs index c52d737bc..34182206f 100644 --- a/embassy-stm32/src/can/bxcan.rs +++ b/embassy-stm32/src/can/bxcan.rs @@ -7,6 +7,7 @@ use embassy_hal_common::unborrow; use crate::gpio::sealed::AFType; use crate::{peripherals, rcc::RccPeripheral}; +#[doc(no_inline)] pub use bxcan::*; pub struct Can<'d, T: Instance + bxcan::Instance> { From 53d9a0b5162220298dc7d2287917491b41d261b4 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 4 Mar 2022 17:42:38 +0100 Subject: [PATCH 2/8] stm32: exclude spammy files from docs by prefixing with `_`. These files end up containing chip-specific info, so they deduplicate really badly when building docs for all 1200 chips. The doc generator removes files starting with `_`. --- embassy-stm32/build.rs | 6 +++--- embassy-stm32/src/dma/bdma.rs | 4 ++-- embassy-stm32/src/dma/dma.rs | 4 ++-- embassy-stm32/src/dma/dmamux.rs | 2 +- embassy-stm32/src/gpio.rs | 2 +- embassy-stm32/src/interrupt.rs | 2 +- embassy-stm32/src/lib.rs | 9 ++++----- 7 files changed, 14 insertions(+), 15 deletions(-) diff --git a/embassy-stm32/build.rs b/embassy-stm32/build.rs index 737b62476..38413acbd 100644 --- a/embassy-stm32/build.rs +++ b/embassy-stm32/build.rs @@ -646,13 +646,13 @@ fn main() { make_table(&mut m, "foreach_dma_channel", &dma_channels_table); let out_dir = &PathBuf::from(env::var_os("OUT_DIR").unwrap()); - let out_file = out_dir.join("macros.rs").to_string_lossy().to_string(); + let out_file = out_dir.join("_macros.rs").to_string_lossy().to_string(); fs::write(out_file, m).unwrap(); // ======== // Write generated.rs - let out_file = out_dir.join("generated.rs").to_string_lossy().to_string(); + let out_file = out_dir.join("_generated.rs").to_string_lossy().to_string(); fs::write(out_file, g.to_string()).unwrap(); // ======== @@ -773,7 +773,7 @@ impl IteratorExt for T { fn make_table(out: &mut String, name: &str, data: &Vec>) { write!( out, - "#[macro_export] + " macro_rules! {} {{ ($($pat:tt => $code:tt;)*) => {{ macro_rules! __{}_inner {{ diff --git a/embassy-stm32/src/dma/bdma.rs b/embassy-stm32/src/dma/bdma.rs index 4fafe7dfa..105bea50e 100644 --- a/embassy-stm32/src/dma/bdma.rs +++ b/embassy-stm32/src/dma/bdma.rs @@ -6,8 +6,8 @@ use core::task::Waker; use embassy::interrupt::{Interrupt, InterruptExt}; use embassy::waitqueue::AtomicWaker; +use crate::_generated::BDMA_CHANNEL_COUNT; use crate::dma::Request; -use crate::generated::BDMA_CHANNEL_COUNT; use crate::pac; use crate::pac::bdma::vals; @@ -65,7 +65,7 @@ pub(crate) unsafe fn init() { crate::interrupt::$irq::steal().enable(); }; } - crate::generated::init_bdma(); + crate::_generated::init_bdma(); } foreach_dma_channel! { diff --git a/embassy-stm32/src/dma/dma.rs b/embassy-stm32/src/dma/dma.rs index fd1732fbb..95a6eea2f 100644 --- a/embassy-stm32/src/dma/dma.rs +++ b/embassy-stm32/src/dma/dma.rs @@ -4,7 +4,7 @@ use core::task::Waker; use embassy::interrupt::{Interrupt, InterruptExt}; use embassy::waitqueue::AtomicWaker; -use crate::generated::DMA_CHANNEL_COUNT; +use crate::_generated::DMA_CHANNEL_COUNT; use crate::interrupt; use crate::pac; use crate::pac::dma::{regs, vals}; @@ -59,7 +59,7 @@ pub(crate) unsafe fn init() { interrupt::$irq::steal().enable(); }; } - crate::generated::init_dma(); + crate::_generated::init_dma(); } foreach_dma_channel! { diff --git a/embassy-stm32/src/dma/dmamux.rs b/embassy-stm32/src/dma/dmamux.rs index 628f496be..c45bebe26 100644 --- a/embassy-stm32/src/dma/dmamux.rs +++ b/embassy-stm32/src/dma/dmamux.rs @@ -49,5 +49,5 @@ foreach_dma_channel! { /// safety: must be called only once pub(crate) unsafe fn init() { - crate::generated::init_dmamux(); + crate::_generated::init_dmamux(); } diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs index 4837c4120..3e108736b 100644 --- a/embassy-stm32/src/gpio.rs +++ b/embassy-stm32/src/gpio.rs @@ -574,7 +574,7 @@ foreach_pin!( ); pub(crate) unsafe fn init() { - crate::generated::init_gpio(); + crate::_generated::init_gpio(); } mod eh02 { diff --git a/embassy-stm32/src/interrupt.rs b/embassy-stm32/src/interrupt.rs index c757b790c..714dcc4ca 100644 --- a/embassy-stm32/src/interrupt.rs +++ b/embassy-stm32/src/interrupt.rs @@ -3,4 +3,4 @@ pub use critical_section::CriticalSection; pub use embassy::interrupt::{take, Interrupt}; pub use embassy_hal_common::interrupt::Priority4 as Priority; -pub use crate::generated::interrupt::*; +pub use crate::_generated::interrupt::*; diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs index 5e8d6dd86..45b8e1800 100644 --- a/embassy-stm32/src/lib.rs +++ b/embassy-stm32/src/lib.rs @@ -11,7 +11,7 @@ pub(crate) use stm32_metapac as pac; // This must go FIRST so that all the other modules see its macros. pub mod fmt; -include!(concat!(env!("OUT_DIR"), "/macros.rs")); +include!(concat!(env!("OUT_DIR"), "/_macros.rs")); // Utilities pub mod interrupt; @@ -63,16 +63,15 @@ pub mod usb_otg; pub mod subghz; // This must go last, so that it sees all the impl_foo! macros defined earlier. -pub(crate) mod generated { - +pub(crate) mod _generated { #![allow(dead_code)] #![allow(unused_imports)] #![allow(non_snake_case)] - include!(concat!(env!("OUT_DIR"), "/generated.rs")); + include!(concat!(env!("OUT_DIR"), "/_generated.rs")); } +pub use _generated::{peripherals, Peripherals}; pub use embassy_macros::interrupt; -pub use generated::{peripherals, Peripherals}; #[non_exhaustive] pub struct Config { From 7b2a255872fb71e1fee107a0dcd8d56188b219cf Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 4 Mar 2022 17:43:50 +0100 Subject: [PATCH 3/8] stm32-metapac: add doc(html_no_source). The source files are unreadable because they're not fmt'd, and they take up a LOT of space when generating docs for all 1200 chips because they don't deduplicate. --- stm32-metapac/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/stm32-metapac/src/lib.rs b/stm32-metapac/src/lib.rs index 9cdc5e0b4..4eab29861 100644 --- a/stm32-metapac/src/lib.rs +++ b/stm32-metapac/src/lib.rs @@ -2,6 +2,7 @@ #![allow(non_snake_case)] #![allow(unused)] #![allow(non_camel_case_types)] +#![doc(html_no_source)] pub mod common; From 44096358a2f896d40769380d72509e38925a3024 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 4 Mar 2022 17:45:01 +0100 Subject: [PATCH 4/8] docs: add metadata.embassy_docs to cargo tomls. --- embassy-nrf/Cargo.toml | 8 ++++++++ embassy-stm32/Cargo.toml | 23 +++++++++++++++++++++++ embassy/Cargo.toml | 14 ++++++++++++++ stm32-metapac/Cargo.toml | 21 +++++++++++++++++++++ 4 files changed, 66 insertions(+) diff --git a/embassy-nrf/Cargo.toml b/embassy-nrf/Cargo.toml index aa377580f..d8bac3227 100644 --- a/embassy-nrf/Cargo.toml +++ b/embassy-nrf/Cargo.toml @@ -4,6 +4,14 @@ version = "0.1.0" authors = ["Dario Nieuwenhuis "] edition = "2018" +[package.metadata.embassy_docs] +features = ["nightly", "defmt", "unstable-pac", "unstable-traits", "gpiote", "time-driver-rtc1"] +flavors = [ + { regex_feature = "nrf52.*", target = "thumbv7em-none-eabihf" }, + { regex_feature = "nrf53.*", target = "thumbv8m.main-none-eabihf" }, + { regex_feature = "nrf91.*", target = "thumbv8m.main-none-eabihf" }, +] + [features] # Enable nightly-only features diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml index e45dfbacd..116bba2ac 100644 --- a/embassy-stm32/Cargo.toml +++ b/embassy-stm32/Cargo.toml @@ -5,6 +5,29 @@ authors = ["Dario Nieuwenhuis "] edition = "2018" resolver = "2" +[package.metadata.embassy_docs] +# TODO: sdmmc +# TODO: net +# TODO: subghz +features = ["nightly", "defmt", "unstable-pac", "unstable-traits", "exti", "time-driver-any"] +flavors = [ + { regex_feature = "stm32f0.*", target = "thumbv6m-none-eabi" }, + { regex_feature = "stm32f1.*", target = "thumbv7m-none-eabi" }, + { regex_feature = "stm32f2.*", target = "thumbv7m-none-eabi" }, + { regex_feature = "stm32f3.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32f42.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32f7.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32g0.*", target = "thumbv6m-none-eabi" }, + { regex_feature = "stm32g4.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32h7.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32l0.*", target = "thumbv6m-none-eabi" }, + { regex_feature = "stm32l1.*", target = "thumbv7m-none-eabi" }, + { regex_feature = "stm32l4.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32u5.*", target = "thumbv8m.main-none-eabihf" }, + { regex_feature = "stm32wb.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32wl.*", target = "thumbv7em-none-eabi" }, +] + [dependencies] embassy = { version = "0.1.0", path = "../embassy" } embassy-macros = { version = "0.1.0", path = "../embassy-macros", features = ["stm32"] } diff --git a/embassy/Cargo.toml b/embassy/Cargo.toml index 9a5467c6f..9b7e72078 100644 --- a/embassy/Cargo.toml +++ b/embassy/Cargo.toml @@ -5,6 +5,20 @@ authors = ["Dario Nieuwenhuis "] edition = "2018" resolver = "2" +[package.metadata.embassy_docs] +features = ["nightly", "defmt", "unstable-traits", "time", "time-tick-1mhz"] +flavors = [ + { name = "std", target = "x86_64-unknown-linux-gnu", features = ["std"] }, + { name = "wasm", target = "wasm32-unknown-unknown", features = ["wasm"] }, + { name = "thumbv6m-none-eabi", target = "thumbv6m-none-eabi", features = [] }, + { name = "thumbv7m-none-eabi", target = "thumbv7m-none-eabi", features = [] }, + { name = "thumbv7em-none-eabi", target = "thumbv7em-none-eabi", features = [] }, + { name = "thumbv7em-none-eabihf", target = "thumbv7em-none-eabihf", features = [] }, + { name = "thumbv8m.base-none-eabi", target = "thumbv8m.base-none-eabi", features = [] }, + { name = "thumbv8m.main-none-eabi", target = "thumbv8m.main-none-eabi", features = [] }, + { name = "thumbv8m.main-none-eabihf", target = "thumbv8m.main-none-eabihf", features = [] }, +] + [features] default = [] std = ["futures/std", "time", "time-tick-1mhz", "embassy-macros/std"] diff --git a/stm32-metapac/Cargo.toml b/stm32-metapac/Cargo.toml index c994797b7..98249ec6a 100644 --- a/stm32-metapac/Cargo.toml +++ b/stm32-metapac/Cargo.toml @@ -19,6 +19,27 @@ features = ["stm32h755zi-cm7", "pac", "metadata"] default-target = "thumbv7em-none-eabihf" targets = [] +[package.metadata.embassy_docs] +features = ["pac", "metadata"] +flavors = [ + { regex_feature = "stm32f0.*", target = "thumbv6m-none-eabi" }, + { regex_feature = "stm32f1.*", target = "thumbv7m-none-eabi" }, + { regex_feature = "stm32f2.*", target = "thumbv7m-none-eabi" }, + { regex_feature = "stm32f3.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32f4.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32f7.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32g0.*", target = "thumbv6m-none-eabi" }, + { regex_feature = "stm32g4.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32h7.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32l0.*", target = "thumbv6m-none-eabi" }, + { regex_feature = "stm32l1.*", target = "thumbv7m-none-eabi" }, + { regex_feature = "stm32l4.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32l5.*", target = "thumbv8m.main-none-eabihf" }, + { regex_feature = "stm32u5.*", target = "thumbv8m.main-none-eabihf" }, + { regex_feature = "stm32wb.*", target = "thumbv7em-none-eabi" }, + { regex_feature = "stm32wl.*", target = "thumbv7em-none-eabi" }, +] + [dependencies] cortex-m = "0.7.3" cortex-m-rt = { version = ">=0.6.15,<0.8", optional = true } From 265cd1115b5c2068452560054c28657cab060b4f Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 4 Mar 2022 18:03:31 +0100 Subject: [PATCH 5/8] stm32: allow unused macrotables. --- embassy-stm32/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/embassy-stm32/build.rs b/embassy-stm32/build.rs index 38413acbd..02d47da81 100644 --- a/embassy-stm32/build.rs +++ b/embassy-stm32/build.rs @@ -773,7 +773,7 @@ impl IteratorExt for T { fn make_table(out: &mut String, name: &str, data: &Vec>) { write!( out, - " + "#[allow(unused)] macro_rules! {} {{ ($($pat:tt => $code:tt;)*) => {{ macro_rules! __{}_inner {{ From 047ff9a2f2b1f0c4b24fe093fe94fbb5730905e4 Mon Sep 17 00:00:00 2001 From: "Matthew W. Samsonoff" Date: Wed, 2 Mar 2022 18:35:53 -0500 Subject: [PATCH 6/8] Use new stm32-data registers and fix AHB clock calculation The original code for calculating the AHB clock did not account for the gap in prescaler values (32 is not an available value.) The bit shifting and math has been replaced by a `match`. --- embassy-stm32/src/rcc/g0.rs | 87 ++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 41 deletions(-) diff --git a/embassy-stm32/src/rcc/g0.rs b/embassy-stm32/src/rcc/g0.rs index 71d44fd3c..b78cfdb4c 100644 --- a/embassy-stm32/src/rcc/g0.rs +++ b/embassy-stm32/src/rcc/g0.rs @@ -1,4 +1,5 @@ use crate::pac::{PWR, RCC}; +use crate::pac::rcc::vals::{Hsidiv, Hpre, Ppre, Sw}; use crate::rcc::{set_freqs, Clocks}; use crate::time::Hertz; use crate::time::U32Ext; @@ -29,17 +30,17 @@ pub enum HSI16Prescaler { Div128, } -impl Into for HSI16Prescaler { - fn into(self) -> u8 { +impl Into for HSI16Prescaler { + fn into(self) -> Hsidiv { match self { - HSI16Prescaler::NotDivided => 0x00, - HSI16Prescaler::Div2 => 0x01, - HSI16Prescaler::Div4 => 0x02, - HSI16Prescaler::Div8 => 0x03, - HSI16Prescaler::Div16 => 0x04, - HSI16Prescaler::Div32 => 0x05, - HSI16Prescaler::Div64 => 0x06, - HSI16Prescaler::Div128 => 0x07, + HSI16Prescaler::NotDivided => Hsidiv::DIV1, + HSI16Prescaler::Div2 => Hsidiv::DIV2, + HSI16Prescaler::Div4 => Hsidiv::DIV4, + HSI16Prescaler::Div8 => Hsidiv::DIV8, + HSI16Prescaler::Div16 => Hsidiv::DIV16, + HSI16Prescaler::Div32 => Hsidiv::DIV32, + HSI16Prescaler::Div64 => Hsidiv::DIV64, + HSI16Prescaler::Div128 => Hsidiv::DIV128, } } } @@ -68,30 +69,30 @@ pub enum APBPrescaler { Div16, } -impl Into for APBPrescaler { - fn into(self) -> u8 { +impl Into for APBPrescaler { + fn into(self) -> Ppre { match self { - APBPrescaler::NotDivided => 1, - APBPrescaler::Div2 => 0x04, - APBPrescaler::Div4 => 0x05, - APBPrescaler::Div8 => 0x06, - APBPrescaler::Div16 => 0x07, + APBPrescaler::NotDivided => Ppre::DIV1, + APBPrescaler::Div2 => Ppre::DIV2, + APBPrescaler::Div4 => Ppre::DIV4, + APBPrescaler::Div8 => Ppre::DIV8, + APBPrescaler::Div16 => Ppre::DIV16, } } } -impl Into for AHBPrescaler { - fn into(self) -> u8 { +impl Into for AHBPrescaler { + fn into(self) -> Hpre { match self { - AHBPrescaler::NotDivided => 1, - AHBPrescaler::Div2 => 0x08, - AHBPrescaler::Div4 => 0x09, - AHBPrescaler::Div8 => 0x0a, - AHBPrescaler::Div16 => 0x0b, - AHBPrescaler::Div64 => 0x0c, - AHBPrescaler::Div128 => 0x0d, - AHBPrescaler::Div256 => 0x0e, - AHBPrescaler::Div512 => 0x0f, + AHBPrescaler::NotDivided => Hpre::DIV1, + AHBPrescaler::Div2 => Hpre::DIV2, + AHBPrescaler::Div4 => Hpre::DIV4, + AHBPrescaler::Div8 => Hpre::DIV8, + AHBPrescaler::Div16 => Hpre::DIV16, + AHBPrescaler::Div64 => Hpre::DIV64, + AHBPrescaler::Div128 => Hpre::DIV128, + AHBPrescaler::Div256 => Hpre::DIV256, + AHBPrescaler::Div512 => Hpre::DIV512, } } } @@ -120,27 +121,27 @@ pub(crate) unsafe fn init(config: Config) { let (sys_clk, sw) = match config.mux { ClockSrc::HSI16(div) => { // Enable HSI16 - let div: u8 = div.into(); + let div: Hsidiv = div.into(); RCC.cr().write(|w| { w.set_hsidiv(div); w.set_hsion(true) }); while !RCC.cr().read().hsirdy() {} - (HSI_FREQ >> div, 0x00) + (HSI_FREQ >> div.0, Sw::HSI) } ClockSrc::HSE(freq) => { // Enable HSE RCC.cr().write(|w| w.set_hseon(true)); while !RCC.cr().read().hserdy() {} - (freq.0, 0x01) + (freq.0, Sw::HSE) } ClockSrc::LSI => { // Enable LSI RCC.csr().write(|w| w.set_lsion(true)); while !RCC.csr().read().lsirdy() {} - (LSI_FREQ, 0x03) + (LSI_FREQ, Sw::LSI) } }; @@ -150,20 +151,24 @@ pub(crate) unsafe fn init(config: Config) { w.set_ppre(config.apb_pre.into()); }); - let ahb_freq: u32 = match config.ahb_pre { - AHBPrescaler::NotDivided => sys_clk, - pre => { - let pre: u8 = pre.into(); - let pre = 1 << (pre as u32 - 7); - sys_clk / pre - } + let ahb_div = match config.ahb_pre { + AHBPrescaler::NotDivided => 1, + AHBPrescaler::Div2 => 2, + AHBPrescaler::Div4 => 4, + AHBPrescaler::Div8 => 8, + AHBPrescaler::Div16 => 16, + AHBPrescaler::Div64 => 64, + AHBPrescaler::Div128 => 128, + AHBPrescaler::Div256 => 256, + AHBPrescaler::Div512 => 512, }; + let ahb_freq = sys_clk / ahb_div; let (apb_freq, apb_tim_freq) = match config.apb_pre { APBPrescaler::NotDivided => (ahb_freq, ahb_freq), pre => { - let pre: u8 = pre.into(); - let pre: u8 = 1 << (pre - 3); + let pre: Ppre = pre.into(); + let pre: u8 = 1 << (pre.0 - 3); let freq = ahb_freq / pre as u32; (freq, freq * 2) } From 877fbeb22307ec23abccf84d1049974748c6144c Mon Sep 17 00:00:00 2001 From: "Matthew W. Samsonoff" Date: Wed, 2 Mar 2022 18:56:06 -0500 Subject: [PATCH 7/8] Update stm32-data submodule --- stm32-data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stm32-data b/stm32-data index 5fcc7795c..ad77937fb 160000 --- a/stm32-data +++ b/stm32-data @@ -1 +1 @@ -Subproject commit 5fcc7795c880c7b19bb7b6226cd6d7db0b5cd953 +Subproject commit ad77937fb81628b982d2a674a88d983ec020fec7 From 609975f8211c7256e82898297e020949eb8f9a52 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 4 Mar 2022 18:04:12 +0100 Subject: [PATCH 8/8] rustfmt --- embassy-stm32/src/rcc/g0.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/embassy-stm32/src/rcc/g0.rs b/embassy-stm32/src/rcc/g0.rs index b78cfdb4c..ad5a661d6 100644 --- a/embassy-stm32/src/rcc/g0.rs +++ b/embassy-stm32/src/rcc/g0.rs @@ -1,5 +1,5 @@ +use crate::pac::rcc::vals::{Hpre, Hsidiv, Ppre, Sw}; use crate::pac::{PWR, RCC}; -use crate::pac::rcc::vals::{Hsidiv, Hpre, Ppre, Sw}; use crate::rcc::{set_freqs, Clocks}; use crate::time::Hertz; use crate::time::U32Ext;