Цитата(andrewlekar @ Feb 12 2010, 10:34)

Насколько я понял из доков, drain write buffer выполняется при любом чтении из этой памяти. Следовательно, если DMA используется и для чтения и для записи, можно включить на памяти для DMA буферизацию, а перед записью туда произвести хотя бы одно чтение. Всё верно?
Не при любом. Очистку буферов следует производить соответствующей инструкцией CP15 - Drain write buffer.
Цитата(andrewlekar @ Feb 12 2010, 10:34)

Как произвести invalidate для кэша? Установить атрибут памяти как некешируемой а потом вернуть обратно? Или есть другой способ?
Опять-таки соответствующей инструкцией CP15. Самый грубый, простой но зато безопасный способ - выполнить команду Test, clean, and invalidate DCache.
Цитата(andrewlekar @ Feb 12 2010, 10:34)

Да и ещё, FCSE для этого проца как включать и стоит ли? У меня там ртос и соответственно постоянно переключается контекст.
Для этого нужна соответствующая поддержка со стороны вашей RTOS.