This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: How to correctly run SMSC LAN91C111 Driver by interrupt
- From: Gary Thomas <gary at mlbassoc dot com>
- To: ariga masahiro <ariga at link-lab dot co dot jp>
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Tue, 29 May 2007 06:02:19 -0600
- Subject: Re: [ECOS] How to correctly run SMSC LAN91C111 Driver by interrupt
- References: <002f01c7a1ac$d34379d0$1c0110ac@ariga>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
ariga masahiro wrote:
> Hi everyone,
>
> Someone please help me.
>
> I am trying to run SMSC LAN91C111 Ethernet Driver by interrupt
> on own board.
>
> I studied source if_lan91cxx.c and found next switching context
>
> #ifndef CYGPKG_IO_ETH_DRIVERS_STAND_ALONE,
>
> and concluded I must make CYGPKG_IO_ETH_DRIVERS_STAND_ALONE '0'
> in order to regisiter ISR etc.
>
> I registered ISR into Vector Table.
>
> When I Built,I confronted next errors.
> /ecos-c/cygwin/home/LINK/inserter20070529-1_interrupt/untitled_install/lib/extras.o:
> In function `do_exec':
> /opt/ecos/ecos-2.0/packages/hal/sh/arch/v2_0/src/redboot_linux_exec.c:114:
> undefined reference to `_eth_drv_dsr'
> /opt/ecos/ecos-2.0/packages/hal/sh/arch/v2_0/src/redboot_linux_exec.c:83:
> undefined reference to `_eth_drv_funs'
>
> I infered they are concerned with eth_drv.c,and found eth_drv.c was
> included in next three directotries in eCos source tree.
> C:/cygwin/opt/ecos/ecos-2.0/packages/io\eth/v2_0/src/lwip/eth_drv.c
> C:/cygwin/opt\ecos/ecos-2.0/packages/io\eth/v2_0/src/net/eth_drv.c
> C:/cygwin/opt/ecos/ecos-2.0/packages/io\eth/v2_0/src/stand_alone/eth_drv.c
>
> I am convinced that because I did not compile stand_alone,I confronted
> the errors.
>
> So,first I tried to include /net/eth_drv.c.
> I found in order to include /net/eth_drv.c I must make CYGPKG_NET
> available.
> Then I was stuck in the mud.
> I confronted Conflicting Errors continuously and couldn't even build
> redboot.
> I abandoned.
>
> Then, I next tried to include /lwip/eth_drv.c.
> In order to do that,I changed option parameter a bit.
> I commented "active_if" line.
>
> cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP
> ## active_if CYGPKG_NET_LWIP
>
> Then I could include /lwip/eth_drv.c,
> but confronted next errors.
> src/lwip/io_eth_eth_drv.o
> /opt/ecos/ecos-2.0/packages/io/eth/v2_0/src/lwip/eth_drv.c
> /opt/ecos/ecos-2.0/packages/io/eth/v2_0/src/lwip/eth_drv.c:70:29:
> cyg/kernel/kapi.h: No such file or directory
> /opt/ecos/ecos-2.0/packages/io/eth/v2_0/src/lwip/eth_drv.c:89: parse
> error before "delivery"
> /opt/ecos/ecos-2.0/packages/io/eth/v2_0/src/lwip/eth_drv.c:89: warning:
> type defaults to `int' in declaration of `delivery'
>
> I am in predicament.
>
> Please enlighten me what is correct way to run SMSC LAN91C111 Ethernet
> Driver by interrupt.
It appears you are trying to enable these things in RedBoot. RedBoot
is a polled environment and has its own network stack, so neither of
the actions described above are appropriate.
If you want to build an eCos application - not RedBoot - that uses your
target hardware, with networking using interrupts, you need an eCos
kernel configured for this purpose:
% ecosconfig new <target> net
% ecosconfig tree
% make
A quick reference to the documentation (the Getting Started guide has
a section on how to build complete applications) would be a good starting
point:
http://ecos.sourceware.org/docs-latest/
- --
- ------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
- ------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFGXBZKmaKbSsQGV8ARAkHCAKCoX8QmhMlHAjpOxfn5938q/cTk8ACgmptl
izaazvSnjhj39ltJnphLw1A=
=v2io
-----END PGP SIGNATURE-----
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss