[ECOS] Interfacing directly to the low level ethernet driver, how??
Michele Paselli
miguelon@tiscali.it
Wed Jun 27 21:10:00 GMT 2007
Hi ,
I'm about to develop a raw ethernet driver. After spending quite a lot
of time reading the forum and analyzing the code I finally decide to
implement a raw I/O API as suggested by Grant Edwards here:
http://www.cygwin.com/ml/ecos-discuss/2003-06/msg00017.html
The problem is that I'm finding quite a lot of difficulties in
interfacing my I/O driver to the low level device driver of my eth
controller. My idea is to use the netdevtab entry created in the .inl
file and from there be able to access the eth_drv_sc structure and all
the related functions. First problem, I saw that the existing network
implementations (lwip and freebsd) before initializing the device the
macros:
CYG_HAL_TABLE_BEGIN( __NETDEVTAB__, netdev );
CYG_HAL_TABLE_END( __NETDEVTAB_END__, netdev );
are called. Should I also use these macro? What is exactly their job?
I guess they don't create an entry since for that the NETDEVTAB macro
is used.
Second problem, in order to use the low level eth driver (packet
CYGPKG_DEVS_ETH_HRDWR) I have to include also CYGPKG_IO_ETH_DRIVERS.
When I compile everything with configtool I don't get any error but
when I compile my test application this is what I get:
Building base.out
arm-elf-gcc -g -Ifmtc_install/include base.c -Lfmtc_install/lib -
Ttarget.ld -nostdlib -o base.out
fmtc_install/lib/libtarget.a(io_eth_eth_drv.o): In function
`eth_drv_write':
/imecnl/software/common/ecos/opt/ecos/ecos-2.0.43
/packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:303: undefined
reference to `start_console'
/imecnl/software/common/ecos/opt/ecos/ecos-2.0.43
/packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:307: undefined
reference to `end_console'
fmtc_install/lib/libtarget.a(io_eth_eth_drv.o): In function
`eth_drv_recv':
/imecnl/software/common/ecos/opt/ecos/ecos-2.0.43
/packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:493: undefined
reference to `start_console'
/imecnl/software/common/ecos/opt/ecos/ecos-2.0.43
/packages/io/eth/v2_0_43/src/stand_alone/eth_drv.c:501: undefined
reference to `end_console'
collect2: ld returned 1 exit status
make: *** [out] Error 1
I checked the various cdl files and I found out that the standalone
eth i/o is automatically selected if I don't include any networking
stack (but I don't want to, I want to get rid of TCP and all the upper
layers).
What am I doing wrong? Am I approaching the problem in a wrong way?
Thanks a lot
Michele
_______________________________________________________
Naviga e telefona senza limiti con Tiscali
Scopri le promozioni Tiscali Adsl: navighi e telefoni senza canone Telecom
http://abbonati.tiscali.it/adsl/
--
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