public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] migration from win2k to win7
@ 2013-02-18 20:32 Christopher Biessener
  2013-02-18 22:21 ` [ECOS] " Grant Edwards
  0 siblings, 1 reply; 6+ messages in thread
From: Christopher Biessener @ 2013-02-18 20:32 UTC (permalink / raw)
  To: Ecos Discussion

Hi all,

I am new to embedded systems and got handed the task of migrating our 
build environment from win2k to win7.
In win2k they are using Cygwin 1.3 / eCos 1.3.1 / gcc 2.95 toolchain.  
This setup compiles and links and our hardware runs beautifully.  We 
can't keep limping along on win2k, however.

The arm-elf 2.95 toolchain will not install in win7, so I began 
upgrading stuff.
So far I have the newest Cygwin 1.7 - which uses gcc 4.5.3.  I 
downloaded the arm-elf toolchain via MacCraigor Systems website which is 
gcc 4.6.0.  I cannot find the arm-elf toolchain in any other rev-level.
Apparently eCos 1.3.1 is still viable and it did install on win7, so 
that is what I used.
I am afraid of upgrading to eCos 3.0 because I have no idea what 
configuration options were used.  There is no documentation the original 
developers left - and yes, they are long gone.

At first gcc couldn't find libgcc, so I added 
-L/usr/lib/gcc/i686-pc-cygwin/4.5.3 to the link flags.
Without further changing our makefiles everything compiled, but it will 
not link.  The following is part of the output of make:
----------------------
arm-elf-gcc -mcpu=arm7tdmi -u cyg_user_start 
-Wl,'-Map=HC3-P_Hw_Cf_P1.map'  -nostartfiles  -Wl,--gc-sections 
-L./romram_install/lib  -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 -o 
HC3-P_Hw_Cf_P1.elf libHC3-P_Hw_Cf_P1.a libromHC3-P_Hw_Cf_P1.a 
-TtargetHC3-P_Hw_Cf_P1.ld  -nostdlib
libromHC3-P_Hw_Cf_P1.a(HardCopy.o): In function 
`__static_initialization_and_destruction_0(int, int)':
HardCopy.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x48): 
undefined reference to `__cxa_atexit'
HardCopy.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x60): 
undefined reference to `__dso_handle'
libromHC3-P_Hw_Cf_P1.a(fat32.o): In function 
`CFAT32::InitBootSector(FAT32_BOOT_SECTOR*, FAT32_FSINFO_SECTOR*)':
fat32.cpp:(.text._ZN6CFAT3214InitBootSectorEP17FAT32_BOOT_SECTORP19FAT32_FSINFO_SECTOR+0x118): 
undefined reference to `__umodsi3'
fat32.cpp:(.text._ZN6CFAT3214InitBootSectorEP17FAT32_BOOT_SECTORP19FAT32_FSINFO_SECTOR+0x150): 
undefined reference to `__udivsi3'
----------------------

Any suggestions would be greatly appreciated.  I did begin by searching 
the list archive.  There were no solutions to be found.

Thanks,

Christopher Biessener
Voom Technologies, Inc.


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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ECOS] Re: migration from win2k to win7
  2013-02-18 20:32 [ECOS] migration from win2k to win7 Christopher Biessener
@ 2013-02-18 22:21 ` Grant Edwards
  2013-02-28 18:25   ` Christopher Biessener
  0 siblings, 1 reply; 6+ messages in thread
From: Grant Edwards @ 2013-02-18 22:21 UTC (permalink / raw)
  To: ecos-discuss

On 2013-02-18, Christopher Biessener <christopherpb@voomtech.com> wrote:
> Hi all,
>
> I am new to embedded systems and got handed the task of migrating our
> build environment from win2k to win7.
> In win2k they are using Cygwin 1.3 / eCos 1.3.1 / gcc 2.95 toolchain.  
> This setup compiles and links and our hardware runs beautifully.  We 
> can't keep limping along on win2k, however.

My advice would be to do your development on Linux.  Even if you have
to run Linu in a VM under Win7, that's probably going to be easier in
the end than trying to use eCos that old building Cygwin.  My
experience mixing and matching arbitrary versions of Windows, Cygwin,
toolchains and eCos have always been poor.  Replacing Windows and
Cygwin with Linux always made things a lot simpler.

> The arm-elf 2.95 toolchain will not install in win7, so I began 
> upgrading stuff.
>
> So far I have the newest Cygwin 1.7 - which uses gcc 4.5.3.  I
> downloaded the arm-elf toolchain via MacCraigor Systems website which
> is gcc 4.6.0.

Is that a toolchain intended for use with eCos?  Why not use the ARM
toolchain offered for download by eCosCentric?

> I cannot find the arm-elf toolchain in any other rev-level.
> Apparently eCos 1.3.1 is still viable and it did install on win7, so 
> that is what I used. I am afraid of upgrading to eCos 3.0 because I
> have no idea what configuration options were used.  There is no
> documentation the original developers left - and yes, they are long
> gone.
>
> At first gcc couldn't find libgcc, so I added 
> -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 to the link flags.

That's almost certainly incorrect.  You can't use a libgcc for i686 if
you're compiling for an ARM target.

> Without further changing our makefiles everything compiled, but it
> will not link.  The following is part of the output of make:
>
> ----------------------
> arm-elf-gcc -mcpu=arm7tdmi -u cyg_user_start 
> -Wl,'-Map=HC3-P_Hw_Cf_P1.map'  -nostartfiles  -Wl,--gc-sections 
> -L./romram_install/lib  -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 -o 
> HC3-P_Hw_Cf_P1.elf libHC3-P_Hw_Cf_P1.a libromHC3-P_Hw_Cf_P1.a 
> -TtargetHC3-P_Hw_Cf_P1.ld  -nostdlib
> libromHC3-P_Hw_Cf_P1.a(HardCopy.o): In function 
> `__static_initialization_and_destruction_0(int, int)':
> HardCopy.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x48): 
> undefined reference to `__cxa_atexit'
> HardCopy.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x60): 
> undefined reference to `__dso_handle'
> libromHC3-P_Hw_Cf_P1.a(fat32.o): In function 
> `CFAT32::InitBootSector(FAT32_BOOT_SECTOR*, FAT32_FSINFO_SECTOR*)':
> fat32.cpp:(.text._ZN6CFAT3214InitBootSectorEP17FAT32_BOOT_SECTORP19FAT32_FSINFO_SECTOR+0x118): 
> undefined reference to `__umodsi3'
> fat32.cpp:(.text._ZN6CFAT3214InitBootSectorEP17FAT32_BOOT_SECTORP19FAT32_FSINFO_SECTOR+0x150): 
> undefined reference to `__udivsi3'
> ----------------------
>
> Any suggestions would be greatly appreciated.  I did begin by searching 
> the list archive.  There were no solutions to be found.
>
> Thanks,
>
> Christopher Biessener
> Voom Technologies, Inc.
>
>


-- 
Grant Edwards               grant.b.edwards        Yow! I have a TINY BOWL in
                                  at               my HEAD
                              gmail.com            


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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ECOS] Re: migration from win2k to win7
  2013-02-18 22:21 ` [ECOS] " Grant Edwards
