Re: [Xenomai-help] Cross-link.c ---RTSER_RTIOC_WAIT_EVENT

2012-03-30 Thread Wolfgang Grandegger
On 03/29/2012 05:26 PM, Minh GIANG wrote:
 i want to revive the topic over the problem RTSER_RTIOC_WAIT_EVENT
 while compiling cross-link.c program. I cann't resolve my problem
 after doing some solution given by the others
 
 Loading module:
 
 insmod ./xeno_16550A.ko io=0x3f8,0x2f8 irq=4,3 tx_fifo=10,20

Hm, is a FIFO size of 20 supported by the hardware? For a first try I
would drop tx_fifo=10,20 (using the default of 16 for both uarts).

 start_index=0 (i have two serial ports on my pc)
 
 running crosslink test:
 
 main : write-file opened
 main : write-config written
 main : read-file opened
 main : read-config written
 main : write-task created
 main : read-task created
 main : starting write-task
 main : starting read-task
  Nr |   write-irq|irq-read|   write-read   |
 ---
 read_task: error on RTSER_RTIOC_WAIT_EVENT, Connection timed out
 read_task: error on RTSER_RTIOC_WAIT_EVENT, Connection timed out
 
 ...
 
 
 
 running test:
 
 cat /proc/xenomai/irq
 
 IRQ CPU0
   3:1089 rtser1
   4:5155 rtser0

You get interrupts, at least, but not the same amount, strange. What
cross-link command options do you use?

Wolfgang.

___
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help


Re: [Xenomai-help] Cross-link.c ---RTSER_RTIOC_WAIT_EVENT

2012-03-30 Thread Wolfgang Grandegger
On 03/30/2012 01:15 PM, Minh GIANG wrote:
 hello,
 
 after testing a lot of time, i have one port which doesn't work well in
 writing (material problem i think). Now it works in writing and reading
 with one condtion that i have to remove the function
 err=rt_dev_ioctl(...) because it returns error.

Hm, what does rt_dev_ioctl() return?

 could you tell me the interet of this function? i think that rt_dev_read is
 enough to read the message.

Well, the ioctl waits for certain events and informs the task when they
occur. cross_link.c actually waits for the RTSER_EVENT_RXPEND meaning
that RX data are available. So, the sub-sequent read will/must work. You
do not need to call that ioctl but the read directly. But I doubt that
the read return successfully.

Maybe the interrupt service routine does detect errors due to hardware
problems:

http://www.rts.uni-hannover.de/xenomai/lxr/source/ksrc/drivers/serial/16550A.c#213

and that's why the interrupt counter increases.

You could check that by setting RTSER_EVENT_ERRPEND or reading the
status using the ioctl request RTSER_RTIOC_GET_STATUS.

Wolfgang.

 On Fri, Mar 30, 2012 at 10:45 AM, Minh GIANG giang.hm...@gmail.com wrote:
 
 hello,
 thanks for your response. i compile cross-link program in ECLIPSE C++ so
 my command in setting configuration is
 command :   g++
 All options:   -l/usr/xenomai/include -O3 -wall -c -fmessage-length=0

 i connected 2 serial port of my computer by one cable in order to make the
 test. The write task works well but the other task is blocked by 
 rt_dev_ioctl(...).as
 i already mentionned and when i removed rt_dev_ioctl, the rt_dev_read
 function return 0
 I did what you said, but it doesn't work yet

 On Fri, Mar 30, 2012 at 8:43 AM, Wolfgang Grandegger 
 w...@grandegger.comwrote:

 On 03/29/2012 05:26 PM, Minh GIANG wrote:
 i want to revive the topic over the problem RTSER_RTIOC_WAIT_EVENT
 while compiling cross-link.c program. I cann't resolve my problem
 after doing some solution given by the others

 Loading module:

 insmod ./xeno_16550A.ko io=0x3f8,0x2f8 irq=4,3 tx_fifo=10,20

 Hm, is a FIFO size of 20 supported by the hardware? For a first try I
 would drop tx_fifo=10,20 (using the default of 16 for both uarts).

 start_index=0 (i have two serial ports on my pc)

 running crosslink test:

 main : write-file opened
 main : write-config written
 main : read-file opened
 main : read-config written
 main : write-task created
 main : read-task created
 main : starting write-task
 main : starting read-task
  Nr |   write-irq|irq-read|   write-read   |
 ---
 read_task: error on RTSER_RTIOC_WAIT_EVENT, Connection timed out
 read_task: error on RTSER_RTIOC_WAIT_EVENT, Connection timed out

 ...



 running test:

 cat /proc/xenomai/irq

 IRQ CPU0
   3:1089 rtser1
   4:5155 rtser0

 You get interrupts, at least, but not the same amount, strange. What
 cross-link command options do you use?

 Wolfgang.



 


___
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help


[Xenomai-help] difference Analogy API et rtdm API in xenomai

2012-03-30 Thread Minh GIANG
hello everybody,

i have a small question, which is the difference between the analogy API
and rtdm API in xenomai. for exemple, i think that i can open a port for
data transmission in the two api.

Thanks,
___
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help


Re: [Xenomai-help] Cross-link.c ---RTSER_RTIOC_WAIT_EVENT

