On 05/05/06, Tennessee Carmel-Veilleux <tennessee.carmelveill...@gmail.com> wrote:
On 05/05/06, Chris Liechti <cliec...@gmx.net> wrote: > > Tennessee Carmel-Veilleux schrieb: > > I have just started the code on a data acquisition helper chip based > on > > the MSP430F2013. I am using the latest win32 installer of MSPGCC > > (04042006 version of msp430-ld). > > there is a newer version, from this month, that fixed some things for > newer cpu's. AFAIK, I downloaded and installed the new version today. Maybe the linker included is the old one ? I shall try again when I am back at work on tuesday. I will advise of success or failure.
I uninstalled my previous MSPGCC package and reinstalled from mspgcc-20060502.exe (latest win32 installer). The linker version is still: ------------- $ msp430-ld --version GNU ld version 060404 20060404 Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. ------------- The include file correction I had sent last week (msp430x20x3.h) is still needed for compiling and the linker does not recognize the OUTPUT_ARCH(msp:200) in the linker script. I think that the archive may contain an older build of the binutils that does not support the identifier for msp:200 in the BFD library. Maybe that support still needs to be added. Anyway, I am now certain that msp430x20x3.h support is not directly present in the latest package. I tried making a work-around by modifying the ldscripts in mspgcc/msp430/lib/ldscripts to have OUTPUT_ARCH(msp:21) instead of msp:200. However, there seems to be no way to bypass the default linker script. Even by adding the following to the GCC invokation: -Xlinker "-T" -Xlinker "path_to_mspgcc/msp430/lib/ldscripts/msp430x2013.x" or with manual invokation of the linker with options to replace the linker script, I still get the error about msp:200 being invalid. ------------- $ msp430-ld -m msp430x2013 -o USBVoltAmp_slave.elf /cygdrive/d/mspgcc/bin/../lib/ gcc-lib/msp430/3.2.3/../../../../msp430/lib/crt430x2013.o -L/cygdrive/d/mspgcc/b in/../lib/gcc-lib/msp430/3.2.3/msp1 -L/cygdrive/d/mspgcc/bin/../lib/gcc-lib/msp4 30/3.2.3 -L/cygdrive/d/mspgcc/bin/../lib/gcc-lib -L/cygdrive/d/mspgcc/bin/../lib /gcc-lib/msp430/3.2.3/../../../../msp430/lib/msp1 -L/cygdrive/d/mspgcc/bin/../li b/gcc-lib/msp430/3.2.3/../../../../msp430/lib -L/cygdrive/d/mspgcc/bin/../lib/gc c-lib/msp430/3.2.3/../../.. -T /cygdrive/d/mspgcc/msp430/lib/ldscripts/msp430x20 13.x main.o asmlib.o fonctions.o fll.o swuart.o -lgcc -lc -lgcc msp430-ld: cannot represent machine `msp:200' ------------ I think that the default linker script might be parsed before any substitution, which would make it read the invalid architecture. I would need to patch the binary to replace the string inside of it, which to me seems like a bad idea :) Is it possible that a fix be found ? I can provide the source code and makefiles that show the error to any MSPGCC developper so that the conditions can be reproduced until the build process is working. Anyways, thanks again for the great work on the latest versions of MSPGCC. I have been using the support for MSP430x42x with great success for over a year and the additionnal tools (msp430-size and msp430-ram-usage) are very useful to get information on the built binaries. I hope that support for MSP430x20xx can work soon ! Best Regards, Tennessee Carmel-Veilleux Electronics Design Technician, University of Montreal