On 2013-02-13 13:22, Zemskov, Evgeny wrote:
>> Is there a packet frequency that is still fine? Are you sure your reader
>> task is able to keep up with the data stream? What is your RX FIFO
>> depth? Your hardware is 16550A compatible?
> 
>> Check the rate of RX interrupts and what status reported on each
>> (rt_16550_rx_interrupt). Do they complete successfully at all, only fail
>> after a while? Do they come regularly? Maybe something (SMI?) is
>> blocking interrupts for a longer period, causing the FIFO overflow.
> 
> At the moment we're testing with low frequencies, the same problem 
> occurs even at 1..2 second intervals between packets.
> The reader is definitely quick enough (essentially, it only executes an 
> rt_printf 
> with read notification), and it handles in time packets with at least 50msec 
> intervals.
> 
> Interesting thing is that problem occurs _only_ if packets are received by 
> UART 
> during the startup or shutdown of the reader application.
> In latter case, rt_dev_read fails on first packet received after startup 
> (probably, when
>  next RX interrupt is triggered).
> No problem occurs is data is received by UART when application is not running.
> 
> All RX interrupts are triggered and executed in xeno_16550A driver correctly 
> (I've added printk's in rt_16550_rx_interrupt), even after rt_dev_read has 
> failed 
> (but the application is still running and keeps driver initialized)/

Sorry, I still don't fully get the error: rt_dev_read suddenly returns
-EIO and, after that, never works again until you do the hardware
re-init via the Linux driver?

After the first EIO, what does the interrupt handler read from the LSR
register from that on? Always RTSER_LSR_OVERRUN_ERR?

> 
> Hardware is a serial port built into ASUS P4 motherboard with i865 chipset. 
> Couldn't find which UART are they using, but it works fine with everything.
> I believe that its Rx FIFO depth is standard 16 bytes (at least Rx trigger 
> level can be set to standard 1-4-8-14 bytes)

And you leave the trigger depth at "1", right?

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to