@ 2013-02-28 18:25   ` Christopher Biessener
  2013-03-01  8:21     ` John Dallaway
  0 siblings, 1 reply; 6+ messages in thread
From: Christopher Biessener @ 2013-02-28 18:25 UTC (permalink / raw)
  To: Ecos Discussion


When I wrote my first treatise I was a 100% greenhorn when it came to 
eCos and cross-compilers.  Now that I've had some time to do more 
digging/research, and with the hint provided by Mr. Edwards (thank you, 
btw) that I shouldn't have tried to link with a libgcc built for i686, 
I've taken a step or two forward in the Win7 build environment.

In keeping with the mantra, "Change as little as possible," my first 
stab was to build my own toolchain since eCosCentric does not allow 
direct download of the toolchains they have built.  I followed the 
instructions on http://ecos.sourceware.org/build-toolchain.html only 
updating the packages for gcc 4.5.3 (since Cygwin 1.7 comes with gcc 4.5.3).
I downloaded:
     * binutils-2.22
     * gcc-core-4.5.3 for almost
     * gcc-g++-4.5.3
     * insight-6.1
     * newlib-1.19.0
I have to admit I'm a little confused since the eCos.org instructions do 
not tell the user to do anything with insight or newlib after 
downloading them.
Anyway, I followed the directions down to where I'm 'make'ing gcc. The 
front part of the make finds all the header files and succeeds. When it 
gets to libiberty the configure in that directory no longer finds the 
ANSI header files.  That script expects to find them in 
/gnutools/include.  This directory does not yet exist.  The grand 
makefile for whatever reason has not created it yet.  Why???  Why does a 
product that's existed for almost 2 years fail to build itself?

