[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