I'm trying to compile some Linux ARM code using Yagarto, but I'm running into difficulties when it comes to configuring serial i/o using the 'termios' structure. Yagarto doesn't recognize any serial i/o options as it does when it's compiled under Linux using the GNU-ARM compiler: serial.c: In function 'serial_speed': serial.c:92: error: invalid application of 'sizeof' to incomplete type 'struct termios' serial.c:92: warning: left-hand operand of comma expression has no effect serial.c:94: error: invalid use of undefined type 'struct termios' serial.c:94: error: 'B9600' undeclared (first use in this function) serial.c:94: error: (Each undeclared identifier is reported only once serial.c:94: error: for each function it appears in.) serial.c:94: error: 'CS8' undeclared (first use in this function) serial.c:94: error: 'CREAD' undeclared (first use in this function) serial.c:94: error: 'CLOCAL' undeclared (first use in this function) serial.c:95: error: invalid use of undefined type 'struct termios' serial.c:95: error: 'IGNPAR' undeclared (first use in this function) serial.c:96: error: invalid use of undefined type 'struct termios' serial.c:101: warning: implicit declaration of function 'tcflush' I have include the header file 'termios.h', but I don't think it's finding the right one. The ones in Yagarto are vastly different than the ones in Linux.
I am not sure if this is possible with yagarto. Yagarto is afaik for bare metal systems only for it uses the EABI link format. Have you tried another toolchain like code sourcery for linux targets? http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite The lite edition is free like yargarto.
Thanks I'll try it. I also noticed that Yagarto doesn't contain support for networking. I can't find socket.h anywhere. Is this intentional, or will support for networking be a future addition? /carl
Yagarto is a toolchain for "bare metal" software. It only includes the standard library, no socket.h or any other POSIX stuff. If you want to run programs that use POSIX or Linux APIs, you need to run an operating system like eCOS, RTEMS or Linux, each of which require a special toolchain. If you only want to do networking, there are some simpler options like uIP, lwIP.