ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
8126 Топик полностью
КонстантинТ (03.03.2004 16:05, просмотров: 1) ответил Jackal на Ответ: Мысли в слух аля net :) Примеры CW
С прерываниями там очень хитро Самы надежный и дубовый вариант перопределить irq_handler описанный в стартапе void irq_handler(void) __attribute__((naked)); void irq_handler(void){ asm("stmfd sp!, {r0-r12, lr}"); void (*interrupt_function)(); unsigned int vector; vector = VICVectAddr; interrupt_function = (void(*)())vector; (*interrupt_function)(); VICVectAddr = 0; asm("ldmfd sp!, {r0-r12, lr}"); asm("subs pc, lr, #4"); } В отладчике все видно.Так нужно по описанию делать, типа в каком то месте он сам разруливает по твоим IRQ static void timer0ISR(void) __attribute__ ((interrupt ("IRQ"))); Саое интересное , что этот пример у меня работает. Но когда я начал в своем проекте так делать, то не захотело. Надо где-то по установкам проекта полазить, может выключить пустышку irq_handler в стартапе. Не стал разбираться.