rcc: ahb/apb -> hclk/pclk

This commit is contained in:
xoviat 2023-10-15 19:51:35 -05:00
parent 1fc35c753b
commit b24520579a
24 changed files with 145 additions and 139 deletions

View File

@ -58,7 +58,7 @@ rand_core = "0.6.3"
sdio-host = "0.5.0" sdio-host = "0.5.0"
embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true }
critical-section = "1.1" critical-section = "1.1"
stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-7dafe9d8bbc739be48199185f0caa1582b1da3f7" } stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-01a757e40df688efcda23607185640e1c2396ba9" }
vcell = "0.1.3" vcell = "0.1.3"
bxcan = "0.7.0" bxcan = "0.7.0"
nb = "1.0.0" nb = "1.0.0"
@ -76,7 +76,7 @@ critical-section = { version = "1.1", features = ["std"] }
[build-dependencies] [build-dependencies]
proc-macro2 = "1.0.36" proc-macro2 = "1.0.36"
quote = "1.0.15" quote = "1.0.15"
stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-7dafe9d8bbc739be48199185f0caa1582b1da3f7", default-features = false, features = ["metadata"]} stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-01a757e40df688efcda23607185640e1c2396ba9", default-features = false, features = ["metadata"]}
[features] [features]

View File

@ -466,7 +466,13 @@ fn main() {
let ptype = if let Some(reg) = &p.registers { reg.kind } else { "" }; let ptype = if let Some(reg) = &p.registers { reg.kind } else { "" };
let pname = format_ident!("{}", p.name); let pname = format_ident!("{}", p.name);
let clk = format_ident!("{}", rcc.clock.to_ascii_lowercase()); let clk = format_ident!(
"{}",
rcc.clock
.to_ascii_lowercase()
.replace("ahb", "hclk")
.replace("apb", "pclk")
);
let en_reg = format_ident!("{}", en.register.to_ascii_lowercase()); let en_reg = format_ident!("{}", en.register.to_ascii_lowercase());
let set_en_field = format_ident!("set_{}", en.field.to_ascii_lowercase()); let set_en_field = format_ident!("set_{}", en.field.to_ascii_lowercase());
@ -523,7 +529,7 @@ fn main() {
let variant_name = format_ident!("{}", v.name); let variant_name = format_ident!("{}", v.name);
let clock_name = format_ident!("{}", v.name.to_ascii_lowercase()); let clock_name = format_ident!("{}", v.name.to_ascii_lowercase());
if v.name.starts_with("AHB") || v.name.starts_with("APB") || v.name == "SYS" { if v.name.starts_with("HCLK") || v.name.starts_with("PCLK") || v.name == "SYS" {
quote! { quote! {
#enum_name::#variant_name => unsafe { crate::rcc::get_freqs().#clock_name }, #enum_name::#variant_name => unsafe { crate::rcc::get_freqs().#clock_name },
} }

View File

@ -564,7 +564,7 @@ foreach_peripheral!(
#[cfg(any(rcc_h7, rcc_h7rm0433))] #[cfg(any(rcc_h7, rcc_h7rm0433))]
impl crate::rcc::sealed::RccPeripheral for peripherals::$inst { impl crate::rcc::sealed::RccPeripheral for peripherals::$inst {
fn frequency() -> crate::time::Hertz { fn frequency() -> crate::time::Hertz {
critical_section::with(|_| unsafe { crate::rcc::get_freqs().apb1 }) critical_section::with(|_| unsafe { crate::rcc::get_freqs().pclk1 })
} }
fn enable_and_reset_with_cs(_cs: critical_section::CriticalSection) { fn enable_and_reset_with_cs(_cs: critical_section::CriticalSection) {

View File

@ -191,7 +191,7 @@ impl<'d, T: Instance, P: PHY> Ethernet<'d, T, P> {
// TODO MTU size setting not found for v1 ethernet, check if correct // TODO MTU size setting not found for v1 ethernet, check if correct
// NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called // NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called
let hclk = unsafe { crate::rcc::get_freqs() }.ahb1; let hclk = unsafe { crate::rcc::get_freqs() }.hclk1;
let hclk_mhz = hclk.0 / 1_000_000; let hclk_mhz = hclk.0 / 1_000_000;
// Set the MDC clock frequency in the range 1MHz - 2.5MHz // Set the MDC clock frequency in the range 1MHz - 2.5MHz

View File

@ -164,7 +164,7 @@ impl<'d, T: Instance, P: PHY> Ethernet<'d, T, P> {
}); });
// NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called // NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called
let hclk = unsafe { crate::rcc::get_freqs() }.ahb1; let hclk = unsafe { crate::rcc::get_freqs() }.hclk1;
let hclk_mhz = hclk.0 / 1_000_000; let hclk_mhz = hclk.0 / 1_000_000;
// Set the MDC clock frequency in the range 1MHz - 2.5MHz // Set the MDC clock frequency in the range 1MHz - 2.5MHz

View File

@ -106,7 +106,7 @@ impl LsConfig {
pub const fn off() -> Self { pub const fn off() -> Self {
Self { Self {
rtc: RtcClockSource::NOCLOCK, rtc: RtcClockSource::DISABLE,
lsi: false, lsi: false,
lse: None, lse: None,
} }
@ -133,7 +133,7 @@ impl LsConfig {
Some(LSI_FREQ) Some(LSI_FREQ)
} }
RtcClockSource::LSE => Some(self.lse.as_ref().unwrap().frequency), RtcClockSource::LSE => Some(self.lse.as_ref().unwrap().frequency),
RtcClockSource::NOCLOCK => None, RtcClockSource::DISABLE => None,
_ => todo!(), _ => todo!(),
}; };
@ -180,7 +180,7 @@ impl LsConfig {
ok &= reg.rtcsel() == self.rtc; ok &= reg.rtcsel() == self.rtc;
#[cfg(not(rcc_wba))] #[cfg(not(rcc_wba))]
{ {
ok &= reg.rtcen() == (self.rtc != RtcClockSource::NOCLOCK); ok &= reg.rtcen() == (self.rtc != RtcClockSource::DISABLE);
} }
ok &= reg.lseon() == lse_en; ok &= reg.lseon() == lse_en;
ok &= reg.lsebyp() == lse_byp; ok &= reg.lsebyp() == lse_byp;
@ -225,7 +225,7 @@ impl LsConfig {
while !bdcr().read().lserdy() {} while !bdcr().read().lserdy() {}
} }
if self.rtc != RtcClockSource::NOCLOCK { if self.rtc != RtcClockSource::DISABLE {
bdcr().modify(|w| { bdcr().modify(|w| {
#[cfg(any(rtc_v2h7, rtc_v2l4, rtc_v2wb, rtc_v3, rtc_v3u5))] #[cfg(any(rtc_v2h7, rtc_v2l4, rtc_v2wb, rtc_v3, rtc_v3u5))]
assert!(!w.lsecsson(), "RTC is not compatible with LSE CSS, yet."); assert!(!w.lsecsson(), "RTC is not compatible with LSE CSS, yet.");

View File

@ -135,9 +135,9 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
apb1: apb_freq, pclk1: apb_freq,
apb1_tim: apb_tim_freq, pclk1_tim: apb_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -162,11 +162,11 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: Hertz(real_sysclk), sys: Hertz(real_sysclk),
apb1: Hertz(pclk), pclk1: Hertz(pclk),
apb2: Hertz(pclk), pclk2: Hertz(pclk),
apb1_tim: Hertz(pclk * timer_mul), pclk1_tim: Hertz(pclk * timer_mul),
apb2_tim: Hertz(pclk * timer_mul), pclk2_tim: Hertz(pclk * timer_mul),
ahb1: Hertz(hclk), hclk1: Hertz(hclk),
rtc, rtc,
}); });
} }

View File

@ -180,11 +180,11 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: Hertz(real_sysclk), sys: Hertz(real_sysclk),
apb1: Hertz(pclk1), pclk1: Hertz(pclk1),
apb2: Hertz(pclk2), pclk2: Hertz(pclk2),
apb1_tim: Hertz(pclk1 * timer_mul1), pclk1_tim: Hertz(pclk1 * timer_mul1),
apb2_tim: Hertz(pclk2 * timer_mul2), pclk2_tim: Hertz(pclk2 * timer_mul2),
ahb1: Hertz(hclk), hclk1: Hertz(hclk),
adc: Some(Hertz(adcclk)), adc: Some(Hertz(adcclk)),
rtc, rtc,
}); });

View File

@ -307,13 +307,13 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
ahb3: ahb_freq, hclk3: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
pll1_q: Some(pll_clocks.pll48_freq), pll1_q: Some(pll_clocks.pll48_freq),
rtc, rtc,
}); });

