Hi Alexis,

Thanks a lot !!

I switched to the analogy branch, configured the kernel to build the analogy
kernel moduels and compiled it. However, here is what I get:

r...@xenomai:~# dmesg
...snip...
[   11.413779] Comedi: MITE: Available NI device IDs: 0x717f(used)
[   11.430558] analogy_8255: module license 'unspecified' taints kernel.
[   11.430561] Disabling lock debugging due to kernel taint
[   11.459390] analogy_ni_mio: Unknown symbol ni_tio_handle_interrupt
[   11.459441] analogy_ni_mio: Unknown symbol ni_tio_set_mite_channel
[   11.459577] analogy_ni_mio: Unknown symbol ni_tio_cmd_mask
[   11.459805] analogy_ni_mio: Unknown symbol ni_tio_init_counter
[   11.459856] analogy_ni_mio: Unknown symbol ni_tio_winsn
[   11.459997] analogy_ni_mio: Unknown symbol ni_gpct_device_destroy
[   11.460047] analogy_ni_mio: Unknown symbol ni_tio_insn_config
[   11.460328] analogy_ni_mio: Unknown symbol ni_tio_acknowledge_and_confirm
[   11.460419] analogy_ni_mio: Unknown symbol ni_tio_cmdtest
[   11.460511] analogy_ni_mio: Unknown symbol ni_tio_cancel
[   11.460567] analogy_ni_mio: Unknown symbol ni_gpct_device_construct
[   11.460688] analogy_ni_mio: Unknown symbol ni_tio_rinsn
[   11.460737] analogy_ni_mio: Unknown symbol ni_tio_cmd
...snip...

r...@xenomai:~# lspci -v

...snip...
06:00.0 Class ff00: National Instruments Device 717f
    Flags: bus master, medium devsel, latency 64, IRQ 11
    Memory at f7dfe000 (32-bit, non-prefetchable) [size=4K]
    Memory at f7dff000 (32-bit, non-prefetchable) [size=4K]
    Kernel driver in use: mite
    Kernel modules: analogy_ni_pcimio
...snip...

r...@xenomai:~# lsmod | grep analogy
analogy_ni_tio         26852  0
analogy_8255            4388  0
analogy_ni_mite        12644  1 analogy_ni_tio
xeno_analogy           39108  3 analogy_ni_tio,analogy_8255,
analogy_ni_mite

I don't really know how to use analogy_config... since

r...@xenomai:/usr/xenomai/sbin# ./analogy_config analogy0 analogy_ni_mite
comedi_config: comedi_snd_attach failed ret=-22

when I run

r...@xenomai:/usr/xenomai/bin# ./cmd_read
cmd_read: a4l_fill_desc failed (ret=-22)
*** glibc detected *** ./cmd_read: free(): invalid next size (fast):
0x08052008 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7f5f604]
/lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb7f615b6]
./cmd_read[0x80496ae]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7f06775]
./cmd_read[0x8048f41]
======= Memory map: ========
08048000-0804e000 r-xp 00000000 08:01 13109565   /usr/xenomai/bin/cmd_read
0804e000-0804f000 r--p 00005000 08:01 13109565   /usr/xenomai/bin/cmd_read
0804f000-08050000 rw-p 00006000 08:01 13109565   /usr/xenomai/bin/cmd_read
08050000-08073000 rw-p 00000000 00:00 0          [heap]
b7d00000-b7d21000 rw-p 00000000 00:00 0
b7d21000-b7e00000 ---p 00000000 00:00 0
b7ecf000-b7edc000 r-xp 00000000 08:01 11894849   /lib/libgcc_s.so.1
b7edc000-b7edd000 r--p 0000c000 08:01 11894849   /lib/libgcc_s.so.1
...

which is I guess due to the unsuccessful analogy_config. My question is,
which driver do I have to use ?

Thanks,
 peter


On Thu, Oct 22, 2009 at 11:49 PM, Alexis Berlemont
<[email protected]>wrote:

