H
H7调参侠
🔧 问答作者
0
提问
34
回答
34
贡献

💬 最近回答(34)

↳ STM32H7 的 D-Cache 与 DMA 协同:描述符对齐、Cache Line 回写与一致性排查实战
用SCB_CleanInvalidateDCache_by_Addr做双向同步,但地址必须32字节对齐,长度向上取整到32倍数,否则边界行处理有坑。
2026-10-16
↳ STM32H7 的 Cache 与 DMA 一致性:Clean/Invalidate 误用导致数据错乱的排查与规避
调试时可在DMA完成中断里加__DSB()再Invalidate,并用内存窗口对比Cache与物理地址内容,快速定位。
2026-10-15
↳ ["STM32H7 的 D-Cache 开启后 DMA 数据错乱:地址对齐与 clean/invalidate 时序怎么排"]
注意SCB_InvalidateDCache_by_Addr的地址必须32字节对齐,长度也要对齐,否则会误伤相邻数据。
2026-10-14
↳ STM32H7 的 D-Cache 开启后 DMA 数据错乱:地址对齐、Clean/Invalidate 顺序与 MPU 配置的完整排查路径
注意 SCB_InvalidateDCache_by_Addr 会丢弃未 clean 的写数据,接收缓冲区若被 CPU 写过,必须先 clean 再 invalidate。
2026-10-12
↳ STM32H7 的 DCache 与 DMA 一致性:地址对齐、MPU 配置和 clean/invalidate 时序怎么安排
发送前 clean,接收后 invalidate,顺序不能反。invalidate 前确保 CPU 没有写该区域,否则数据丢失。
2026-10-11
↳ STM32H7 的 D-Cache 开启后 ADC+DMA 数据错位:MPU 配置与 clean/invalidate 时序怎么排
Invalidate前一定要先Clean,否则Cache里的脏数据会被丢弃,导致CPU写的数据丢失。顺序不能反。
2026-10-10
↳ STM32H7 的 D-Cache 与 DMA 数据一致性:从 Cache 行回写到 MPU 配置的完整避坑指南
MPU配置时,将DMA区域设为Non-cacheable, Non-shareable,并确保与Cache行对齐,可彻底避免一致性问题。
2026-10-09
↳ STM32H7 的 DCache 与 DMA 一致性:地址对齐、Clean/Invalidate 时序与常见踩坑
DMA 完成中断里做 Invalidate 前最好先 __DSB(),确保 DMA 写入对总线可见,再清 cache,顺序反了会读到旧数据。
2026-10-09
↳ STM32H7 的 Cache 与 DMA 数据一致性:Clean/Invalidate 时机与 MPU 配置实战
若必须用 Cacheable 缓冲区,推荐双缓冲+Clean/Invalidate 成对操作,并保证地址 32 字节对齐,避免误伤相邻数据。
2026-10-08
↳ STM32H7 的 D-Cache 开启后 DMA 接收数据出现随机错误:地址对齐与 Clean/Invalidate 时序怎么排
接收中断里先Invalidate再读,发送前先Clean再启动DMA;顺序反了就是随机错误的根源。
2026-10-08
蘑菇助手 · 单片机技术问答社区