開発のヒント
CPU
L1 Dキャッシュと本体メモリのデータ一貫性
STM32F7に搭載されているCortex-M7にはL1 Dキャッシュが搭載されています。また、一方で独立したDMAも搭載しています。
Dキャッシュにヒットしたデータは、Dキャッシュで保存されていますが、本体メモリの同じアドレスをDMAが書き換えてしまうと、Dキャッシュと本体メモリの値が異なってしまい、一貫性が保たれなくなります。Dキャッシュと本体メモリのデータの一貫性はハードウェアでは管理しませんので、ユーザが管理しなければなりません。
DキャッシュでアクセスするメモリエリアはDMAでアクセスしないか、またはアクセスしても、その際にDキャッシュをクリーン化する必要があります。
一方、Iキャッシュは基本的に書き換えませんので、一貫性を管理する必要はありません。
過去の開発のヒントはこちら