> Hi,
>
> On Thu, Oct 22, 2009 at 7:30 AM, Peter Pastor <[email protected]>
> wrote:
> > Hi Alexis,
> >
> > Sorry for the delay, I was out of town.
> >
> > I have tried the statical configuration and it seemed to work, i.e. I
> could
> > execute the example program /usr/xenomai/bin/cmd_read. However, I wanted
> to
> > run the task in real-time and added the -r option which results in
> > r...@xenomai:/usr/xenomai/bin# ./cmd_read -vr
> > cmd_read: switching to real-time mode
> > cmd_read: device comedi0 opened (fd=0)
> > cmd_read: basic descriptor retrieved
> >      subdevices count = 14
> >      read subdevice index = 0
> >      write subdevice index = 1
> > cmd_read: complex descriptor retrieved
> > cmd_read: channel 0
> >      ranges count = 7
> >      range's size = 16 (bits)
> > cmd_read: channel 1
> >      ranges count = 7
> >      range's size = 16 (bits)
> > cmd_read: channel 2
> >      ranges count = 7
> >      range's size = 16 (bits)
> > cmd_read: channel 3
> >      ranges count = 7
> >      range's size = 16 (bits)
> > cmd_read: scan size = 8
> > cmd_read: size to read = 800
> > cmd_read: command successfully sent
> > 0xff 0xff 0xff 0xff 0xff 0xff 0x81 0xf9
> > 0xff 0xff 0xff 0xff 0xff 0xff 0xca 0xfb
> > ...snip...
> > 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
> > cmd_read: comedi_read failed (ret=-2)
>
> -2 is -ENOENT, which means there is nothing more to acquire. The
> return code should have been 0 but I 'd rather send -2, which is not
> very compliant. It is something I need to work on.
>
> > The cmd_write however, seems to work
> >
> > r...@xenomai:/usr/xenomai/bin# ./cmd_write -rv
> > cmd_write: switching to real-time mode
> > cmd_write: device comedi0 opened (fd=0)
> > cmd_write: basic descriptor retrieved
> >      subdevices count = 14
> >      read subdevice index = 0
> >      write subdevice index = 1
> > cmd_write: complex descriptor retrieved
> > cmd_write: channel 0
> >      ranges count = 3
> >      range's size = 16 (bits)
> > cmd_write: channel 1
> >      ranges count = 3
> >      range's size = 16 (bits)
> > cmd_write: scan size = 4
> > cmd_write: size to write  = 400
> > cmd_write: command successfully sent
> > cmd_write: 400 bytes successfully written
> >
> > also...
> > r...@xenomai:/usr/xenomai/bin# ./insn_read -rv
> > insn_read: switching to real-time mode
> > insn_read: device (null) opened (fd=0)
> > insn_read: basic descriptor retrieved
> >      subdevices count = 14
> >      read subdevice index = 0
> >      write subdevice index = 1
> > insn_read: complex descriptor retrieved
> > insn_read: channel width is 16 bits
> > insn_read: global scan size is 20
> > 0xff 0xff
> > 0x0 0x0
> > 0xff 0xff
> > 0x0 0x0
> > 0xff 0xff
> > 0x0 0x0
> > 0xff 0xff
> > 0x0 0x0
> > 0xff 0xff
> > 0x0 0x0
> > insn_read: 20 bytes successfully received
> >
> > What I would like to make sure is that I can write to comedi0 without
> having
> > mode switches. Therefore I copied cmd_write and added a rt_task_spawn to
> > make sure that the task_body runs in real-time (even though the -r option
> > results in the same behavior.) This way, I could add/change code to check
> > for mode switches... However, since unfortunately I am debugging things
> > remotely I cannot "see" the output (the display) of our oscilloscope that
> is
> > connected to the pci express card. I'll send an email as soon as I know
> > more.
>
> Be careful with the printf() I inserted in the test programs cmd_read,
> cmd_write; they will make you switch in the secondary domain.
>
> > Besides that, I updated to your latest xenomai and re-compiled having the
> > comedi drivers compiled as loadable modules. After booting the new kernel
> I
> > can see the following:
> >
> > xenomai:~> uname -a
> > Linux xenomai 2.6.30.5-xenomai-ipipe-comedi #6 SMP Wed Oct 21 20:05:37
> PDT
> > 2009 i686 GNU/Linux
> > xenomai:~> lspci -v
> > ...snip...
> > 06:00.0 Class ff00: National Instruments Device 717f
> >     Flags: bus master, medium devsel, latency 64, IRQ 11
> >     Memory at f7dfe000 (32-bit, non-prefetchable) [size=4K]
> >     Memory at f7dff000 (32-bit, non-prefetchable) [size=4K]
> >     Kernel driver in use: mite
> >     Kernel modules: comedi_ni_pcimio
> > ...snip...
> > xenomai:~> lsmod | grep come
> > comedi_ni_tio          26884  0
> > comedi_8255             4420  0
> > comedi_ni_mite         12708  1 comedi_ni_tio
> > xeno_comedi            39908  3 comedi_ni_tio,comedi_8255,comedi_ni_mite
> >
> >
> > However, the problem is that there is:
> >
> > r...@xenomai:/usr/xenomai/sbin# ./comedi_config comedi0 comedi_pcimio
> > comedi_config: comedi_snd_attach failed ret=-22
> >
> > also...
> >
> > r...@xenomai:/usr/xenomai/sbin# ./comedi_config comedi0 comedi_ni_mite
> > comedi_config: comedi_snd_attach failed ret=-22
> >
> > r...@xenomai:/usr/xenomai/sbin# dmesg
> > ...snip...
> > [   11.298460] Comedi: MITE: Available NI device IDs: 0x717f(used)
> > [   11.305333] comedi_8255: module license 'unspecified' taints kernel.
> > [   11.305337] Disabling lock debugging due to kernel taint
> > [   11.331840] comedi_ni_mio: Unknown symbol ni_tio_handle_interrupt
> > [   11.331936] comedi_ni_mio: Unknown symbol ni_tio_set_mite_channel
> > [   11.331986] comedi_ni_mio: Unknown symbol ni_tio_cmd_mask
> > [   11.332171] comedi_ni_mio: Unknown symbol ni_tio_init_counter
> > [   11.332317] comedi_ni_mio: Unknown symbol ni_tio_winsn
> > [   11.332416] comedi_ni_mio: Unknown symbol ni_gpct_device_destroy
> > [   11.332466] comedi_ni_mio: Unknown symbol ni_tio_insn_config
> > [   11.332696] comedi_ni_mio: Unknown symbol
> ni_tio_acknowledge_and_confirm
> > [   11.332786] comedi_ni_mio: Unknown symbol ni_tio_cmdtest
> > [   11.332921] comedi_ni_mio: Unknown symbol ni_tio_cancel
> > [   11.332976] comedi_ni_mio: Unknown symbol ni_gpct_device_construct
> > [   11.333139] comedi_ni_mio: Unknown symbol ni_tio_rinsn
> > [   11.333189] comedi_ni_mio: Unknown symbol ni_tio_cmd
> > ...snip...
> >
> > How can I fix this ? Or should I simply work with the statical linked
> comedi
> > drivers ??
>
> I will update my git repository soon with these fixes. However, could
> you switch to the analogy branch ? As you may know, comedi/RTDM has
> been renamed as analogy:
> https://mail.gna.org/public/xenomai-core/2009-09/msg00016.html
>
> Alexis.
>
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to