Может долго сидит в совтовом прерывании потому, что из него вызываются ещё и другие прерывания? Ну там UART0 например.
Цитата(SasaVitebsk @ May 22 2009, 17:29)

Спасибо. А можно узнать почему? У меня из этого места только FIQ вызывается. соответственно мне необходимо сделать примерно так:
Код
__disable_fiq();
VICSoftIntClear = (1<<SHOW_INT);
VICVectAddr = 0;
__enable_fiq();
Не, не так. Я имел ввиду только запрет IRQ. Так:
Код
__disable_irq(); // запрет только irq !!!
VICSoftIntClear = (1<<SHOW_INT);
VICVectAddr = 0;
// __enable_irq(); // это делать не нужно
} // - сразу после VICVectAddr = 0 возврат из прерывания
Цитата(SasaVitebsk @ May 22 2009, 17:29)

Вот подонки.

И зачем тогда линкер спрашивает у меня размер стека FIQ?
И как это сделать? Если Вас не затруднит приведите примерчик инициализации стека.
ЫЫЫ

Я сам на эти грабли встал когда впервые IRQ применил. Линкер спрашивает чтобы просто кусок памяти выделить. А вот компилер не инициализирует указатель SP для FIQ на этот блок памяти. Поэтому его надо ручками инициализировать.