In further reading of the eCos.ord website I saw that eCos3 will allow 
the download of the eCosCentric toolchains.  So I cloned my Win7 drive, 
uninstalled eCos 1.3.1, then installed eCos 3.0.  The eCos3 Configurator 
does not include our Atmel ARM7 processor.  So I'm stuck.

Please point me in the proper direction to continue making progress.

Thank you,

Christopher Biessener
Voom Technologies, Inc.

BTW, to answer Mr. Edwards question about the 4.6.0 toolchain, yes, 
Macraigor Systems makes the hardware/software we use to program our 
devices over the JTAG.

On 02/18/2013 04:20 PM, Grant Edwards wrote:
> On 2013-02-18, Christopher Biessener<christopherpb@voomtech.com>  wrote:
>> Hi all,
>>
>> I am new to embedded systems and got handed the task of migrating our
>> build environment from win2k to win7.
>> In win2k they are using Cygwin 1.3 / eCos 1.3.1 / gcc 2.95 toolchain.
>> This setup compiles and links and our hardware runs beautifully.  We
>> can't keep limping along on win2k, however.
> My advice would be to do your development on Linux.  Even if you have
> to run Linu in a VM under Win7, that's probably going to be easier in
> the end than trying to use eCos that old building Cygwin.  My
> experience mixing and matching arbitrary versions of Windows, Cygwin,
> toolchains and eCos have always been poor.  Replacing Windows and
> Cygwin with Linux always made things a lot simpler.
>> The arm-elf 2.95 toolchain will not install in win7, so I began
>> upgrading stuff.
>>
>> So far I have the newest Cygwin 1.7 - which uses gcc 4.5.3.  I
>> downloaded the arm-elf toolchain via MacCraigor Systems website which
>> is gcc 4.6.0.
> Is that a toolchain intended for use with eCos?  Why not use the ARM
> toolchain offered for download by eCosCentric?
>> I cannot find the arm-elf toolchain in any other rev-level.
>> Apparently eCos 1.3.1 is still viable and it did install on win7, so
>> that is what I used. I am afraid of upgrading to eCos 3.0 because I
>> have no idea what configuration options were used.  There is no
>> documentation the original developers left - and yes, they are long
>> gone.
>>
>> At first gcc couldn't find libgcc, so I added
>> -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 to the link flags.
> That's almost certainly incorrect.  You can't use a libgcc for i686 if
> you're compiling for an ARM target.Without further changing our makefiles everything compiled, but it
> will not link.  The following is part of the output of make:
>
> ----------------------
> arm-elf-gcc -mcpu=arm7tdmi -u cyg_user_start
> -Wl,'-Map=HC3-P_Hw_Cf_P1.map'  -nostartfiles  -Wl,--gc-sections
> -L./romram_install/lib  -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 -o
> HC3-P_Hw_Cf_P1.elf libHC3-P_Hw_Cf_P1.a libromHC3-P_Hw_Cf_P1.a
> -TtargetHC3-P_Hw_Cf_P1.ld  -nostdlib
> libromHC3-P_Hw_Cf_P1.a(HardCopy.o): In function
> `__static_initialization_and_destruction_0(int, int)':
> HardCopy.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x48):
> undefined reference to `__cxa_atexit'
> HardCopy.cpp:(.text._Z41__static_initialization_and_destruction_0ii+0x60):
> undefined reference to `__dso_handle'
> libromHC3-P_Hw_Cf_P1.a(fat32.o): In function
> `CFAT32::InitBootSector(FAT32_BOOT_SECTOR*, FAT32_FSINFO_SECTOR*)':
> fat32.cpp:(.text._ZN6CFAT3214InitBootSectorEP17FAT32_BOOT_SECTORP19FAT32_FSINFO_SECTOR+0x118):
> undefined reference to `__umodsi3'
> fat32.cpp:(.text._ZN6CFAT3214InitBootSectorEP17FAT32_BOOT_SECTORP19FAT32_FSINFO_SECTOR+0x150):
> undefined reference to `__udivsi3'
> ----------------------
>
> Any suggestions would be greatly appreciated.  I did begin by searching
> the list archive.  There were no solutions to be found.
>
> Thanks,
>
> Christopher Biessener
> Voom Technologies, Inc.

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ECOS] Re: migration from win2k to win7
  2013-02-28 18:25   ` Christopher Biessener
@ 2013-03-01  8:21     ` John Dallaway
  2013-03-04 16:27       ` Grant Edwards
  2013-03-13 21:32       ` Christopher Biessener
  0 siblings, 2 replies; 6+ messages in thread
