Thanks! Tried that, doesn't work on NanoPI NEO

Branislav


> I should also mention I did my testing on a Zynq microzed board.
>
> On Thu, Mar 15, 2018 at 4:01 PM, Greg Gallagher <g...@embeddedgreg.com>
> wrote:
>> Using the 4.14 arm ipipe tree, xenomai stable 3.0.x (from git) I was
>> able to receive an interrupt, if you are still having issues can you
>> try the below code?  Obviously modify the pin values to the pins you
>> require.
>>
>> static unsigned int irq_num;
>> static unsigned int gpioLED = 953;
>> static unsigned int gpioButton = 957;
>> static bool value = false;
>> static rtdm_irq_t irq_handle;
>> static int num_of_intr = 0;
>>
>>
>> static int gpio_irq_handler(rtdm_irq_t * irq)
>> {
>>     value = !value;
>>     gpio_set_value(gpioLED, value); // toggle the led everytime irq
>> handler is invoked
>>     printk("GPIO interrupt \n");
>>     num_of_intr++;
>>     return RTDM_IRQ_HANDLED;
>> }
>>
>>
>> static int __init rtdm_init (void)
>> {
>>     int err;
>>
>>     if ((err = gpio_request(gpioButton, THIS_MODULE->name)) != 0) {
>>         printk(" gpio_request gpioButton failed ! \n");
>>         return err;
>>     }
>>
>>     if ((err = gpio_direction_input(gpioButton)) != 0) {
>>         printk(" gpio_direction_input gpioButton failed ! \n");
>>         gpio_free(gpioButton);
>>
>>         return err;
>>     }
>>
>>     irq_num = gpio_to_irq(gpioButton);
>>
>>     printk(" IRQ number %d !  \n",irq_num);
>>
>>     if ((err = gpio_request(gpioLED, THIS_MODULE->name)) != 0) {
>>         printk(" gpio_request gpioLED failed ! \n");
>>         gpio_free(gpioButton);
>>         return err;
>>     }
>>
>>     if ((err = gpio_direction_output(gpioLED, 0)) != 0) {
>>         printk(" gpio_direction_input gpioLED failed ! \n");
>>         gpio_free(gpioLED);
>>         gpio_free(gpioButton);
>>         return err;
>>     }
>>
>>     err = irq_set_irq_type(irq_num,  IRQF_TRIGGER_RISING);
>>
>>     if(err) {
>>         gpio_free(gpioLED);
>>         gpio_free(gpioButton);
>>         printk(" irq_set_irq_type failed ! \n");
>>         return err;
>>     }
>>
>>     err =
>> rtdm_irq_request(&irq_handle,irq_num,(rtdm_irq_handler_t)gpio_irq_handler,
>> RTDM_IRQTYPE_EDGE,THIS_MODULE->name, NULL);
>>
>>     printk("after request irq = %d \n",irq_handle.irq);
>>
>>     if(err) {
>>         gpio_free(gpioLED);
>>         gpio_free(gpioButton);
>>         printk(" rtdm_irq_request failed ! \n");
>>         return err;
>>     }
>>
>>     err = rtdm_irq_enable(&irq_handle);
>>
>>     if (err < 0) {
>>         printk("rtdm_irq_enable failed \n");
>>         return err;
>>     }
>>     return 0;
>>
>>
>> }
>>
>>
>>
>> static void __exit rtdm_exit (void)
>> {
>>     rtdm_irq_free(&irq_handle);
>>     gpio_free(gpioLED);
>>     gpio_free(gpioButton);
>>
>>     printk("The number of intr is %d \n",num_of_intr);
>> }
>>
>>
>> module_init(rtdm_init);
>> module_exit(rtdm_exit);
>> MODULE_LICENSE("GPL");
>>
>> On Thu, Mar 8, 2018 at 10:39 AM, Greg Gallagher <g...@embeddedgreg.com>
>> wrote:
>>> I'll have to run this on my known working set up and see what I can
>>> find.  The only difference between gpio-core and your file is
>>> gpio-core uses the same label in the gpio_request and the
>>> rtdm_irq_request.  For fun you can try to pass "gpio203" to
>>> rtdm_irq_request. I'll have to take a deeper look at what's happening
>>> in cobalt.
>>>
>>> -Greg
>>>
>>> On Thu, Mar 8, 2018 at 5:53 AM,
>>> <branislav.sa...@automatika.imp.bg.ac.rs> wrote:
>>>> In attachment is example kernel module code that work when used
>>>> request_irq but not with rtdm_irq_request.
>>>> I need to measure time intervals between signal edges and to do some
>>>> processing inside that module. This worked fine on 3.14 kernel on
>>>> BeagleBone with Xenomai 2.6.x. Now, on NanoPi NEO (4.14, xenomai
>>>> 3.0.6) it
>>>> seams it doesn't work.
>>>>
>>>>
>>>> Branislav
>>>>
>>>>
>>>>> I'd have to see more of the code to understand how you are setting
>>>>> that up.  If you look at the rtdm gpio code that is in Xenomai
>>>>> (kernel/drivers/gpio/gpio-core.c) that would be a good example to
>>>>> work
>>>>> from.  Are you planning on using the gpio pins from user space or
>>>>> from
>>>>> another rtdm driver?  IF you want to use them via user space there
>>>>> are
>>>>> better and quicker approaches then creating a custom RTDM driver.
>>>>>
>>>>> -Greg
>>>>>
>>>>> On Wed, Mar 7, 2018 at 8:15 AM,
>>>>> <branislav.sa...@automatika.imp.bg.ac.rs> wrote:
>>>>>> Thank you.
>>>>>> Meanwhile, I tried ipipe-arm kernel with latest xenomai from git on
>>>>>> NanoPi-NEO. Interrupts configured from sysfs interface works,
>>>>>> doesn't
>>>>>> display any message, but when requested with rtdm_irq_request
>>>>>>
>>>>>> //request_irq(irq, irig_r_isr_test, 0, DRIVER_NAME, NULL); //this
>>>>>> works
>>>>>> rtdm_irq_request(&irq_handle, irq, irig_r_isr_test,
>>>>>> RTDM_IRQTYPE_EDGE,
>>>>>> DRIVER_NAME, NULL); //this not
>>>>>> irq_set_irq_type(irq, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING);
>>>>>> rtdm_irq_enable(&irq_handle);
>>>>>>
>>>>>> sunxi_pinctrl_irq_handler(struct irq_desc *desc) routine never get
>>>>>> called.
>>>>>>
>>>>>>
>>>>>> Branislav
>>>>>>
>>>>>>
>>>>>>> I should have access to a beaglebone green this week. I wasn't able
>>>>>>> to
>>>>>>> reproduce it with a zynq or raspberry Pi 2 board.
>>>>>>>
>>>>>>> Greg
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   Original Message
>>>>>>> From: branislav.sa...@automatika.imp.bg.ac.rs
>>>>>>> Sent: March 5, 2018 3:24 AM
>>>>>>> To: branislav.sa...@automatika.imp.bg.ac.rs
>>>>>>> Cc: xenomai@xenomai.org
>>>>>>> Subject: Re: [Xenomai] interrupt on edge problem, unexpected IRQ
>>>>>>> trap
>>>>>>>
>>>>>>> Nothing? :|
>>>>>>>
>>>>>>>
>>>>>>>> Thank you for your help Greg & Philippe!
>>>>>>>>
>>>>>>>> I merged gpio-omap.c from 4.14 kernel to my 4.11 kernel, result is
>>>>>>>> freezed
>>>>>>>> cpu after interrupt. Then, I compiled 4.14 latest ipipe-arm kernel
>>>>>>>> from
>>>>>>>> git (nothing added, nothing removed), and similar thing happens.
>>>>>>>> Only
>>>>>>>> I
>>>>>>>> could see some time after, until complete freeze, are messages
>>>>>>>>
>>>>>>>> [   62.463002] unexpected IRQ trap at vector 3f
>>>>>>>> [   63.643847] unexpected IRQ trap at vector 3f
>>>>>>>> [   63.648204] unexpected IRQ trap at vector 3f
>>>>>>>> [   65.605123] unexpected IRQ trap at vector 3f
>>>>>>>> [   66.418225] unexpected IRQ trap at vector 3f
>>>>>>>>
>>>>>>>> Tested through sysfs gpio interface.
>>>>>>>>
>>>>>>>>
>>>>>>>> Branislav
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> As Philippe mentioned, they are some missing pieces that need to
>>>>>>>>> be
>>>>>>>>> added to the ipipe.  The link Philippe provided will give you
>>>>>>>>> guidance
>>>>>>>>> on how to make those changes to your custom kernel.  The other
>>>>>>>>> option
>>>>>>>>> is you could use the ipipe-arm tree and the mainline kernel.
>>>>>>>>> Also,
>>>>>>>>> unrelated, the gpios that are exposed in sysfs are not RTDM
>>>>>>>>> gpios.
>>>>>>>>> There currently isn't a RTDM driver for beaglebone gpio, but one
>>>>>>>>> can
>>>>>>>>> be added very easily.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -Greg
>>>>>>>>>
>>>>>>>>> On Mon, Feb 26, 2018 at 1:05 PM,
>>>>>>>>> <branislav.sa...@automatika.imp.bg.ac.rs> wrote:
>>>>>>>>>> Xenomai 3.0.6, and ipipe-core-4.9.51-arm-3, patched on sunxi
>>>>>>>>>> 4.11.2
>>>>>>>>>> kernel
>>>>>>>>>> (with BeagleBone patches applied too). Same situation with this
>>>>>>>>>> kernel
>>>>>>>>>> ->
>>>>>>>>>> https://github.com/beagleboard/linux/tree/4.9-xenomai
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Just as Giulio wrote, GPIO is configured with:
>>>>>>>>>>
>>>>>>>>>> echo 60 > /sys/class/gpio/export
>>>>>>>>>> echo both > /sys/class/gpio/gpio60/edge
>>>>>>>>>>
>>>>>>>>>> or in kernel module init routine with:
>>>>>>>>>>
>>>>>>>>>> gpio_request(gpio, "test");
>>>>>>>>>> gpio_direction_input(gpio);
>>>>>>>>>> irq = gpio_to_irq(gpio);
>>>>>>>>>> irq_set_irq_type(irq, IRQF_TRIGGER_FALLING |
>>>>>>>>>> IRQF_TRIGGER_RISING);
>>>>>>>>>> rtdm_irq_request(&irq_handle, irq, test_isr, RTDM_IRQTYPE_EDGE,
>>>>>>>>>> DRIVER_NAME, NULL);
>>>>>>>>>> rtdm_irq_enable(&irq_handle);
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Both reproduce the problem. In the second case, when requested
>>>>>>>>>> with
>>>>>>>>>> rtdm_irq_request, IRQ is visible both in /proc/interrupts, and
>>>>>>>>>> in
>>>>>>>>>> /proc/xenomai/irq
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Branislav
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Can you provide what version of Xenomai you are using and what
>>>>>>>>>>> ipipe
>>>>>>>>>> patch you are using?  It also may be helpful if you could
>>>>>>>>>> provide
>>>>>>>>>> some
>>>>>>>>>> sort of sample code that reproduces the problem.
>>>>>>>>>>>
>>>>>>>>>>> -Greg
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Feb 26, 2018 at 8:46 AM,
>>>>>>>>>>> <branislav.sa...@automatika.imp.bg.ac.rs> wrote:
>>>>>>>>>>>> Hello,
>>>>>>>>>>>> I have a problem with new I-pipe patch, which was not existing
>>>>>>>>>>>> with
>>>>>>>>>>>> legacy
>>>>>>>>>>>> patch on 3.14 kernel, on BeagleBone platform.
>>>>>>>>>>>> When GPIO pin is configured as input with edge interrupt
>>>>>>>>>>>> enable,
>>>>>>>>>>>> on
>>>>>>>>>>>> IRQ
>>>>>>>>>> occurrence the following message appears:
>>>>>>>>>>>> [  303.331386] irq 88, desc: dc1be400, depth: 0, count: 0,
>>>>>>>>>>>> unhandled:
>>>>>>>>>>>> 0
>>>>>>>>>> [  303.331401] ->handle_irq():  c01a810c,
>>>>>>>>>>>> [  303.331435] handle_edge_irq+0x0/0x194
>>>>>>>>>>>> [  303.331442] ->irq_data.chip(): dc097b50,
>>>>>>>>>>>> [  303.331454] 0xdc097b50
>>>>>>>>>>>> [  303.331461] ->action(): da097380
>>>>>>>>>>>> [  303.331467] ->action->handler(): c078dce4,
>>>>>>>>>>>> [  303.331483] gpio_sysfs_irq+0x0/0x24
>>>>>>>>>>>> [  303.331493]    IRQ_NOPROBE set
>>>>>>>>>>>> [  303.331503] unexpected IRQ trap at vector 58
>>>>>>>>>>>> [  303.335814] ------------[ cut here ]------------
>>>>>>>>>>>> [  303.335832] WARNING: CPU: 0 PID: 0 at kernel/irq/chip.c:883
>>>>>>>>>>>> __ipipe_ack_bad_irq+0x3c/0x48
>>>>>>>>>>>> [  303.335839] Modules linked in:
>>>>>>>>>>>> [  303.335863] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
>>>>>>>>>>>> 4.9.82 #2
>>>>>>>>>>>> [
>>>>>>>>>> 303.335871] Hardware name: Generic AM33XX (Flattened Device
>>>>>>>>>> Tree) [
>>>>>>>>>> 303.335878] I-pipe domain: Linux
>>>>>>>>>>>> [  303.335918] [<c0113520>] (unwind_backtrace) from
>>>>>>>>>>>> [<c010d320>]
>>>>>>>>>> (show_stack+0x20/0x24)
>>>>>>>>>>>> [  303.335946] [<c010d320>] (show_stack) from [<c073c99c>]
>>>>>>>>>>>> (dump_stack+0xbc/0xec)
>>>>>>>>>>>> [  303.335968] [<c073c99c>] (dump_stack) from [<c013dddc>]
>>>>>>>>>>>> (__warn+0xe4/0x110)
>>>>>>>>>>>> [  303.335984] [<c013dddc>] (__warn) from [<c013de38>]
>>>>>>>>>>>> (warn_slowpath_null+0x30/0x38)
>>>>>>>>>>>> [  303.335998] [<c013de38>] (warn_slowpath_null) from
>>>>>>>>>>>> [<c01a74a0>]
>>>>>>>>>> (__ipipe_ack_bad_irq+0x3c/0x48)
>>>>>>>>>>>> [  303.336027] [<c01a74a0>] (__ipipe_ack_bad_irq) from
>>>>>>>>>>>> [<c020ccdc>]
>>>>>>>>>> (__ipipe_dispatch_irq+0x80/0x1e4)
>>>>>>>>>>>> [  303.336048] [<c020ccdc>] (__ipipe_dispatch_irq) from
>>>>>>>>>>>> [<c0790630>]
>>>>>>>>>> (omap_gpio_irq_handler+0x15c/0x1d0)
>>>>>>>>>>>> [  303.336066] [<c0790630>] (omap_gpio_irq_handler) from
>>>>>>>>>>>> [<c01a3874>]
>>>>>>>>>> (__handle_irq_event_percpu+0x68/0x2bc)
>>>>>>>>>>>> [  303.336081] [<c01a3874>] (__handle_irq_event_percpu) from
>>>>>>>>>>>> [<c01a3af4>]
>>>>>>>>>>>> (handle_irq_event_percpu+0x2c/0x68)
>>>>>>>>>>>> [  303.336095] [<c01a3af4>] (handle_irq_event_percpu) from
>>>>>>>>>>>> [<c01a3b78>]
>>>>>>>>>> (handle_irq_event+0x48/0x6c)
>>>>>>>>>>>> [  303.336111] [<c01a3b78>] (handle_irq_event) from
>>>>>>>>>>>> [<c01a8348>]
>>>>>>>>>> (handle_level_irq+0xa8/0xfc)
>>>>>>>>>>>> [  303.336127] [<c01a8348>] (handle_level_irq) from
>>>>>>>>>>>> [<c01a2ea0>]
>>>>>>>>>> (generic_handle_irq+0x28/0x38)
>>>>>>>>>>>> [  303.336141] [<c01a2ea0>] (generic_handle_irq) from
>>>>>>>>>>>> [<c01a3014>]
>>>>>>>>>> (__handle_domain_irq+0x8c/0x10c)
>>>>>>>>>>>> [  303.336164] [<c01a3014>] (__handle_domain_irq) from
>>>>>>>>>>>> [<c0109c28>]
>>>>>>>>>> (handle_IRQ+0x2c/0x30)
>>>>>>>>>>>> [  303.336182] [<c0109c28>] (handle_IRQ) from [<c0117990>]
>>>>>>>>>>>> (__ipipe_do_IRQ+0x38/0x40)
>>>>>>>>>>>> [  303.336198] [<c0117990>] (__ipipe_do_IRQ) from [<c020c4b4>]
>>>>>>>>>>>> (__ipipe_do_sync_stage+0x268/0x278)
>>>>>>>>>>>> [  303.336214] [<c020c4b4>] (__ipipe_do_sync_stage) from
>>>>>>>>>>>> [<c020c820>]
>>>>>>>>>> (ipipe_unstall_root+0x50/0x5c)
>>>>>>>>>>>> [  303.336244] [<c020c820>] (ipipe_unstall_root) from
>>>>>>>>>>>> [<c0cbb4c8>]
>>>>>>>>>> (default_idle_call+0x54/0x7c)
>>>>>>>>>>>> [  303.336271] [<c0cbb4c8>] (default_idle_call) from
>>>>>>>>>>>> [<c0187c4c>]
>>>>>>>>>> (cpu_startup_entry+0xd0/0x144)
>>>>>>>>>>>> [  303.336289] [<c0187c4c>] (cpu_startup_entry) from
>>>>>>>>>>>> [<c0cb5c80>]
>>>>>>>>>> (rest_init+0x80/0x98)
>>>>>>>>>>>> [  303.336315] [<c0cb5c80>] (rest_init) from [<c1300d08>]
>>>>>>>>>>>> (start_kernel+0x370/0x3d8)
>>>>>>>>>>>> [  303.336327] ---[ end trace fd2436447809c122 ]---
>>>>>>>>>>>> [  303.336343] irq 88, desc: dc1be400, depth: 0, count: 0,
>>>>>>>>>>>> unhandled:
>>>>>>>>>>>> 0
>>>>>>>>>> [  303.336349] ->handle_irq():  c01a810c,
>>>>>>>>>>>> [  303.336361] handle_edge_irq+0x0/0x194
>>>>>>>>>>>> [  303.336367] ->irq_data.chip(): dc097b50,
>>>>>>>>>>>> [  303.336376] 0xdc097b50
>>>>>>>>>>>> [  303.336382] ->action(): da097380
>>>>>>>>>>>> [  303.336389] ->action->handler(): c078dce4,
>>>>>>>>>>>> [  303.336399] gpio_sysfs_irq+0x0/0x24
>>>>>>>>>>>> [  303.336406]    IRQ_NOPROBE set
>>>>>>>>>>>> [  303.336413] unexpected IRQ trap at vector 58
>>>>>>>>>>>> [  306.761879] irq 88, desc: dc1be400, depth: 0, count: 1,
>>>>>>>>>>>> unhandled:
>>>>>>>>>>>> 0
>>>>>>>>>> [  306.761893] ->handle_irq():  c01a810c,
>>>>>>>>>>>> [  306.761928] handle_edge_irq+0x0/0x194
>>>>>>>>>>>> [  306.761935] ->irq_data.chip(): dc097b50,
>>>>>>>>>>>> [  306.761947] 0xdc097b50
>>>>>>>>>>>> [  306.761954] ->action(): da097380
>>>>>>>>>>>> [  306.761960] ->action->handler(): c078dce4,
>>>>>>>>>>>> [  306.761976] gpio_sysfs_irq+0x0/0x24
>>>>>>>>>>>> [  306.761985]    IRQ_NOPROBE set
>>>>>>>>>>>> [  306.761995] unexpected IRQ trap at vector 58
>>>>>>>>>>>> [  306.766311] irq 88, desc: dc1be400, depth: 0, count: 1,
>>>>>>>>>>>> unhandled:
>>>>>>>>>>>> 0
>>>>>>>>>> [  306.766318] ->handle_irq():  c01a810c,
>>>>>>>>>>>> [  306.766330] handle_edge_irq+0x0/0x194
>>>>>>>>>>>> [  306.766336] ->irq_data.chip(): dc097b50,
>>>>>>>>>>>> [  306.766344] 0xdc097b50
>>>>>>>>>>>> [  306.766351] ->action(): da097380
>>>>>>>>>>>> [  306.766357] ->action->handler(): c078dce4,
>>>>>>>>>>>> [  306.766366] gpio_sysfs_irq+0x0/0x24
>>>>>>>>>>>> [  306.766373]    IRQ_NOPROBE set
>>>>>>>>>>>> [  306.766380] unexpected IRQ trap at vector 58
>>>>>>>>>>>> [  306.892617] irq 88, desc: dc1be400, depth: 0, count: 2,
>>>>>>>>>>>> unhandled:
>>>>>>>>>>>> 0
>>>>>>>>>> [  306.892634] ->handle_irq():  c01a810c,
>>>>>>>>>>>> [  306.892666] handle_edge_irq+0x0/0x194
>>>>>>>>>>>> [  306.892673] ->irq_data.chip(): dc097b50,
>>>>>>>>>>>> [  306.892683] 0xdc097b50
>>>>>>>>>>>> [  306.892690] ->action(): da097380
>>>>>>>>>>>> [  306.892697] ->action->handler(): c078dce4,
>>>>>>>>>>>> [  306.892712] gpio_sysfs_irq+0x0/0x24
>>>>>>>>>>>> [  306.892723]    IRQ_NOPROBE set
>>>>>>>>>>>> [  306.892732] unexpected IRQ trap at vector 58
>>>>>>>>>>>> [  306.897047] irq 88, desc: dc1be400, depth: 0, count: 2,
>>>>>>>>>>>> unhandled:
>>>>>>>>>>>> 0
>>>>>>>>>> [  306.897054] ->handle_irq():  c01a810c,
>>>>>>>>>>>> [  306.897065] handle_edge_irq+0x0/0x194
>>>>>>>>>>>> [  306.897071] ->irq_data.chip(): dc097b50,
>>>>>>>>>>>> [  306.897079] 0xdc097b50
>>>>>>>>>>>> [  306.897086] ->action(): da097380
>>>>>>>>>>>> [  306.897092] ->action->handler(): c078dce4,
>>>>>>>>>>>> [  306.897101] gpio_sysfs_irq+0x0/0x24
>>>>>>>>>>>> [  306.897108]    IRQ_NOPROBE set
>>>>>>>>>>>> [  306.897115] unexpected IRQ trap at vector 58
>>>>>>>>>>>> Best regards,
>>>>>>>>>>>> Branislav
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Xenomai mailing list
>>>>>>>>>>>> Xenomai@xenomai.org
>>>>>>>>>>>> https://xenomai.org/mailman/listinfo/xenomai
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Xenomai mailing list
>>>>>>>>>>> Xenomai@xenomai.org
>>>>>>>>>>> https://xenomai.org/mailman/listinfo/xenomai
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Xenomai mailing list
>>>>>>>> Xenomai@xenomai.org
>>>>>>>> https://xenomai.org/mailman/listinfo/xenomai
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Xenomai mailing list
>>>>>>> Xenomai@xenomai.org
>>>>>>> https://xenomai.org/mailman/listinfo/xenomai
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Xenomai mailing list
>>>>> Xenomai@xenomai.org
>>>>> https://xenomai.org/mailman/listinfo/xenomai
>>>>>
>
> _______________________________________________
> Xenomai mailing list
> Xenomai@xenomai.org
> https://xenomai.org/mailman/listinfo/xenomai
>



_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai

Reply via email to