由于这个答案变得有点"难以阅读",我创建了一个页面来展示这些信息。
这是基于这两个指南的免费解释,但我不得不更改版本并应用一些补丁才能使其正常工作。
首先是一些基本知识
sudo apt-get install flex bison libgmp3-dev libmpfr-dev autoconf texinfo build-essential
然后我创建了一个存储工具链的位置(将cj.users更改为您认为合适的内容)。
export TOOLPATH=/usr/local/cross-cortex-m3
sudo mkdir /usr/local/cross-cortex-m3
sudo chown cj.users /usr/local/cross-cortex-m3
Binutils
wget http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2
tar -xvjf binutils-2.19.tar.bz2
cd binutils-2.19
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls
根据此信息http://sourceware.org/bugzilla/show_bug.cgi?id=7026 / http://sourceware.org/bugzilla/attachment.cgi?id=3058&action=view,将补丁应用于tc-arm.c。
vi ../gas/config/tc-arm.c
make
make install
export PATH=${TOOLPATH}/bin:$PATH
cd ../..
gcc
wget ftp://ftp.sunet.se/pub/gnu/gcc/releases/gcc-4.3.4/gcc-4.3.4.tar.bz2
tar -xvjf gcc-4.3.4.tar.bz2
cd gcc-4.3.4
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --enable-languages="c,c++" --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld
make all-gcc
make install-gcc
cd ../..
Newlib
wget ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz
wget http://www.esden.net/content/embedded/newlib-1.14.0-missing-makeinfo.patch
tar -xvzf newlib-1.17.0.tar.gz
cd newlib-1.17.0
然后我想使用类似这样的方式应用补丁(但它没有起作用)
patch -p1 -i ../newlib-1.14.0-missing-makeinfo.patch
所以我手动打开了它,并根据补丁编辑了第6651行。
vi configure
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared
make CFLAGS_FOR_TARGET="-ffunction-sections -fdata-sections -DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ -Os -fomit-frame-pointer -mcpu=cortex-m3 -mthumb -D__thumb2__ -D__BUFSIZ__=256" CCASFLAGS="-mcpu=cortex-m3 -mthumb -D__thumb2__"
make install
cd ../..
更多gcc
cd gcc-4.3.4/build
make CFLAGS="-mcpu=cortex-m3 -mthumb" CXXFLAGS="-mcpu=cortex-m3 -mthumb" LIBCXXFLAGS="-mcpu=cortex-m3 -mthumb" all
make install
总结
现在我只是将一些路径添加到了我的~/.bashrc文件中。
export TOOLPATH=/usr/local/cross-cortex-m3
export PATH=${TOOLPATH}/bin:$PATH
我应该准备好迈出下一步...