rtems-users Digest, Vol 27, Issue 2

MOLM mads.lemaire at gmail.com
Tue Dec 2 08:07:49 UTC 2008


Alan,

Sorry for wasting your time, after having a quick scan of the BSP source, I
simply drew the conclution that interrupt was enabled, without catching that
the "#define CONSOLE_USE_INTERRUPTS 1" was commented out! Anyway, thanks for
porting BF537 to RTEMS!

MOLM

2008/12/1 Allan Hessenflow <allanh-rtems2 at kallisti.com>

> Ed Sutter wrote:
> > Joel Sherrill wrote:
> > > MOLM wrote:
> > >> I have an application running on a BF537 stamp card, using posix code
> > >> that is working using uClinux on the same card. What I experience now
> > >> is loss of characters, even at 300baud, so I do not think the problem
> > >> is primary interrupthandler related. I have ended up with a test
> > >> scenario connecting the Tx line to the Rx line of the uart, writing a
> > >> string of characters, and then reading one by one characters back.
> > >> When the string written contains more than 3 characters I am only able
> > >> to read back the last three characters. I have scanned through the
> > >> termios implementation, buf it seems to me that the default buffersize
> > >> is not modified by the BSP implemetation. Below is the code I used for
> > >> the test and the output. Anyone experienced something like this?
> > >
> > > Random thoughts without reading the hardware manual.
> > >
> > > Since you have tied the TX to the RX, is there any chance that the
> > > RX has a 3 byte FIFO and the TX has a deeper one?  If this is the
> > > case, then you would keep putting characters into the TX and
> > > simultaneously overflowing the RX.
> > >
> > > Another possibility is that the serial port is polled by default.
>
> > If I recall correctly, the BF537's UART doesn't have a FIFO, so for
> > anything real you have to turn on the DMA engine hooked to the UART.
> > Then, the DMA buffer is essentially the equivalent of the FIFO.
> > Is there any chance that the RTEMS port of the BF537 isn't using
> > DMA?
>
> The Blackfin UART driver in RTEMS does not use DMA.  However there's no
> reason at this point to believe MOLM's application will require it.  I
> just duplicated MOLM's test result with the UART driver in polled mode
> (which is the default).  If I build it interrupt-driven (with the
> configure option CONSOLE_USE_INTERRUPTS=1) then that test passes.  I tried
> making the string somewhat longer with no problems, and I expect it to be
> fine up to the termios buffer size.
>
> Incidentally, when in polled mode, only receiving the last three bytes
> sent is explained by a combination of the tx and rx buffering, not rx
> alone which only has a single byte holding register.  The other two bytes
> are the one being transmitted/reassembled at the time read is called and
> the one still in the transmit holding register.
>
> allan
>
> --
> Allan N. Hessenflow      allanh at kallisti.com
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20081202/8c0d8baa/attachment-0003.html>


More information about the users mailing list