STM32H7におけるキャッシュ一貫性を保ったDMA転送の方法として、MPUによる設定を解説します。 STM32H7ではF7と異なり、DMAコントローラからDTCM領域にアクセスできないため注意が必要です。 GitHubでソースコードを公開しています。(Memory-to-Peripheralの場合のみ 概要 Cortex-M7コアにはL1キャッシュが搭載されているため、DMA転送時にはデータ化け(キャッシュの一貫性が崩れる問題)に気を配る必要があります。 STM32F7では、DMA対象データをキャッシュの影響を受けない「DTCM領域」に置くことが、データ化け対策として有効でした[脚注1]。一方でSTM32H7では、STM32F7からアーキテクチャが変更され、DMAコントローラからDTCM領域(0x2000 0000~)にアクセスできなくなりました[脚注2]。無理にアクセスするとHardF