openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
1.5 KiB

#!/usr/bin/env bash
# https://blog.tan-ce.com/gcc-bare-metal/
# https://imvoid.wordpress.com/2013/05/01/building-the-gnu-arm-toolchain-for-bare-metal/
set -e
BINUTILS=binutils-2.32
GCC=gcc-4.7.1
mkdir -p src
pushd src
if [ ! -d $BINUTILS ]; then
wget ftp://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
tar -xf $BINUTILS.tar.bz2
fi
popd
# TODO: replace with /usr
mkdir -p out
PREFIX=$PWD/out
mkdir -p build/$BINUTILS
pushd build/$BINUTILS
../../src/$BINUTILS/configure --target=arm-none-eabi \
--build=aarch64-unknown-linux-gnu \
--prefix=$PREFIX --with-cpu=cortex-m4 \
--with-mode=thumb \
--disable-nls \
--disable-werror
make -j4 all
make install
popd
mkdir -p src
pushd src
if [ ! -d $GCC ]; then
wget ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2
tar -xf $GCC.tar.bz2
cd $GCC
contrib/download_prerequisites
fi
popd
export PATH="$PREFIX/bin:$PATH"
mkdir -p build/$GCC
pushd build/$GCC
../../src/$GCC/configure --target=arm-none-eabi \
--build=aarch64-unknown-linux-gnu \
--disable-libssp --disable-gomp --disable-libstcxx-pch --enable-threads \
--disable-shared --disable-libmudflap \
--prefix=$PREFIX --with-cpu=cortex-m4 \
--with-mode=thumb --disable-multilib \
--enable-interwork \
--enable-languages="c" \
--disable-nls \
--disable-libgcc
make -j4 all-gcc
make install-gcc
popd
# replace stdint.h with stdint-gcc.h for Android compatibility
mv $PREFIX/lib/gcc/arm-none-eabi/4.7.1/include/stdint-gcc.h $PREFIX/lib/gcc/arm-none-eabi/4.7.1/include/stdint.h