View File

@ -281,11 +281,11 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sysclk, sys: sysclk,
apb1: pclk1, pclk1: pclk1,
apb2: pclk2, pclk2: pclk2,
apb1_tim: pclk1 * timer_mul1, pclk1_tim: pclk1 * timer_mul1,
apb2_tim: pclk2 * timer_mul2, pclk2_tim: pclk2 * timer_mul2,
ahb1: hclk, hclk1: hclk,
#[cfg(rcc_f3)] #[cfg(rcc_f3)]
adc: adc, adc: adc,
#[cfg(all(rcc_f3, adc3_common))] #[cfg(all(rcc_f3, adc3_common))]

View File

@ -340,15 +340,15 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: Hertz(sysclk), sys: Hertz(sysclk),
apb1: Hertz(pclk1), pclk1: Hertz(pclk1),
apb2: Hertz(pclk2), pclk2: Hertz(pclk2),
apb1_tim: Hertz(pclk1 * timer_mul1), pclk1_tim: Hertz(pclk1 * timer_mul1),
apb2_tim: Hertz(pclk2 * timer_mul2), pclk2_tim: Hertz(pclk2 * timer_mul2),
ahb1: Hertz(hclk), hclk1: Hertz(hclk),
ahb2: Hertz(hclk), hclk2: Hertz(hclk),
ahb3: Hertz(hclk), hclk3: Hertz(hclk),
pll1_q: plls.pll48clk.map(Hertz), pll1_q: plls.pll48clk.map(Hertz),

