[an error occurred while processing this directive]
|
Ведь если у вас проц будет тянуть свои команды с той-же страницы DARAM что и DMA, то возможны всяческие чудеса - при одной компиляции прога будет работать при малейшем изменении уже может и нет.
Например у меня был просто классический случай:
1. сбросим ФЛАГ.
2. do if (таймаут) trap(DMAfault);
while (обработчик прерывания DMA не поставил ФЛАГ?);
Так вот - когда этот цикл случайно оказался в странице DMA, он перестал нормально завершаться по while(). А все дело в постоянных сбросах конвеера команд и его перезагрузки из-за двух команд BCC.