This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Serial Tx problem


Hi All

I am using an Intel PXA261. I have the BT-UART setup for 115200 baud
with FIFOs enabled (half-full thresholds). Up to now we have only
transmitted low-volume, bursty trafiic through the UART and out to our
Bluetooth device. We have recently attempted to stream a lot (>1MB) of
data through the UART and have come across an 'interesting' problem.

Every once in a while the transmission just stops. When we detected that
the buffer (in the io layer) was no longer being drained, we inspected
the IIR register and the status indicated that the THR and the
shift-register were both empty. So why did everything just grind to a
halt? It looks like the UART did not generate an interrupt. Anyway, we
manually loaded the THR and off we went again until, some time into the
future it all stopped again. Once more the IIR gave the same info.

Upon consulting the newsgroup archives, I came across the following
thread:

http://sourceware.org/ml/ecos-discuss/2005-05/msg00243.html

This looked like what we needed (although if this really is the required
fix it doesn't really explain how our Tx ever gets going in the first
place as data is only loaded into the THR upon a Tx interrupt, so how
does the first byte ever get in there? Does the BT-UART generate an
interrupt when it is empty?). We implemented this fix and all was well
as long as we used non-blocking IO calls. If we switched to blocking IO,
we were back in the original situation.

Can anyone shed any more light on this problem?

Any help appreciated.

Andy Atkinson


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]