View File

@ -259,15 +259,15 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: Hertz(sysclk), sys: Hertz(sysclk),
apb1: Hertz(pclk1), pclk1: Hertz(pclk1),
apb2: Hertz(pclk2), pclk2: Hertz(pclk2),
apb1_tim: Hertz(pclk1 * timer_mul1), pclk1_tim: Hertz(pclk1 * timer_mul1),
apb2_tim: Hertz(pclk2 * timer_mul2), pclk2_tim: Hertz(pclk2 * timer_mul2),
ahb1: Hertz(hclk), hclk1: Hertz(hclk),
ahb2: Hertz(hclk), hclk2: Hertz(hclk),
ahb3: Hertz(hclk), hclk3: Hertz(hclk),
pll1_q: plls.pll48clk.map(Hertz), pll1_q: plls.pll48clk.map(Hertz),

View File

@ -89,7 +89,7 @@ impl Default for Config {
impl PllConfig { impl PllConfig {
pub(crate) fn init(self) -> Hertz { pub(crate) fn init(self) -> Hertz {
let (src, input_freq) = match self.source { let (src, input_freq) = match self.source {
PllSrc::HSI16 => (vals::Pllsrc::HSI16, HSI_FREQ), PllSrc::HSI16 => (vals::Pllsrc::HSI, HSI_FREQ),
PllSrc::HSE(freq) => (vals::Pllsrc::HSE, freq), PllSrc::HSE(freq) => (vals::Pllsrc::HSE, freq),
}; };
@ -186,7 +186,7 @@ pub(crate) unsafe fn init(config: Config) {
} }
ClockSrc::PLL(pll) => { ClockSrc::PLL(pll) => {
let freq = pll.init(); let freq = pll.init();
(freq, Sw::PLLRCLK) (freq, Sw::PLL1_R)
} }
ClockSrc::LSI => { ClockSrc::LSI => {
// Enable LSI // Enable LSI
@ -275,9 +275,9 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
apb1: apb_freq, pclk1: apb_freq,
apb1_tim: apb_tim_freq, pclk1_tim: apb_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -33,7 +33,7 @@ impl Into<Pllsrc> for PllSrc {
fn into(self) -> Pllsrc { fn into(self) -> Pllsrc {
match self { match self {
PllSrc::HSE(..) => Pllsrc::HSE, PllSrc::HSE(..) => Pllsrc::HSE,
PllSrc::HSI16 => Pllsrc::HSI16, PllSrc::HSI16 => Pllsrc::HSI,
} }
} }
} }
@ -201,7 +201,7 @@ pub(crate) unsafe fn init(config: Config) {
RCC.cr().write(|w| w.set_hsion(true)); RCC.cr().write(|w| w.set_hsion(true));
while !RCC.cr().read().hsirdy() {} while !RCC.cr().read().hsirdy() {}
(HSI_FREQ, Sw::HSI16) (HSI_FREQ, Sw::HSI)
} }
ClockSrc::HSE(freq) => { ClockSrc::HSE(freq) => {
// Enable HSE // Enable HSE
@ -249,7 +249,7 @@ pub(crate) unsafe fn init(config: Config) {
} }
} }
(Hertz(freq), Sw::PLLRCLK) (Hertz(freq), Sw::PLL1_R)
} }
}; };
@ -286,7 +286,7 @@ pub(crate) unsafe fn init(config: Config) {
let pllq_freq = pll_freq.as_ref().and_then(|f| f.pll_q); let pllq_freq = pll_freq.as_ref().and_then(|f| f.pll_q);
assert!(pllq_freq.is_some() && pllq_freq.unwrap().0 == 48_000_000); assert!(pllq_freq.is_some() && pllq_freq.unwrap().0 == 48_000_000);
crate::pac::rcc::vals::Clk48sel::PLLQCLK crate::pac::rcc::vals::Clk48sel::PLL1_Q
} }
Clock48MhzSrc::Hsi48(crs_config) => { Clock48MhzSrc::Hsi48(crs_config) => {
// Enable HSI48 // Enable HSI48
@ -348,12 +348,12 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
adc: adc12_ck, adc: adc12_ck,
adc34: adc345_ck, adc34: adc345_ck,
pll1_p: None, pll1_p: None,

View File

@ -387,7 +387,7 @@ pub(crate) unsafe fn init(config: Config) {
Sysclk::HSI => (unwrap!(hsi), Sw::HSI), Sysclk::HSI => (unwrap!(hsi), Sw::HSI),
Sysclk::HSE => (unwrap!(hse), Sw::HSE), Sysclk::HSE => (unwrap!(hse), Sw::HSE),
Sysclk::CSI => (unwrap!(csi), Sw::CSI), Sysclk::CSI => (unwrap!(csi), Sw::CSI),
Sysclk::Pll1P => (unwrap!(pll1.p), Sw::PLL1), Sysclk::Pll1P => (unwrap!(pll1.p), Sw::PLL1_P),
}; };
// Check limits. // Check limits.
@ -445,7 +445,7 @@ pub(crate) unsafe fn init(config: Config) {
}; };
#[cfg(stm32h5)] #[cfg(stm32h5)]
let adc = match config.adc_clock_source { let adc = match config.adc_clock_source {
AdcClockSource::HCLK => Some(hclk), AdcClockSource::HCLK1 => Some(hclk),
AdcClockSource::SYS => Some(sys), AdcClockSource::SYS => Some(sys),
AdcClockSource::PLL2_R => pll2.r, AdcClockSource::PLL2_R => pll2.r,
AdcClockSource::HSE => hse, AdcClockSource::HSE => hse,
@ -524,19 +524,19 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys, sys,
ahb1: hclk, hclk1: hclk,
ahb2: hclk, hclk2: hclk,
ahb3: hclk, hclk3: hclk,
ahb4: hclk, hclk4: hclk,
apb1, pclk1: apb1,
apb2, pclk2: apb2,
apb3, pclk3: apb3,
#[cfg(stm32h7)] #[cfg(stm32h7)]
apb4, pclk4: apb4,
#[cfg(stm32h5)] #[cfg(stm32h5)]
apb4: Hertz(1), pclk4: Hertz(1),
apb1_tim, pclk1_tim: apb1_tim,
apb2_tim, pclk2_tim: apb2_tim,
adc, adc,
rtc, rtc,

View File

@ -209,11 +209,11 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -329,13 +329,13 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
ahb3: ahb_freq, hclk3: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -261,13 +261,13 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
ahb3: ahb_freq, hclk3: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -48,21 +48,21 @@ pub struct Clocks {
pub sys: Hertz, pub sys: Hertz,
// APB // APB
pub apb1: Hertz, pub pclk1: Hertz,
pub apb1_tim: Hertz, pub pclk1_tim: Hertz,
#[cfg(not(any(rcc_c0, rcc_g0)))] #[cfg(not(any(rcc_c0, rcc_g0)))]
pub apb2: Hertz, pub pclk2: Hertz,
#[cfg(not(any(rcc_c0, rcc_g0)))] #[cfg(not(any(rcc_c0, rcc_g0)))]
pub apb2_tim: Hertz, pub pclk2_tim: Hertz,
#[cfg(any(rcc_wl5, rcc_wle, rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_u5))] #[cfg(any(rcc_wl5, rcc_wle, rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_u5))]
pub apb3: Hertz, pub pclk3: Hertz,
#[cfg(any(rcc_h7, rcc_h7rm0433, rcc_h7ab, stm32h5))] #[cfg(any(rcc_h7, rcc_h7rm0433, rcc_h7ab, stm32h5))]
pub apb4: Hertz, pub pclk4: Hertz,
#[cfg(any(rcc_wba))] #[cfg(any(rcc_wba))]
pub apb7: Hertz, pub pclk7: Hertz,
// AHB // AHB
pub ahb1: Hertz, pub hclk1: Hertz,
#[cfg(any( #[cfg(any(
rcc_l4, rcc_l4,
rcc_l5, rcc_l5,
@ -82,7 +82,7 @@ pub struct Clocks {
rcc_wl5, rcc_wl5,
rcc_wle rcc_wle
))] ))]
pub ahb2: Hertz, pub hclk2: Hertz,
#[cfg(any( #[cfg(any(
rcc_l4, rcc_l4,
rcc_l5, rcc_l5,
@ -100,9 +100,9 @@ pub struct Clocks {
rcc_wl5, rcc_wl5,
rcc_wle rcc_wle
))] ))]
pub ahb3: Hertz, pub hclk3: Hertz,
#[cfg(any(rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_wba))] #[cfg(any(rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_wba))]
pub ahb4: Hertz, pub hclk4: Hertz,
#[cfg(all(rcc_f4, not(stm32f410)))] #[cfg(all(rcc_f4, not(stm32f410)))]
pub plli2s1_q: Option<Hertz>, pub plli2s1_q: Option<Hertz>,

