stm32: add stm32u5 GPDMA, SPIv4 support, add HIL tests.
This commit is contained in:
@ -109,7 +109,7 @@ fn main() {
|
||||
|
||||
for p in METADATA.peripherals {
|
||||
if let Some(r) = &p.registers {
|
||||
if r.kind == "dma" || r.kind == "bdma" {
|
||||
if r.kind == "dma" || r.kind == "bdma" || r.kind == "gpdma" {
|
||||
if p.name == "BDMA1" {
|
||||
// BDMA1 in H7 doesn't use DMAMUX, which breaks
|
||||
continue;
|
||||
@ -214,7 +214,7 @@ fn main() {
|
||||
// ========
|
||||
// Generate fns to enable GPIO, DMA in RCC
|
||||
|
||||
for kind in ["dma", "bdma", "dmamux", "gpio"] {
|
||||
for kind in ["dma", "bdma", "dmamux", "gpdma", "gpio"] {
|
||||
let mut gg = TokenStream::new();
|
||||
|
||||
for p in METADATA.peripherals {
|
||||
@ -528,11 +528,17 @@ fn main() {
|
||||
let peri = format_ident!("{}", p.name);
|
||||
|
||||
let channel = if let Some(channel) = &ch.channel {
|
||||
// Chip with DMA/BDMA, without DMAMUX
|
||||
let channel = format_ident!("{}", channel);
|
||||
quote!({channel: #channel})
|
||||
} else if let Some(dmamux) = &ch.dmamux {
|
||||
// Chip with DMAMUX
|
||||
let dmamux = format_ident!("{}", dmamux);
|
||||
quote!({dmamux: #dmamux})
|
||||
} else if let Some(dma) = &ch.dma {
|
||||
// Chip with GPDMA
|
||||
let dma = format_ident!("{}", dma);
|
||||
quote!({dma: #dma})
|
||||
} else {
|
||||
unreachable!();
|
||||
};
|
||||
@ -606,6 +612,7 @@ fn main() {
|
||||
|
||||
let mut dma_channel_count: usize = 0;
|
||||
let mut bdma_channel_count: usize = 0;
|
||||
let mut gpdma_channel_count: usize = 0;
|
||||
|
||||
for ch in METADATA.dma_channels {
|
||||
let mut row = Vec::new();
|
||||
@ -626,6 +633,10 @@ fn main() {
|
||||
num = bdma_channel_count;
|
||||
bdma_channel_count += 1;
|
||||
}
|
||||
"gpdma" => {
|
||||
num = gpdma_channel_count;
|
||||
gpdma_channel_count += 1;
|
||||
}
|
||||
_ => panic!("bad dma channel kind {}", bi.kind),
|
||||
}
|
||||
|
||||
@ -650,6 +661,7 @@ fn main() {
|
||||
g.extend(quote! {
|
||||
pub(crate) const DMA_CHANNEL_COUNT: usize = #dma_channel_count;
|
||||
pub(crate) const BDMA_CHANNEL_COUNT: usize = #bdma_channel_count;
|
||||
pub(crate) const GPDMA_CHANNEL_COUNT: usize = #gpdma_channel_count;
|
||||
});
|
||||
|
||||
for irq in METADATA.interrupts {
|
||||
|
Reference in New Issue
Block a user