Ру (08.10.2009 08:18, просмотров: 2796)
FIQ-прерывание в KEIL mVision для LPC2104 Здраствуйте! Помогите тупому с вышеозначенным прерыванием (компилятор RealView). С регистрами разобрался, при запуске симуляции прерывание по событию происходит, а функция прерывания не выполняется. Она имеет вид:
__irq void FIQ_Handler (void) {...}
В справке пишут, что приставку __fiq RealView не воспринимает, использовать надо как я написал выше, а в STARTUP внести изменения:
Vectors LDR PC, Reset_Addr
:
LDR PC, FIQ_Addr ; Instruction at FIQ Vector location
:
PRESERVE8 ; tell linker: stack alignment is 8byte
IMPORT FIQ_Handler ; use external FIQ_Handler
FIQ_Addr DCD FIQ_Handler ; FIQ Entry point
После внесения строк PRESERVE8 и IMPORT..., компилятор выдает ошибку Multiply defined symbol 'FIQ_Handler' c указанием на строку
FIQ_Handler B FIQ_Handler
которая в Startup'е ниже располагается. Убирал эту строку - компиляция проходит, но функция не вызывается.