Help with isr

When I configure port b buttons as isr and give their vector as a function , on the interrupt the processor seems to reset , I guess the vector adderess is wrong. My processor is at91sam7x256 **This is my button_isr.c file** extern int i;
////////////////////////////////// void ISR_Button_hand1( void )
{
//PIO_DisableIt(&pinPB1);
printf(”nr int1″);
i =1;
AT91C_BASE_AIC->AIC_EOICR = 0;
}
void ISR_Button_hand2( void )
{
//PIO_DisableIt(&pinPB1);
printf(”nr int2″);
i =2;
AT91C_BASE_AIC->AIC_EOICR = 0;
}
void ISR_Button_hand3( void )
{
//PIO_DisableIt(&pinPB1);
printf(”nr int3″);
i =3;
AT91C_BASE_AIC->AIC_EOICR = 0;
} void ISR_Button1(void)
{
portSAVE_CONTEXT();
__asm volatile (”bl ISR_Button_hand1″);
portRESTORE_CONTEXT();
//return;
} void ISR_Button2(void)
{
portSAVE_CONTEXT(); __asm volatile (”bl ISR_Button_hand2″); portRESTORE_CONTEXT();
//return;
} void ISR_Button3(void)
{
portSAVE_CONTEXT();
__asm volatile (”bl ISR_Button_hand3″);
portRESTORE_CONTEXT();
//return;
} **This is my button_isr.h file** #ifndef HMI_ISR_H_
#define HMI_ISR_H_ #endif /* HMI_ISR_H_ */ void ISR_Button1( void ) __attribute__((naked));
void ISR_Button2( void ) __attribute__((naked));
void ISR_Button3( void ) __attribute__((naked)); void ISR_Button_hand1( void ) __attribute__((noinline));
void ISR_Button_hand2( void ) __attribute__((noinline));
void ISR_Button_hand3( void ) __attribute__((noinline)); **This is My init hardware the first function that I call to initialise my buttons using standard atmel library**     AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;
    AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB;
//AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_EMAC;     PIO_Configure(&pinPB1, 1);
    PIO_Configure(&pinPB2, 1);
    PIO_Configure(&pinPB3, 1);
    PIO_InitializeInterrupts((AT91C_AIC_PRIOR_LOWEST | AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL));
    PIO_ConfigureIt(&pinPB1, ( void (*)( void ) )ISR_Button1);
    PIO_ConfigureIt(&pinPB2, ( void (*)( void ) ) ISR_Button2);
    PIO_ConfigureIt(&pinPB3, (void (*)(const Pin *)) ISR_Button3);
printf(”nrconfig done”);
    printf(”nrinterrupt init 1 done”);
    PIO_EnableIt(&pinPB1);
    printf(”nrinterrupt init 2 done”);
    PIO_EnableIt(&pinPB2);
    printf(”nrinterrupt init 3 done”);
    PIO_EnableIt(&pinPB3);
    printf(”nrinterrupt init 4 done”);     LcdInit();
need help

Help with isr

Sorry but the code is too jumbled up to read. If you post it again start each line with a tab.