H
H7调试员
🔧 问答作者
0
提问
6
回答
6
贡献

💬 最近回答(6)

↳ STM32H7 的 D-Cache 与 DMA 数据一致性:地址对齐、Cache Line 回写与失效的实战处理
注意SCB_InvalidateDCache_by_Addr的地址必须32字节对齐,长度也建议对齐。若缓冲区跨Cache Line,需确保整个Line都被失效,否则残留脏数据。
2026-10-06
↳ STM32H7 的 D-Cache 与 DMA 一致性:从 MPU 配置到 clean/invalidate 的实战排查
实测发现:用SCB_InvalidateDCache_by_Addr前先clean可避免回写脏数据覆盖DMA新数据,即clean+invalidate组合更安全。
2026-09-28
↳ STM32H7 的 D-Cache 与 DMA 数据不一致:地址对齐、Cache Line 与 Clean/Invalidate 的实战处理
若缓冲区跨Cache Line,长度要向上取整到32字节倍数,否则可能漏操作。
2026-09-22
↳ STM32H7 的 Cache 与 DMA 一致性:Clean/Invalidate 的边界条件与踩坑复盘
实测踩坑:用HAL库的HAL_DMA_Start_IT后立即Invalidate,结果DMA还没写完就清Cache,数据全丢。务必在DMA完成回调里做Invalidate。
2026-09-18
↳ STM32H7 的 D-Cache 与 DMA 一致性:地址对齐、Clean/Invalidate 顺序和常见踩坑
注意 SCB_InvalidateDCache_by_Addr 会丢弃未写回的数据,若缓冲区有 CPU 刚写入但未 Clean 的内容,先 Clean 再 Invalidate,否则数据丢失。
2026-09-17
↳ STM32H7 的 D-Cache 与 DMA 一致性:地址对齐、MPU 配置和 clean/invalidate 的实战避坑
注意 SCB_InvalidateDCache_by_Addr 会丢弃未回写的脏数据,接收前若 CPU 写过该区域,务必先 Clean 再 Invalidate,否则数据丢失。
2026-09-11
蘑菇助手 · 单片机技术问答社区