[En-Nut-Discussion] NutOS serial driver
Ole Reinhardt
ole.reinhardt at embedded-it.de
Tue Nov 3 11:36:11 CET 2009
Hi Jason,
> I am using the NutOS v4.8.0. The application that I am writing needs to
> received 2070 bytes in one shot and also transmit 4096 bytes in one
> shot via RS232, I enabled interruptions to detect the end of the
> packet when I received data. If I increase the USART_RXBUFSIZ to 3072
> bytes and the USART_TXBUFSIZ tp 5120. Do I have to have any
> considerations? Will The nutOS v4.8.0 crush due to this changes?
Some time ago we just had a discussion concerning a bug in the serial
driver implementation triggered when changing the rx / tx buffer size.
If you like to do so you should always also set the hight and low
watermark of the rx an tx buffers. Otherwise you might get corrupted
data.
At least the size of your buffers is only limited by the available free
memory. As Ulrich just mentioned you should better take into account if
you realy need such large buffers.
If you want to check if the buffer is empty (tx as completed) you can
use the following code:
int cycle = 0;
uint32_t parm;
do {
_ioctl(_fileno(uart0), UART_GETSTATUS, &parm);
NutSleep(10);
} while (!(parm & UART_TXBUFFEREMPTY) || (cycle > 1000));
Btw: Instead of sleeping you could do something usefull too...
Bye,
Ole
--
_____________________________________________________________
| |
| Embedded-IT |
| |
| Ole Reinhardt Tel. / Fax: +49 (0)271 7420433 |
| Luisenstraße 29 Mobil: +49 (0)177 7420433 |
| 57076 Siegen eMail: ole.reinhardt at embedded-it.de |
| Germany Web: http://www.embedded-it.de |
|_____________________________________________________________|
More information about the En-Nut-Discussion
mailing list