Нет уж. Прорблема не в этом. Тем более что ничего для FIQ в контроллере прерываний и сбрасывать не надо. А флаги прерываний таймера я сбрасываю так же как и для обычного IRQ. Кроме того, прога не всё время находится в FIQ. Регенерация выглядит идеально. Грубо говоря FIQ синхронизируется по таймеру и вызывается через промежутки 10 mks, 20 mks, 40 mks, ... 1280 mks. Всё остальное время процессор непонятно чем занимается.
Щас выяснил что при обращении к памяти 0x40000000 (там видеобуфер) возникает исключение Data Abort. При записи в эту память - сразу, при чтении - иногда. Это при разрешённых FIQ. При запрещённых - никогда не возникает. Установка команды SUBS PC,R14,#8 по адресу обработчика Data Abort никак не помогает. Стек в моём FIQ вообще не используется.
--------------------
Заблуждаться - Ваше законное право :-)
|