AT91SAM7S and ADC interrupt

Hi, I’m a little bit confused abou using interrupt. I’ve been trying to configure a ADC data ready interrupt with freertos, but it doesn’ t work correctly. So , here my code: adcconfig.c     #include “adcconfig.h”
   
    static unsigned int chns = {ADC_NUM_1, ADC_NUM_2, ADC_NUM_3, ADC_NUM_4,ADC_NUM_5,ADC_NUM_6,ADC_NUM_7,ADC_NUM_8};     extern void vAdcISREntry( void );     __arm void vAdcISR( void );
   
   
    __arm void vAdcISR( void )
    {
        unsigned int status, i;
   
        status = ADC_GetStatus(AT91C_BASE_ADC);
   
        for(i=0;i<8;i++) {
         
            if (ADC_IsChannelInterruptStatusSet(status, chns_)) {
                ADC_DisableIt(AT91C_BASE_ADC, 1<<chns);//disable EOCx interrupt           
                conversionDone |= 1<<chns;
            }
           
        }
      AT91C_BASE_AIC->AIC_EOICR = 0;
    }
   
       
    void setupAD (void){      ADC_Initialize( AT91C_BASE_ADC,
                    AT91C_ID_ADC,
                    AT91C_ADC_TRGEN_DIS,
                    0,
                    AT91C_ADC_SLEEP_NORMAL_MODE,
                    AT91C_ADC_LOWRES_10_BIT,
                    BOARD_MCK,
                    BOARD_ADC_FREQ,
                    10,
                    1200);     ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_1);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_2);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_3);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_4);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_5);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_6);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_7);
    ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_8);     IRQ_ConfigureIT(AT91C_ID_ADC, 0, ( void (*)( void ) ) vAdcISR);
    IRQ_EnableIT(AT91C_ID_ADC);   
    } adcISR.s79     RSEG ICODE:CODE
    CODE32
   
    EXTERN vAdcISR
    PUBLIC vAdcISREntry
   
    ; Wrapper for the serial port interrupt service routine.  This can cause a
    ; context switch so requires an assembly wrapper.
   
    ; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
    #include “ISR_Support.h”
   
    vAdcISREntry
   
    portSAVE_CONTEXT ; Save the context of the current task.
   
    bl vAdcISR ; Call the ISR routine.
   
    portRESTORE_CONTEXT ; Restore the context of the current task –
    ; which may be different to the task that
    ; was interrupted.
   
    END I started AD in main before my tasks, and inside a task i want to get de ADC value each 1 second for example. when i run getMeasure in my task, the program freeze and i get data abort exception . So, what i supossed to do ? Thanks ! _

AT91SAM7S and ADC interrupt

Have you got the ADC working in a simple application with out FreeRTOS? Could it be that the ADC interrupt is executing before the scheduler has been started? Regards.