2012-03-30 Thread Minh GIANG
hi,

with option RTSER_RTIOC_WAIT_EVENT in rt_dev_ioctl(), this function returns
un number -110 (Connection timed out)
with option RTSER_RTIOC_GET_STATUS in rt_dev_ioctl(), this function returns
un number 0 (not message)

Anyway, currently it works without  rt_dev_ioctl(), i can see rt_dev_read()
wait data event (with debug mode) while giving the period of write
task,  for exemple  = two seconds.

so can i remove the funtion rt_dev_ioctl?


On Fri, Mar 30, 2012 at 3:31 PM, Wolfgang Grandegger w...@grandegger.comwrote:

 On 03/30/2012 01:15 PM, Minh GIANG wrote:
  hello,
 
  after testing a lot of time, i have one port which doesn't work well in
  writing (material problem i think). Now it works in writing and reading
  with one condtion that i have to remove the function
  err=rt_dev_ioctl(...) because it returns error.

 Hm, what does rt_dev_ioctl() return?

  could you tell me the interet of this function? i think that rt_dev_read
 is
  enough to read the message.

 Well, the ioctl waits for certain events and informs the task when they
 occur. cross_link.c actually waits for the RTSER_EVENT_RXPEND meaning
 that RX data are available. So, the sub-sequent read will/must work. You
 do not need to call that ioctl but the read directly. But I doubt that
 the read return successfully.

 Maybe the interrupt service routine does detect errors due to hardware
 problems:


 http://www.rts.uni-hannover.de/xenomai/lxr/source/ksrc/drivers/serial/16550A.c#213

 and that's why the interrupt counter increases.

 You could check that by setting RTSER_EVENT_ERRPEND or reading the
 status using the ioctl request RTSER_RTIOC_GET_STATUS.

 Wolfgang.

  On Fri, Mar 30, 2012 at 10:45 AM, Minh GIANG giang.hm...@gmail.com
 wrote:
 
  hello,
  thanks for your response. i compile cross-link program in ECLIPSE C++ so
  my command in setting configuration is
  command :   g++
  All options:   -l/usr/xenomai/include -O3 -wall -c -fmessage-length=0
 
  i connected 2 serial port of my computer by one cable in order to make
 the
  test. The write task works well but the other task is blocked by
 rt_dev_ioctl(...).as
  i already mentionned and when i removed rt_dev_ioctl, the rt_dev_read
  function return 0
  I did what you said, but it doesn't work yet
 
  On Fri, Mar 30, 2012 at 8:43 AM, Wolfgang Grandegger w...@grandegger.com
 wrote:
 
  On 03/29/2012 05:26 PM, Minh GIANG wrote:
  i want to revive the topic over the problem RTSER_RTIOC_WAIT_EVENT
  while compiling cross-link.c program. I cann't resolve my problem
  after doing some solution given by the others
 
  Loading module:
 
  insmod ./xeno_16550A.ko io=0x3f8,0x2f8 irq=4,3 tx_fifo=10,20
 
  Hm, is a FIFO size of 20 supported by the hardware? For a first try I
  would drop tx_fifo=10,20 (using the default of 16 for both uarts).
 
  start_index=0 (i have two serial ports on my pc)
 
  running crosslink test:
 
  main : write-file opened
  main : write-config written
  main : read-file opened
  main : read-config written
  main : write-task created
  main : read-task created
  main : starting write-task
  main : starting read-task
   Nr |   write-irq|irq-read|   write-read   |
  ---
  read_task: error on RTSER_RTIOC_WAIT_EVENT, Connection timed out
  read_task: error on RTSER_RTIOC_WAIT_EVENT, Connection timed out
 
  ...
 
 
 
  running test:
 
  cat /proc/xenomai/irq
 
  IRQ CPU0
3:1089 rtser1
4:5155 rtser0
 
  You get interrupts, at least, but not the same amount, strange. What
  cross-link command options do you use?
 
  Wolfgang.
 
 
 
 


___
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help


Re: [Xenomai-help] Cross-link.c ---RTSER_RTIOC_WAIT_EVENT

2012-03-30 Thread Wolfgang Grandegger
On 03/30/2012 04:34 PM, Minh GIANG wrote:
 hi,
 
 with option RTSER_RTIOC_WAIT_EVENT in rt_dev_ioctl(), this function returns
 un number -110 (Connection timed out)
 with option RTSER_RTIOC_GET_STATUS in rt_dev_ioctl(), this function returns
 un number 0 (not message)

You should call this function *after* the timeout happened. What does
the struct rtser_status  contain? Especially the line_status is of
interest.

 
 Anyway, currently it works without  rt_dev_ioctl(), i can see rt_dev_read()
 wait data event (with debug mode) while giving the period of write
 task,  for exemple  = two seconds.
 
 so can i remove the funtion rt_dev_ioctl?

The rt_dev_ioctl should work. You can remove it, but the problem will
remain. To debug the problem you could also add some printk's here:

http://www.rts.uni-hannover.de/xenomai/lxr/source/ksrc/drivers/serial/16550A.c#223

Especially the value of iir might be interesting.

Wolfgang.

___
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help