I've solved my problem using code changes
diff --git a/c/src/lib/libbsp/i386/shared/comm/uart.c
b/c/src/lib/libbsp/i386/shared/comm/uart.c
index 3c4d42a..3552fe6 100644
--- a/c/src/lib/libbsp/i386/shared/comm/uart.c
+++ b/c/src/lib/libbsp/i386/shared/comm/uart.c
@@ -568,12 +568,13 @@ BSP_uart_termios_read_com2(int uart)
ssize_t
BSP_uart_termios_write_com1(int minor, const char *buf, size_t len)
{
+ if(len <= 0)
+ {
+ return 0;
+ }
assert(buf != NULL);
- if(len <= 0)
- {
- return 0;
- }
+
/* If there TX buffer is busy - something is royally screwed up */
assert((uread(BSP_UART_COM1, LSR) & THRE) != 0);
@@ -602,13 +603,13 @@ BSP_uart_termios_write_com1(int minor, const char
*buf, size_t len)
ssize_t
BSP_uart_termios_write_com2(int minor, const char *buf, size_t len)
{
- assert(buf != NULL);
+
if(len <= 0)
{
return 0;
}
-
+ assert(buf != NULL);
/* If there TX buffer is busy - something is royally screwed up */
assert((uread(BSP_UART_COM2, LSR) & THRE) != 0);
Is it alright?
On 28.09.2014 19:19, Wendell Silva wrote:
Have you tried:
qemu-system-i386 -serial file:/tmp/1.txt -serial file:/tmp/2.txt
-kernel ...
Or open ttyS1 instead?
--Wendell.
2014-09-28 4:52 GMT-03:00 Олег Мороз <oleg.mo...@mcc.vniiem.ru
<mailto:oleg.mo...@mcc.vniiem.ru>>:
Hello everyone, i'm trying to develop RTEMS app using QEMU VM. How
can i use virtual serial device for two side data exchange between
VM and host machine. I'm trying to use it in that way:
#include <bsp.h> /* for device driver prototypes */
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
#define CONFIGURE_APPLICATION_EXTRA_DRIVERS TTY2_DRIVER_TABLE_ENTRY
#define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 6
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
.....
then in my app i'm trying to open /dev/ttyS2 device
unsigned char data[4] = {1,2,3,4};
int f =open("/dev/ttyS2", O_RDWR | O_NOCTTY | _FNDELAY);
if (f>0)
{
printf("write data %d\n",write(f,data,4));
}
then start QEMU
qemu-system-i386 -serial file:/tmp/1.txt -kernel zvezda_shell.exe
In QEMU shell i've seen
Device: /dev/ttyS2 initialized.
write data 4
But in fact file /tmp/1.txt has no data. How can i solve it and
use QEMU -serial for both side data exchange?
_______________________________________________
devel mailing list
devel@rtems.org <mailto:devel@rtems.org>
http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel