[ECOS] Hi,

Eric Doenges Eric.Doenges@DynaPel.com
Wed Oct 15 06:48:00 GMT 2003


Dhawal Mer wrote:
> Hi,
> Thanx for immediate reply.
> Eric as per your info , i have successfully build (libtarget.a) the platform using net package/RAM startup.
> But when i try to link the basic.c example application given in chapter12 of 'Embedded software Development with eCos' doc to libtarget.a , i have got the error as given below.The make file for above i have send as attachment (Application named as rb8139).
> ------------------------------------------------------------------------------------------------------------------
> Administrator@DHAWAL172 /ecos-c/workdir/application
> $ make
> i386-elf-gcc -nostartfiles -L/cygdrive/c/workdir/rb8139/rb8139_install/lib -Wl,-
> -gc-sections -Wl,--Map -Wl,basic1.map -o basic1 basic1.o -Ttarget.ld -nostdlib
> /cygdrive/c/workdir/rb8139/rb8139_install/lib/extras.o: In function `__static_in
> itialization_and_destruction_0':
> /ecos-c/ecos/packages/io/fileio/current/src/misc.cxx:104: undefined reference to
>  `CYGARC_PCI_DMA_ADDRESS'
> /ecos-c/ecos/packages/io/fileio/current/src/misc.cxx:123: undefined reference to
>  `CYGARC_PCI_DMA_ADDRESS'
> /ecos-c/ecos/packages/io/fileio/current/src/misc.cxx:141: undefined reference to
>  `CYGARC_PCI_DMA_ADDRESS'
> /ecos-c/ecos/packages/io/fileio/current/src/misc.cxx:141: undefined reference to
>  `CYGARC_PCI_DMA_ADDRESS'
> /ecos-c/ecos/packages/io/fileio/current/src/misc.cxx:141: undefined reference to
>  `CYGARC_PCI_DMA_ADDRESS'
> collect2: ld returned 1 exit status
> make: *** [basic1] Error 1
> ----------------------------------------------------------------------------------------------
> Please mail me where i am going wrong.

I suspect you are using and older version of eCos that does not have
the CYGARC_PCI_DMA_ADDRESS macro, which was added just a month or two
ago, You need to either

a) Get the latest version of eCos from CVS (see the eCos home page for
details on how to do this). I would strongly suggest doing this since
eCos is being continually improved.

b) As a 'quick fix', add the following to
    <...>/packages/io/pci/current/include/pci.h:

// Map a logical (CPU local) address to one used by a PCI master
// Normally, this is just the physical address of the object, but
// it may differ if the platform has different address maps from
// the CPU side vs. the PCI side
#ifndef CYGARC_PCI_DMA_ADDRESS
#define CYGARC_PCI_DMA_ADDRESS(_x_) CYGARC_PHYSICAL_ADDRESS(_x_)
#endif

> I have also tried out configuration 'i386 pc with 8139' with 'redboot',still redboot Networking options remains disabled.Than how i should ableto enabled the network debugging ?

I don't know, since I've never used redboot (my target doesn't support
it, unfortunately).

> Kindly also maill me the detail, how i can boot my system using 'libtarget.a' generated by your suggested configuration.

You must write an application that is linked with libtarget.a, and then
boot that on your target. See the eCos user's guide; it has a small
tutorial that shows how to do this. And/or get the book "Embedded
Software Development with eCos" by Anthony J. Massa, which explains
in some detail how to get Redboot working.

> 
> Regards,
> Dhawal.
> =========================================================

P.S.: I've also sent this to ecos-discuss, so other people
can contribute/benefit as well.
-- 
--------------------------------------------------------------------
|     Eric Doenges              |     DynaPel Laboratories GmbH    |
|     Tel: +49 89 962428 23     |     Fraunhoferstrasse 9/2        |
|     Fax: +49 89 962428 90     |     D - 85737 Ismaning, Germany  |
--------------------------------------------------------------------


--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list