Похоже, что все-таки я неправильно настраивал ТТ.
Вариан тпервых записей, с которыми я мог отключать и подключать DCache:
0x00200C1A, 0x00100C1A,0x00200C1A,0x00300C1E
Цитата(aaarrr @ Feb 10 2010, 11:21)

Еще раз спрашиваю: почему? Ответ "потому что иначе не работают прерывания" совершенно не устраивает.
Первая запись существенна. Хотя действительно, это совершенно не очевидно.
Цитата(aaarrr @ Feb 10 2010, 11:21)

Нет.
Я имел ввиду, если под DMA выделить часть SRAM, отключив в ней кэширование и буферизацию.
В общем я так и сделал. Описал таблицу дескрипторов второго уровня и дал 1 КБ SRAM под DMA.
Кстати: в PDC нужно указывать физические, а не виртуальные адреса. Как-то не удобно...
Похоже, что все-таки я неправильно настраивал ТТ.
Вариан тпервых записей, с которыми я мог отключать и подключать DCache:
0x00200C1A, 0x00100C1A,0x00200C1A,0x00300C1E
Цитата(aaarrr @ Feb 10 2010, 11:21)

Еще раз спрашиваю: почему? Ответ "потому что иначе не работают прерывания" совершенно не устраивает.
Первая запись существенна. Хотя действительно, это совершенно не очевидно.
Цитата(aaarrr @ Feb 10 2010, 11:21)

Нет.
Я имел ввиду, если под DMA выделить часть SRAM, отключив в ней кэширование и буферизацию.
В общем я так и сделал. Описал таблицу дескрипторов второго уровня и дал 1 КБ SRAM под DMA.
Кстати: в PDC нужно указывать физические, а не виртуальные адреса. Как-то не удобно...