I have try the kernal-3.4.6 with ipipe-core-3.4.6-arm-4.patch 
when I set three same Priority tasks I found untill the tasks stop ,the 
interrut founction will not run.
It same like before version kernal-2.6.35.9 with  
ipipe-core-2.6.35.9-arm-4.patch


static int test_thread(void *data)
{
        //phase=ctrl_mnm1221_m();
        while(1)
        {
        if(flag)
        {
                printk("runting %lld\n",tt3);
                flag=0;
                }
        SLEEP_MILLI_SEC(50);

        }
        return 0;
}

int irq_handle_function(int irq, void *device_id)
{
        //if(phase==PH_RUNNING)
        //ctrl_mnm1221_m();
        rt_intr_disable(&intr_desc);
        tt1=rt_timer_read();
        tt3=tt1-tt2;
        if(tt3>300000)
        flag=1;
        tt2=tt1;
        rt_intr_enable(&intr_desc);
        return RT_INTR_HANDLED;;
}


void taskOne(void*arg)
{
        int i;
        for (i=0; i < 0xffff; i++)
        {       
                printk("Iam taskOneand global = %d................\n", tt3);
        }
}
void taskTwo(void*arg)
{
        int i;
        for (i=0; i < 0xffff; i++)
        {       
                printk("Iam taskTwo global = %d................\n", tt3);
        }
}
void taskThree(void*arg)
{
        int i;
        for (i=0; i < 0xffff; i++)
        {       
                printk("Iam taskThree global = %d................\n", tt3);
        }
}


static int __init rtex_init(void){
        irq= gpio_to_irq(MY_GPIO2_14);
        
        /*err=request_irq(irq, irq_handle_function, 0, "rtex", (void 
*)&irq);
        if(err)
        {
                printk("regist irq failure...\n");
                return -EIO;
        }*/
        err = 
rt_intr_create(&intr_desc,"MyIrq",irq,irq_handle_function,NULL,I_SHARED|I_EDGE);
        /* ... */
        
        rt_intr_enable(&intr_desc);



        rt_task_create(&t1, "task1", 0, 1, 0);
        rt_task_create(&t2, "task2", 0, 1, 0);/* start the two tasks */
        rt_task_create(&t3, "task2", 0, 1, 0);/* start the two tasks */
        rt_task_start(&t1, &taskOne, 0);
        rt_task_start(&t2, &taskTwo, 0);
        rt_task_start(&t2, &taskThree, 0);
}




 Every 500m gpio send an interrupt.
 The result like blow:
tt1=rt_timer_read();

global =        tt3=tt1-tt2;

Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................     
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755.                            
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Iam taskTwo global = 1610612755................                                 
Irunting 502230                                                                 
root@freescale /opt$ runting 499995                                             
runting 500025                                                                  
runting 500115                                                                  
runting 500055                                                                  
runting 500025                                                                  
runting 500025                                                                  
runting 500010        
runting 500085                                                                  
runting 500010                                                                  
runting 500025                                                                  
runting 500055                                                                  
runting 500010                                                                  
runting 500055                                                                  
runting 499905                                                                  
runting 500460                                                                  
runting 500085                                                                  
runting 500070                                                                  
runting 500070                                                                  
runting 500010                                                                  
runting 500010                                                                  
runting 500085                                                                  
runting 500025                                                                  
runting 499980                                                                  
runting 500070                                                                  
runting 500040                                                                  
runting 500025                                                                  
runting 498735                                                                  
runting 500040                                                                  
runting 500025                                                                  
runting 500025                                                                  
runting 500220                                                                  
runting 499995                                                                  
runting 500010                                                                  
runting 500055                                                                  
runting 500010                                                                  
runting 500055                                                                  
runting 500025                                                                  
runting 500085                                                                  
runting 500025                                                                  
runting 500055                                                                  
runting 500025                                                                  
runting 500010                                                                  
runting 500100                                                                  
runting 500085                                                                  
runting 500010    

Then I do not know what should i do next?
在 2013-05-31 13:54:49,"嵌入式工程师" <[email protected]> 写道:
>ok ,thanks,i have a try
>在 2013-05-31 13:32:14,"Gilles Chanteperdrix" 
><[email protected]> 写道:
>>On 05/31/2013 03:36 AM, 嵌入式工程师 wrote:
>>
>>> The I-pipe path version is adeos-ipipe-2.6.35.9-arm-1.18-01.patch ,
>>> the kernal version is 2.6.35.9 ,i am so sorry for he details do not speak 
>>> clearly
>>
>>
>>Hi,
>>
>>there is no need to send your answer three times either. GPIO irqs are
>>broken with this version of the I-pipe kernel. Please try updating to
>>the I-pipe core patch for Linux 3.4 or 3.5.
>>
>>Regards.
>>
>>-- 
>>                                                                Gilles.
>
>
>_______________________________________________
>Xenomai mailing list
>[email protected]
>http://www.xenomai.org/mailman/listinfo/xenomai


_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to