View File

@ -436,14 +436,14 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
ahb3: ahb_freq, hclk3: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb3: apb3_freq, pclk3: apb3_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -236,13 +236,13 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb1_clk, hclk1: ahb1_clk,
ahb2: ahb2_clk, hclk2: ahb2_clk,
ahb3: ahb3_clk, hclk3: ahb3_clk,
apb1: apb1_clk, pclk1: apb1_clk,
apb2: apb2_clk, pclk2: apb2_clk,
apb1_tim: apb1_tim_clk, pclk1_tim: apb1_tim_clk,
apb2_tim: apb2_tim_clk, pclk2_tim: apb2_tim_clk,
rtc, rtc,
}) })
} }

View File

@ -142,14 +142,14 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
ahb4: ahb_freq, hclk4: ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb7: apb7_freq, pclk7: apb7_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
rtc, rtc,
}); });
} }

View File

@ -145,14 +145,14 @@ pub(crate) unsafe fn init(config: Config) {
set_freqs(Clocks { set_freqs(Clocks {
sys: sys_clk, sys: sys_clk,
ahb1: ahb_freq, hclk1: ahb_freq,
ahb2: ahb_freq, hclk2: ahb_freq,
ahb3: shd_ahb_freq, hclk3: shd_ahb_freq,
apb1: apb1_freq, pclk1: apb1_freq,
apb2: apb2_freq, pclk2: apb2_freq,
apb3: shd_ahb_freq, pclk3: shd_ahb_freq,
apb1_tim: apb1_tim_freq, pclk1_tim: apb1_tim_freq,
apb2_tim: apb2_tim_freq, pclk2_tim: apb2_tim_freq,
rtc, rtc,
}); });
} }