Charlie (21.06.2007 14:03, просмотров: 1) ответил bus16 на Можно поподробнее по проблемам с GCC?
Пролог и эпилог функций обработки прерываний генерируется неправильно (у 4.2.0 не проверял). Лечится двумя способами 1) исправленный компилятор напр. от Klen по ссылке и было обсуждение на http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/
http://www.klen.org
Электрониксе 3.10.2006 2) см ниже и пример у WinARM
#define INTERRUPT_PROLOG() asm volatile("STMDB SP!,{R0-R12,LR}\n")
#define INTERRUPT_EPILOG() asm volatile("LDMIA SP!,{R0-R12,LR}\nSUBS R15,R14,#0x0004\n")
#define IRQ_PROC __attribute__((naked))
void _100HzHandler (void) IRQ_PROC;
void _100HzHandler (void)
{
INTERRUPT_PROLOG();
_100Hz_Serv();
EXTINT |=0x1;
VICVectAddr=0;
INTERRUPT_EPILOG();
}