Цитата(Genadi Zawidowski @ Jul 28 2017, 18:58)

Вообще-то правильно делать ПЕРЕД отдачей буфера для обмена по DMA.
ПРи чтении по DMA из периферии:
Если точно буфер выровнен по размеру cache row, то можно SCB_InvalidateDCache_by_Addr. Если еще чьи-то данные могут зависнуть в кэше - то SCB_CleanDCache_by_Addr
При записи из памяти в периферию: SCB_CleanDCache_by_Addr/SCB_CleanInvalidateDCache_by_Addr (в зависимости от обстоятельсв).
Спасибо. Замечание очень важное.
Да, Ethernet буфера у меня выровнены по размеру cache row.
Есть ещё SCB_CleanInvalidateDCache и SCB_CleanDCache - но занимает много времени.