From: John Dallaway @ 2013-03-01  8:21 UTC (permalink / raw)
  To: Christopher Biessener; +Cc: eCos Discussion

Hi Christopher

On 28/02/13 18:25, Christopher Biessener wrote:

> I am new to embedded systems and got handed the task of migrating our
> build environment from win2k to win7.
> In win2k they are using Cygwin 1.3 / eCos 1.3.1 / gcc 2.95 toolchain.

[ snip ]

> The arm-elf 2.95 toolchain will not install in win7, so I began
> upgrading stuff.

First of all, can you explain what you mean by "The arm-elf 2.95
toolchain will not install in win7"? Is there an error during the
toolchain installation process or does the toolchain not execute under
Cygwin 1.7.x? What error message are you observing?

Assuming that the toolchain does not execute, and given your objective
of minimising change, I would suggest attempting to build the arm-elf
2.95 toolchain under Cygwin 1.7.x. That would deliver generated eCos
application code identical to what you have been generating under Win2k.
The (very old) instructions for building the arm-elf 2.95 toolchain for
eCos under Cygwin are at:

  http://ecos.sourceware.org/tools/win-arm-elf.html

If you attempt to use a much more recent arm-elf toolchain to built eCos
1.3.1 sources, you will find quite a number of source code issues to
work through.

I hope this helps...

