Back in mid April GCC forked off a branch for 4.9.0, which will be the
first release of GCC that supports the MSP430.  I've verified basic
functionality with:

binutils git://sourceware.org/git/binutils-gdb.git master
gcc git://gcc.gnu.org/git/gcc.git gcc-4_9-branch
newlib git://sourceware.org/git/newlib.git master

A couple issues:

* The only headers/linker scripts available are from
GCC_RH_20131206.zip; memory.ld and peripherals.ld for each MCU need to
be manually combined to get something binutils can process

* __delay_cycles() didn't get back-ported from the version that TI
published back in December

msp430-elf-gdb also doesn't appear to work with mspdebug:

(gdb) target remote :2000
Remote debugging using :2000
Reply contains invalid hex digit 59

I expect there'll be some issues with newlib as well; it appears to
use a unique syscall interface that I haven't tried to reverse
engineer.  However, I'm unsure the flags I used are appropriate (they
derive from the ones used for arm-gcc).  I do know that newlib without
the nano enhancements will not be acceptable for MSP430 work.  Insight
from Red Hat on a complete set of recommended flags known to work
together would be appreciated.

Below is the script I use for building, with
/opt/{binutils,gcc,newlib} being git workspaces checking out the
branches named above.  To help ensure the new toolchain is as good as
possible when it's first released, mspgcc users please try it and
report problems to Red Hat through whatever mechanism they prefer,
either here or on the upstream toolchain support lists.

Peter

TODATE=$(date +%Y%m%d)
PREFIX=/usr/local/msp430-elf-dev-${TODATE}
rm -rf ${PREFIX}
export PATH=${PREFIX}/bin:${PATH}

rm -rf binutils && mkdir binutils && cd binutils
/opt/binutils/configure --prefix=${PREFIX} --target=msp430-elf 2>&1 | tee co
make -j8 2>&1 | tee mo
make install 2>&1 | tee moi
cd ..

rm -rf gcc && mkdir gcc && cd gcc
/opt/gcc/configure --prefix=${PREFIX} --target=msp430-elf
--with-newlib --enable-languages=c,c++ 2>&1 | tee co
make -j12 all-host 2>&1 | tee moah
make install-host 2>&1 | tee moiah
cd ..

rm -rf newlib && mkdir newlib && cd newlib
/opt/newlib/configure \
  --prefix=${PREFIX} \
  --target=msp430-elf \
  --disable-newlib-supplied-syscalls    \
  --enable-newlib-reent-small           \
  --disable-newlib-fvwrite-in-streamio  \
  --disable-newlib-fseek-optimization   \
  --disable-newlib-wide-orient          \
  --enable-newlib-nano-malloc           \
  --disable-newlib-unbuf-stream-opt     \
  --enable-lite-exit                    \
  --enable-newlib-global-atexit         \
  --disable-nls
 2>&1 | tee co
make 2>&1 | tee mo
make install 2>&1 | tee moi
cd ..

cd gcc
make -j12 all-target 2>&1 | tee moat
make install-target 2>&1 | tee moiat
cd ..

------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to