This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Serial problem on EB40
- To: ecos-discuss at sourceware dot cygnus dot com
- Subject: [ECOS] Serial problem on EB40
- From: Daniel dot Andersson at combitechsystems dot com
- Date: Wed, 11 Jul 2001 08:59:04 +0200
Hi,
I have a quite strange problem with my serial port (using a EB40 board). I
can get a handle to the port using the lookup function but when i am trying
to make any calls to it (like cyg_io_set_config) then i get a -EDEVNOSUPP in
return (see clip below). It looks like the serial port isn't setup right in
the DEVTAB since the functioncall "t->handlers->set_config" in iosys.c
doesn't work. Any clues of what the problem maigt be?
Regards, Daniel
---clip from iosys.c----
273 if (!t->handlers->set_config) {
274 return -EDEVNOSUPP;
275 }
---end clip from iosys.c----
-----clip-----
//Find device
err = cyg_io_lookup("/dev/ser0",&serial_handle );
if (ENOERR != err) {
serial_handle = 0; //ERROR
}
//Set up device
//ser_info.baud = CYGNUM_SERIAL_BAUD_9600;
ser_info.baud = CYGNUM_SERIAL_BAUD_38400;
ser_info.stop = CYGNUM_SERIAL_STOP_1;
ser_info.parity = CYGNUM_SERIAL_PARITY_EVEN;
ser_info.word_length = CYGNUM_SERIAL_WORD_LENGTH_8;
ser_info.flags = CYG_SERIAL_FLAGS_DEFAULT;
config_len = sizeof(ser_info);
err = cyg_io_set_config(serial_handle,
CYG_IO_SET_CONFIG_SERIAL_INFO,
&ser_info,
&config_len);
if (ENOERR != err) {
serial_handle = 0; //ERROR
}
//TBD Until new OS arrives in a couple of days DBO 010629
HAL_WRITE_UINT32(0xfffd0000, 0x50);
config_len = sizeof(cyg_uint32);
//No blocking when read
blocking_val = 0;
err = cyg_io_set_config(serial_handle,
CYG_IO_SET_CONFIG_SERIAL_READ_BLOCKING,
&blocking_val,
&config_len);
if (ENOERR != err) {
serial_handle = 0; //ERROR
}
// Blocking when write
blocking_val = 1;
err = cyg_io_set_config(serial_handle,
CYG_IO_SET_CONFIG_SERIAL_WRITE_BLOCKING,
&blocking_val,
&config_len);
if (ENOERR != err) {
serial_handle = 0; //ERROR
}
----clip end----