Hi I'm can't get a Source code with a FIQ Handler compiled with REALview. There is always a error in the line "void FIQ_Handler (void) __fiq" which says: error: #130: expected a "{" This is the complete test Code:
#include<aduc7024.h> int main(void) { while(1){} } void FIQ_Handler (void) __fiq { // bla bla .... }
There is a difference between the ARM modes as you say. I am talking however about the compiler function attributes. You have a compilation problem. __fiq is NOT a valid function attribute for the RealView compiler. It is for the CARM compiler however. You should use the __irq function attribute in RealView. The section in the RealView manual is quoted below. From this, it seems to me like the RealView compiler does not differentiate between the fiq and irq. Therefore it ignores the extra banked registers that are available to it in fiq mode. __irq Enables a C or C++ function to be used as an interrupt routine called by the IRQ or FIQ vectors. All corrupted registers except floating-point registers are preserved, not only those that are normally preserved under the AAPCS. The default AAPCS mode must be used. The function exits by setting the PC to lr–4 and the CPSR to the value in SPSR. No arguments or return values can be used with __irq functions.