John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ECOS] Re: migration from win2k to win7
  2013-03-01  8:21     ` John Dallaway
@ 2013-03-04 16:27       ` Grant Edwards
  2013-03-13 21:32       ` Christopher Biessener
  1 sibling, 0 replies; 6+ messages in thread
From: Grant Edwards @ 2013-03-04 16:27 UTC (permalink / raw)
  To: ecos-discuss

On 2013-03-01, John Dallaway <john@dallaway.org.uk> wrote:
> Hi Christopher
>
> On 28/02/13 18:25, Christopher Biessener wrote:
>
>> I am new to embedded systems and got handed the task of migrating our
>> build environment from win2k to win7. In win2k they are using Cygwin
>> 1.3 / eCos 1.3.1 / gcc 2.95 toolchain.
>
> [ snip ]
>
>> The arm-elf 2.95 toolchain will not install in win7, so I began
>> upgrading stuff.
>
> First of all, can you explain what you mean by "The arm-elf 2.95
> toolchain will not install in win7"? Is there an error during the
> toolchain installation process or does the toolchain not execute
> under Cygwin 1.7.x? What error message are you observing?
>
> Assuming that the toolchain does not execute, and given your
> objective of minimising change, I would suggest attempting to build
> the arm-elf 2.95 toolchain under Cygwin 1.7.x.

FYI, the last time I tried to build the 2.95 toolchain under Cygwin
(back in 2009), it wasn't possible.  The version of GCC that was
included in a Cygwin install in 2009 was too new to compile gcc 2.95.
After some trial and error, I concluded that 3.2 was the oldest GCC
version that could be built using the gcc included in Cygwin in 2009.

Perhpas the gcc that's included in Cygwin now can build gcc versions
older than 3.2, but I'd be surprised...

-- 
Grant Edwards               grant.b.edwards        Yow! RELATIVES!!
                                  at               
                              gmail.com            


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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ECOS] Re: migration from win2k to win7
  2013-03-01  8:21     ` John Dallaway
  2013-03-04 16:27       ` Grant Edwards
@ 2013-03-13 21:32       ` Christopher Biessener
  1 sibling, 0 replies; 6+ messages in thread
From: Christopher Biessener @ 2013-03-13 21:32 UTC (permalink / raw)
  To: ecos-discuss

OK, I finally had the time to get back to the migration...

I convinced Macraigor Systems to send me the libgcc.a they built with 
their cross-compiler.
With the correct libgcc.a I got the Win7 environment to link, finally.
The pieces:
* Cygwin 1.7.17
* eCos 1.3.1
* GNU arm-elf toolchain 4.6.0
* added compiler option -fno-use-cxa-atexit

After cleaning up hundreds of new compiler warnings I have a firmware 
build to test.

Thank you to all who gave suggestions.

Regards,

Christopher Biessener

P.S. To answer John, the old developers here left us an app called 
ARMELFINSTALLATION.EXE which would install the 2.95 toolchain.  That 
installer would not work on Win7.

Aside - I found the eCos 1.3.1 config file for our ARM7.  Is there a 
guide anywhere to assist in converting a 1.3.1 eCos config to eCos 3.0?  
I tried loading the old config in eCos 3.0 and got endless errors of 
unsupported options.

On 03/01/2013 02:21 AM, John Dallaway wrote:
> Hi Christopher
>
> On 28/02/13 18:25, Christopher Biessener wrote:
>
>> I am new to embedded systems and got handed the task of migrating our
>> build environment from win2k to win7.
>> In win2k they are using Cygwin 1.3 / eCos 1.3.1 / gcc 2.95 toolchain.
> [ snip ]
>
>> The arm-elf 2.95 toolchain will not install in win7, so I began
>> upgrading stuff.
> First of all, can you explain what you mean by "The arm-elf 2.95
> toolchain will not install in win7"? Is there an error during the
> toolchain installation process or does the toolchain not execute under
> Cygwin 1.7.x? What error message are you observing?
>
> Assuming that the toolchain does not execute, and given your objective
> of minimising change, I would suggest attempting to build the arm-elf
> 2.95 toolchain under Cygwin 1.7.x. That would deliver generated eCos
> application code identical to what you have been generating under Win2k.
> The (very old) instructions for building the arm-elf 2.95 toolchain for
> eCos under Cygwin are at:
>
>    http://ecos.sourceware.org/tools/win-arm-elf.html
>
> If you attempt to use a much more recent arm-elf toolchain to built eCos
> 1.3.1 sources, you will find quite a number of source code issues to
> work through.
>
> I hope this helps...
>
> John Dallaway
> eCos maintainer
> http://www.dallaway.org.uk/john
>


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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-03-13 21:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-18 20:32 [ECOS] migration from win2k to win7 Christopher Biessener
2013-02-18 22:21 ` [ECOS] " Grant Edwards
2013-02-28 18:25   ` Christopher Biessener
2013-03-01  8:21     ` John Dallaway
2013-03-04 16:27       ` Grant Edwards
2013-03-13 21:32       ` Christopher Biessener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).