[ECOS] Serial Port Configuration

Jonathan Larmour jifl@eCosCentric.com
Sat Feb 14 05:53:00 GMT 2004


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



More information about the Ecos-discuss mailing list