mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-21 14:22:33 +00:00
Merge pull request #3435 from embassy-rs/octospim-fix
stm32: Fix build for chips with octospim but not octospi2.
This commit is contained in:
commit
34eeaa0787
1
ci.sh
1
ci.sh
@ -166,6 +166,7 @@ cargo batch \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32h562ag,defmt,exti,time-driver-any,time \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32wba50ke,defmt,exti,time-driver-any,time \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32wba55ug,defmt,exti,time-driver-any,time \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32u5f9zj,defmt,exti,time-driver-any,time \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv8m.main-none-eabihf --features stm32u5g9nj,defmt,exti,time-driver-any,time \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32wb35ce,defmt,exti,time-driver-any,time \
|
||||
--- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32u031r8,defmt,exti,time-driver-any,time \
|
||||
|
@ -55,7 +55,7 @@ fn main() {
|
||||
let mut singletons: Vec<String> = Vec::new();
|
||||
for p in METADATA.peripherals {
|
||||
if let Some(r) = &p.registers {
|
||||
if r.kind == "adccommon" || r.kind == "sai" || r.kind == "ucpd" || r.kind == "otg" {
|
||||
if r.kind == "adccommon" || r.kind == "sai" || r.kind == "ucpd" || r.kind == "otg" || r.kind == "octospi" {
|
||||
// TODO: should we emit this for all peripherals? if so, we will need a list of all
|
||||
// possible peripherals across all chips, so that we can declare the configs
|
||||
// (replacing the hard-coded list of `peri_*` cfgs below)
|
||||
@ -113,6 +113,7 @@ fn main() {
|
||||
"peri_ucpd2",
|
||||
"peri_usb_otg_fs",
|
||||
"peri_usb_otg_hs",
|
||||
"peri_octospi2",
|
||||
]);
|
||||
cfgs.declare_all(&["mco", "mco1", "mco2"]);
|
||||
|
||||
@ -1137,11 +1138,14 @@ fn main() {
|
||||
|
||||
// OCTOSPIM is special
|
||||
if p.name == "OCTOSPIM" {
|
||||
// Some chips have OCTOSPIM but not OCTOSPI2.
|
||||
if METADATA.peripherals.iter().any(|p| p.name == "OCTOSPI2") {
|
||||
peri = format_ident!("{}", "OCTOSPI2");
|
||||
g.extend(quote! {
|
||||
pin_trait_impl!(#tr, #peri, #pin_name, #af);
|
||||
});
|
||||
}
|
||||
peri = format_ident!("{}", "OCTOSPI1");
|
||||
g.extend(quote! {
|
||||
pin_trait_impl!(#tr, #peri, #pin_name, #af);
|
||||
});
|
||||
peri = format_ident!("{}", "OCTOSPI2");
|
||||
}
|
||||
|
||||
g.extend(quote! {
|
||||
|
@ -1178,7 +1178,7 @@ impl SealedOctospimInstance for peripherals::OCTOSPI1 {
|
||||
const OCTOSPI_IDX: u8 = 1;
|
||||
}
|
||||
|
||||
#[cfg(octospim_v1)]
|
||||
#[cfg(all(octospim_v1, peri_octospi2))]
|
||||
impl SealedOctospimInstance for peripherals::OCTOSPI2 {
|
||||
const OCTOSPIM_REGS: Octospim = crate::pac::OCTOSPIM;
|
||||
const OCTOSPI_IDX: u8 = 2;
|
||||
|
Loading…
Reference in New Issue
Block a user