This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Serial Port Configuration
- From: Jonathan Larmour <jifl at eCosCentric dot com>
- To: Ali Rodgo <alirodgo at web dot de>
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Sat, 14 Feb 2004 05:52:57 +0000
- Subject: Re: [ECOS] Serial Port Configuration
- References: <200402131338.i1DDc8Q22850@mailgate5.cinetic.de>
Ali Rodgo wrote:
Hello again,
Now it seems to fail another thing. I have added File IO and Posix compatibility layer to use the POSIX functions to use the open, read, write etc...functions and i have made the configuration described below(in previously mails). but when compiling the following errors appear:
undefined reference:cyg_selinit
undefined reference:cyg_selwakeup
undefined reference:cyg_selrecord
If I enable CYGFUN_IO_FILEIO_SELECT=enable, there is an error when building eCos, when disable it, no errors when building but do when compiling(see above).Which configuration should i make?
There's something seriously wrong with your configuration.
CYGFUN_IO_FILEIO_SELECT should have been enabled to start off with. Try
starting over with a new configuration. I also don't understand what you
mean about building and compiling... building and compiling mean the same
to me.
In the package ISO C and POSIX infrastructure should i enable the following too in oreder to use termios and POSIX functions?
CYGBLD_ISO_OPEN_HEADER=enable
CYGBLD_ISO_TERMIOS_HEADER=enable
CYGBLD_ISO_SELECT_HEADER=enable
Those should already be enabled. If not, then I wonder, are you using eCos
2.0 or recent CVS? Or 1.3.1? If 1.3.1, then upgrade.
Jifl
Thanks in advance
Jonathan Larmour <jifl@eCosCentric.com> schrieb am 12.02.04 21:10:30:
Ali Rodgo wrote:
Jonathan, what do you mean with "configuration is consistent"?I have checked the libraries and all of those are created, fcntl.h, termios.h etc.I have programmed:
Something like "ecosconfig check" on the command line, or checking there
are no conflicts if using the graphical eCos configuration tool
(View->Conflicts I think).
fd=open("/dev/termios1", O_RDWR | O_NOCTTY) /* suppose to open the termios1 driver associate to the harrware serial driver /dev/ser1.
read(fd,buf,1)
I am really confused
open() comes from the fileio package. If it says it can't find open(), then
something is wrong with the way the fileio package was added, or eCos was
rebuilt.
Jifl
Thanks in advance
Jonathan Larmour <jifl@eCosCentric.com> schrieb am 12.02.04 15:26:24:
Ali Rodgo wrote:
Thank you very much, i have made the following configuration:
CYGPKG_IO_SERIAL_TERMIOS=enable CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0=enable
CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1=enable
GYGDAT_IO_SERIAL_TERMIOS_TERMIOS1_DEV="/dev/ser1"
GYGDAT_IO_SERIAL_TERMIOS_TERMIOS0_DEV="/dev/ser0"
CYGPKG_IO_SERIAL_DEVICE=enable
CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1_NAME="/dev/ser1"
CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0_NAME="/dev/ser0"
and the code you can see in the file serial.c. When compiling i receive
two errors in the open function:undefined reference to "open".
open() should come from the FILEIO package which CYGPKG_IO_SERIAL_TERMIOS
requires. Are you sure your configuration is consistent?
I f i want to make a printf should now open the device(SERIAL A)
"/dev/termios0" and call the write function or call easy the printf
function as before(/dev/ttydiag)
Assuming you aren't running GDB on the same port, it's probably best to use
/dev/termios0, or /dev/tty0 should work too.
You can't use /dev/ttydiag on the same port as you're running the "full"
serial driver on.
Jifl
--
eCosCentric http://www.eCosCentric.com/ The eCos and RedBoot experts
Visit us at Embedded World 2004, Nürnberg, Germany, 17-19 Feb, Stand 12-449
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss