Jonas Witt wrote: > Jonas Witt wrote: >>> Hi everybody, >>> >>> >>> >>> i am having a problem with the serial port driver in xenomai for a while >>> now.. >>> >>> >>> >>> I have tried different programs like >>> http://www.captain.at/xenomai-serial-port-example.php >>> >>> >>> >>> I have also changed the code of cross-link.c to use the same port for >>> writing and reading (as i only have one serial port in my computer). > Opening >>> a port and writing the configuration seems to work form e.. also > writing. >>> The Problem stems from the call to: >>> >>> >>> >>> rt_dev_ioctl(read_fd, RTSER_RTIOC_WAIT_EVENT, &rx_event); >>> >>> >>> >>> which keeps waiting forever and never receives an interrupt. I tried a >>> self-made loopback-adapter and a sensor with a serial interface (so at > > least >>> _something_ should come back). Nothing worked. The serial port is > working >>> fine with the linux-driver, though. I already figured that the calls to >>> rt_dev_write do not work from non-xenomai-tasks (which should really be >>> emphasized in the documentation..) >>> >> Some suggestions: >> >> o check the hardware configuration (ie. the module parameters of >> xeno_16550A) twice, you can easily get them wrong >> >> o check /proc/xenomai/irq for any progress on transmission as well as >> on reception. If there is nothing happen on tx, the IRQ number may be >> wrong, if there is nothing on rx, your port configuration might be >> broken. >> >> o try the driver from trunk, it can handle PnP-related issues (hardware >> gets powered off when Linux driver is removed) >> >> Jan >> >> Thanks for the fast reply! >> >> I am using the following kernel parameters: >> >> kernel /boot/vmlinuz-2.6.19-ipipe root=/dev/sda1 ro 8250.nr_uarts=0 >> xeno_16550A.ioaddr=0x3f8 xeno_16550A.irq=4 >> >OK, that leads to another suggestion: try going the modular path for >xeno_16550A first, it's the more common one. Above /should/ be no >problem /wrt the the RT driver, but kicking 8250 out of the game could >cause that PnP power issue I sketched. > >> >> I got these settings from setserial prior to disabling the kernel-driver. To >> be honest i don't know how to 'check' /proc/xenomai/irq for progress. I took >> a look at the folder prior to and while running my modified cross-link-code >> but irq is an empty file in both cases. Is there some special trick/function >> to handle the files in the proc-folder? > >You mean the file is existing but empty??? That would be fairly uncommon. > >(without any driver loaded) ># cat /proc/xenomai/irq >IRQ CPU0 >217: 0 >226: 0 [virtual] > >The serial driver pops up here once the port is opened. The per-cpu irq >hit counter should then increase as interrupts come in. > >> >> To the last point.. so there is an updated version of the driver >available? >> I think i will try that one.. is it just a question of executing 'make' >and >> modprobing or are there more actions involved? > >No, it's not that easy (more files, changed Makefiles and RTDM API). >First try the modular driver path, ie. keep 8250, switch off the Linux >port with setserial, and load the RT driver as a module. Then, if this >doesn't help, you could consider upgrading your Xenomai installation (at >least for a test) to SVN trunk. > >Jan
Ah, ok.. ehem... i tried to look at the file with gedit.. and it displays nothing.. ;) Now i get: IRQ CPU0 4: 0 rtser0 216: 521 [timer] 226: 620 [virtual] This is how it looks like after the program starts.. after that it increases just the [virtual] and the [timer] counter . Rtser0 stays at 0 all the time (although information is successfully written to the port, judging from the return value of rt_dev_write). So i guess that is where the problem lies.. what can I do about that? Jonas _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
