Including Comedi devices in Simulink RTW model
Stienen, A.H.A. (CTW)
a.h.a.stienen at utwente.nl
Tue Jan 10 09:27:11 CET 2006
(Second try to send this message, after the first one hasn't shown up
after a day's waiting. Sorry for the possible double posting.)
Hello,
I'm having a problem very similar the one from Todd M. Drullinger a year
ago (https://mail.rtai.org/pipermail/rtai/2005-March/010503.html).
Perhaps somebody has found a solution?
I've installed Comedi 0.7.70, Comedilib 0.7.22 and RTAI 3.2 according to
Roberto Bucher RTAI-Lab Tutorial version 0.50 (November 2005). I'm using
Matlab 6.5 on Windows to generate the source code, after which I compile
and run this code on a Linux box with Kernel version 2.4.27, patched
with the RTAI HAL/ADEOS patch included in the RTAI download.
The test model included with RTAI-Lab is working fine. I can generate
the code, compile and run it, and then access the running program with
xrtailab. However, when I include a RTAI-Lab Comedi device (for instance
the data_read block), the compiled program will give this error when I
try to run it:
´óÿ¿Pôÿ¿) opened.
Comedi find_subdevice failed (No analog input)
Cannot init mailbox
As far as I understand it, I've loaded all the required modules. I've
adapted a (non-RTAI-Lab) test program named 'encoder.c' which came with
the NI_660x drivers and when I try to run comedi_find_subdevice_by_type
in this test program (the function which is giving the error above), it
workes just fine and I can access the in- and output ports of my three
NI cards in this way.
Can anybody tell me what is going on?
As many newbie questions on this list are followed by a request for the
lsmod, dmesg and other similar informatie, I've included my dmesg output
(both directly after running the RTAI-Lab generated program with Comedi
devices, as directly after boot), lsmod output and rc.local script. I'm
sorry for the very long email...
Kind regards,
Arno Stienen.
*** DMESG DIRECTLY AFTER RUNNING RTAI-LAB GENERATED PROGRAM ***
smb_trans2_request: result=-104, setting invalid
smb_retry: successful, new pid=166, generation=2
smb_trans2_request: result=-104, setting invalid
smb_retry: successful, new pid=170, generation=2
BAD: null rt_fun_ext[9]
BAD: null rt_fun_ext[9]
BAD: null rt_fun_ext[9]
BAD: null rt_fun_ext[9]
LXRT releases PID 353 (ID: encoder).
*** LOADED MODULES ***
Module Size Used by Not tainted
ni_660x 14144 0
ni_pcimio 38752 0
8255 2240 0 [ni_pcimio]
comedi_fc 864 0 [ni_pcimio]
ni_670x 1904 0
mite 3028 0 [ni_660x ni_pcimio ni_670x]
rtai_lxrt 56504 0 [ni_pcimio]
rtai_fifos 26796 0 (unused)
rtai_msg 12880 0 (unused)
rtai_netrpc 14548 0 (unused)
rtai_mbx 6928 0 [rtai_netrpc]
rtai_comedi 1868 0 (unused)
kcomedilib 5616 0 [rtai_comedi]
comedi 22496 0 [ni_660x ni_pcimio 8255 comedi_fc
ni_670x kcomedilib]
rtai_sem 11040 0 [rtai_netrpc rtai_mbx rtai_comedi]
rtai_shm 5968 0 [rtai_comedi]
rtai_ksched 57656 0 [rtai_fifos rtai_msg rtai_netrpc
rtai_mbx rtai_comedi kcomedilib rtai_sem rtai_shm]
rtai_hal 9684 0 [ni_660x ni_pcimio 8255 comedi_fc
ni_670x mite rtai_lxrt rtai_fifos rtai_msg rtai_netrpc rtai_mbx
rtai_comedi kcomedilib comedi rtai_sem rtai_shm rtai_ksched]
smbfs 39824 2 (autoclean)
ntfs 51232 1 (autoclean)
agpgart 43684 0 (unused)
e1000 65196 1
eepro100 18996 1
mii 2272 0 [eepro100]
*** RC.LOCAL SCRIPT INITIALIZING COMEDI ***
# I've softlinked the RTAI modules to the module tree; the modprobing
# of the modules below results in the loading of all the modules as
# seen above.
/sbin/modprobe rtai_comedi
/sbin/modprobe rtai_netrpc
/sbin/modprobe rtai_msg
/sbin/modprobe rtai_fifos
/sbin/modprobe rtai_lxrt
/sbin/modprobe ni_670x
/sbin/modprobe ni_pcimio
/sbin/modprobe ni_660x
/usr/local/sbin/comedi_config /dev/comedi0 ni_670x
/usr/local/sbin/comedi_config /dev/comedi1 ni_pcimio
/usr/local/sbin/comedi_config /dev/comedi2 ni_660x
*** COMPLETE DMESG AFTER BOOT ***
Linux version 2.4.27-adeos (arno at AR2) (gcc version 3.3.6) #2 Thu Dec 29
11:26:07 CET 2005
[...]
Adeos 2.4r15/x86: Root domain Linux registered.
[...]
Adeos: Pipelining started.
[...]
RTAI[hal]: mounted (PIPED).
Adeos: Domain RTAI registered.
RTAI[hal]: 3.2 mounted over Adeos 2.4r15/x86.
RTAI[hal]: compiled with gcc version 3.3.6.
RTAI[malloc]: kmalloced extent cdc20000, size 131072.
RTAI[malloc]: loaded (global heap size=131072 bytes).
RTAI[sched_lxrt]: loaded (PIPED, UP, KERNEL SPACE).
RTAI[sched_lxrt]: timer=periodic (8254-PIT),.
RTAI[sched_lxrt]: standard tick=100 hz, CPU freq=1193180 hz.
RTAI[sched_lxrt]: timer setup=1676 ns, resched latency=2514 ns.
***** WARNING: GLOBAL HEAP NEITHER SHARABLE NOR USABLE FROM USER SPACE
(use the vmalloc option for RTAI malloc) *****
comedi: version 0.7.70 - David Schleef <ds at schleef.org>
rt_pend_tq: RT bottom half scheduler initialized OK
RTAI[malloc]: kmalloced extent cda00000, size 131072.
RTAI[malloc]: loaded (global heap size=131072 bytes).
RTAI[sched_lxrt]: loaded (PIPED, UP, KERNEL/USER SPACE).
RTAI[sched_lxrt]: timer=periodic (8254-PIT),.
RTAI[sched_lxrt]: standard tick=100 hz, CPU freq=1193180 hz.
RTAI[sched_lxrt]: timer setup=1676 ns, resched latency=2514 ns.
Available NI device IDs: 0x1310 0x2ca0 0x2c90
comedi0: ni_670x: <6>PCI: Found IRQ 7 for device 03:00.0
MITE:0xfeafe000 mapped to d0cdb000 DAQ:0xfeafd000 mapped to d0cdd000
PCI-6703attached
comedi1: ni_pcimio: pci-6034e<6>PCI: Found IRQ 10 for device 03:01.0
MITE:0xfeafc000 mapped to d0cdf000 DAQ:0xfeafb000 mapped to d0ce1000
( irq = 10 )
comedi2: ni_660x: <6>PCI: Found IRQ 3 for device 03:02.0
PCI: Sharing IRQ 3 with 00:1f.3
MITE:0xfeafa000 mapped to d0cf4000 mite: detected NI660X board, using
PCI DAQ SIZE of 8k
DAQ:0xfeaf8000 mapped to d0cf6000
mite: detected NI6602, using other I/O Window Base Size register
PCI-6602 NI6602: Setting Counterswap on second TIO
attached
More information about the Rtai
mailing list