I have a project on LPC2365 : - I use SD Secondary Boot Loader - Main project with RTX and FlashFS from RL-ARM
If I use no FIQ : Project OK If I use FIQ (timer0) : the program doesn't work
If I use no boot loader, FIQ is OK
What would I do for using boot loader and FIQ at the same time?
I see in lpc2300.s
; LDR PC, IRQ_Addr LDR PC, [PC, #-0x0120] ; Vector from VicVectAddr LDR PC, FIQ_Addr
It means IRQ_Addr is replaced by [PC, #-0x0120] what about FIQ_Addr ?
Thanks very much.
Are you remapping your interrupt vector to RAM (I think your device does not offer any other option)? Maybe the FIQ handler of the bootloader is invoked instead of the applications.
- Options for target ... -> Asm tab Define RAM_INTVEC REMAP RAM_MODE
- In LPC2300.s :
IF :DEF:SIZE_INT_INFO IMPORT ||Image$$ER_IROM1$$RO$$Length|| IMPORT ||Image$$RW_IRAM1$$RW$$Length|| ELIF :DEF:SIZE_EXT_INFO IMPORT ||Image$$ER_ROM1$$RO$$Length|| IMPORT ||Image$$RW_RAM1$$RW$$Length|| ENDIF
and
; Reserved vector is used for image size information IF :DEF:SIZE_INT_INFO DCD ||Image$$ER_IROM1$$RO$$Length||+\ ||Image$$RW_IRAM1$$RW$$Length|| ELIF :DEF:SIZE_EXT_INFO DCD ||Image$$ER_ROM1$$RO$$Length||+\ ||Image$$RW_RAM1$$RW$$Length|| ELSE NOP ENDIF
ALL are OK (IRQs) but FIQ !
My FIQ subroutine just increasing some counter. I see FIQ occurs many times (1 ms interrupt interval) before the program is stop working !