RTEMS 安装
脚本 rtems_building_v10.sh
#!/bin/bash
#rtems4.11在linuxmint-16-cinnamon-64bit上测试通过
#设置
目标=arm-rtemseabi4.11
PREFIX=/opt/rtems-4.11
BSP=stm32f4
BASEDIR=`密码`
TOPDIR=my_rtems
binutils_name=binutils-2.24.tar.bz2
gcc_name=gcc-4.8.2.tar.bz2
gcc_diff_name=gcc-4.8.2-rtems4.11-20131031.diff
gdb_name=gdb-7.6.2.tar.bz2
gdb_diff_name=gdb-7.6.2-rtems4.11-20131208.diff
newlib_name=newlib-1.20.0.tar.gz
newlib_diff_name=newlib-1.20.0-rtems4.11-20130325.diff
binutils_basename=`echo $binutils_name | awk -F。‘NF-=2’ OFS=。`
gcc_basename=`echo $gcc_name | awk -F。‘NF-=2’ OFS=。`
gdb_basename=`echo $gdb_name | awk -F。‘NF-=2’ OFS=。`
newlib_basename=`echo $newlib_name | awk -F. ‘NF-=2’ OFS=。`
#“按任意键继续。。。”的处理函数
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty raw
dd if=/dev/tty bs=1 count=1 2》 /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
usage()
{
cat 《《EOF
-d 下载安装并创建压缩包-》引导rtems-》配置rtems-》编译安装rtems-》编译应用程序
-e 从本地压缩包安装-》引导rtems-》配置rtems-》编译安装rtems-》编译应用程序
-b 引导rtems-》配置rtems-》编译安装rtems-》编译应用程序
-c 配置rtems-》编译安装rtems-》编译应用程序
-m 编译安装rtems-》编译应用程序
-a 编译应用程序
EOF
}
if [ -z “$1” ]; then
usage
exit 1
fi
DOWNLOAD=no
EXTRACT=no
BOOTSTRAP=no
CONFIGURE=no
MAKERTEMS=no
APPLICATION=no
while getopts debcma OPT
do
case “$OPT” in
d) DOWNLOAD=yes; BOOTSTRAP=yes; CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
e) EXTRACT=yes; BOOTSTRAP=yes; CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
b) BOOTSTRAP=yes; CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
c) CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
m) MAKERTEMS=yes; APPLICATION=yes;;
a) APPLICATION=yes;;
*) usage; exit 1;;
esac
done
if [ $DOWNLOAD = ‘yes’ ] || [ $EXTRACT = ‘yes’ ]; then
echo “创建交叉工具链安装目录”
if [ ! -d “$PREFIX” ]; then
sudo mkdir $PREFIX
sudo chown $USER:$USER $PREFIX
fi
if [ -d “$TOPDIR” ]; then
echo “错误:目录$TOPDIR已经存在”
exit 1
fi
echo “设置环境变量”
if [ ! -f “$HOME/.bashrc” ]; then
touch $HOME/.bashrc
fi
if !(grep -q “export PATH=$PREFIX/bin:”‘$PATH’ $HOME/.bashrc); then
echo export PATH=$PREFIX/bin:‘$PATH’ 》》 $HOME/.bashrc
fi
if !(grep -q “export RTEMS_MAKEFILE_PATH=$PREFIX/$TARGET/$BSP” $HOME/.bashrc); then
echo export RTEMS_MAKEFILE_PATH=$PREFIX/$TARGET/$BSP 》》 $HOME/.bashrc
fi
source $HOME/.bashrc
echo “安装依赖项”
sudo apt-get -d update 2》&1 | tee apt-get_update.log
if (grep -q -E ‘^E:|^Err|^W:’ apt-get_update.log); then
if (grep -q ‘/var/lib/apt/lists/lock’ apt-get_update.log); then
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
if [ $? -ne 0 ]; then
echo “更新源出现错误,请稍候重试1”
exit 1
fi
else
echo “更新源出现错误,请稍候重试2”
exit 1
fi
fi
sudo apt-get install -y autoconf automake autotools-dev build-essential git dpkg-dev g++ libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libgmp-dev libgmp3-dev libgmpxx4ldbl libltdl-dev libmpc-dev libmpfr-dev libtimedate-perl libtool texinfo flex libncurses5-dev libc6-dev
if [ $? -ne 0 ]; then
echo “安装依赖项出现错误,请稍候重试”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
if [ $DOWNLOAD = ‘yes’ ]; then
echo “下载安装并创建压缩包”
which proz 》 /dev/null 2》&1
if [ $? -ne 0 ]; then
echo “安装多线程下载工具”
wget -c http://dxdown1.onlinedown.net/down/prozilla-2.0.4.tar.zip
unzip prozilla-2.0.4.tar.zip prozilla-2.0.4.tar.bz2
tar -xf prozilla-2.0.4.tar.bz2
cd prozilla-2.0.4
sed -i ‘s/DL_Window:://’ src/download_win.h
。/configure
make
sudo make install
cd 。.
fi
which proz 》 /dev/null 2》&1
if [ $? -ne 0 ]; then
echo “安装多线程下载工具出现错误,中止运行”
exit 1
fi
if [ -d “$TOPDIR” ]; then
echo “错误:目录$TOPDIR已经存在”
exit 1
fi
mkdir $TOPDIR
cd $TOPDIR
down_cmd=‘proz -k=20 ’
host1=‘http://mirrors.ustc.edu.cn/gnu’
#host2=‘http://mirror.bjtu.edu.cn/gnu’
$down_cmd$host1/binutils/$binutils_name
$down_cmd$host1/gcc/$gcc_basename/$gcc_name
$down_cmd$host1/gdb/$gdb_name
host1=‘http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11’
$down_cmd$host1/$gcc_diff_name
$down_cmd$host1/$gdb_diff_name
$down_cmd$host1/$newlib_name
$down_cmd$host1/$newlib_diff_name
git_cmd=‘git clone git://git.rtems.org’
$git_cmd/examples-v2.git examples-v2
$git_cmd/rtems.git rtems
$git_cmd/rtems-schedsim.git rtems-schedsim
$git_cmd/rtems-testing.git rtems-testing
$git_cmd/rtems-addon-packages.git rtems-addon-packages
cd 。.
echo “打包。..”
tar -zcf $TOPDIR-$(date +%Y%m%d-%H%M%S).tar.gz $TOPDIR
else
echo “从本地压缩包安装”
rtems_pkg=`find 。 -maxdepth 1 -type f -name “$TOPDIR-????????-??????.tar.gz” | sort -r | head -1`
if [ -z “$rtems_pkg” ]; then
echo “错误:没有找到压缩包,中止执行”
exit 1
fi
if [ -d “$TOPDIR” ]; then
echo “错误:目录$TOPDIR已经存在”
exit 1
fi
echo “解包。..”
tar -xf $rtems_pkg
fi
#echo “按任意键继续。。。” && char=`get_char`
echo “编译安装交叉工具链”
cd $BASEDIR/$TOPDIR
tar -xf $binutils_name
tar -xf $gcc_name
patch -p0 《 $gcc__diff_name
tar -xf $gdb_name
patch -p0 《 $gdb_diff_name
tar -xf $newlib_name
patch -p0 《 $newlib_diff_name
mkdir b-binutils
cd b-binutils
。./$binutils_basename/configure --target=$TARGET --prefix=$PREFIX && make && make install
cd 。.
cd $gcc_basename
ln -s 。./$newlib_basename/newlib 。
cd 。.
mkdir b-gcc
cd b-gcc
。./$gcc_basename/configure --target=$TARGET --with-gnu-as --with-gnu-ld --with-newlib --verbose --enable-threads --enable-obsolete --enable-languages=“c,c++” --prefix=$PREFIX
make
if [ $? -ne 0 ]; then
echo “编译安装交叉工具链出现错误,中止执行”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
make install
cd 。.
mkdir b-gdb
cd b-gdb
。./$gdb_basename/configure --target=$TARGET --prefix=$PREFIX && make && make install
cd 。.
echo “删除多余的BSP” #注释掉的行将被保留
delbsps=‘
arm/c***336
arm/c***337
arm/edb7312
arm/gba
arm/gdbarmsim
arm/gp32
arm/gumstix
arm/lm3s69xx
arm/lpc24xx
arm/lpc32xx
arm/nds
arm/raspberrypi
arm/realview-pbx-a9
arm/rtl22xx
arm/smdk2410
#arm/stm32f4
arm/xilinx-zynq
avr
bfin
h8300
i386
lm32
m32c
m32r
m68k
mips
moxie
nios2
no_cpu
powerpc
sh
sparc
sparc64
v850
’
for i in $delbsps; do
if [ -d “rtems/c/src/lib/libbsp/$i” ]; then
rm -r rtems/c/src/lib/libbsp/$i
fi
if [ -d “rtems/c/src/lib/libcpu/$i” ]; then
rm -r rtems/c/src/lib/libcpu/$i
fi
if [ -d “rtems/cpukit/score/cpu/$i” ]; then
rm -r rtems/cpukit/score/cpu/$i
fi
ii=`echo $i | sed ‘s#/#\/#g’`
sed -i “/$ii/d” rtems/cpukit/configure.ac
sed -i “/$ii/d” rtems/cpukit/score/cpu/Makefile.am
done
echo “删除自带的示例”
rm -r rtems/testsuites
rm -r rtems/c/src/ada-tests
#echo “按任意键继续。。。” && char=`get_char`
fi #end [ $DOWNLOAD = ‘yes’ ] || [ $EXTRACT = ‘yes’ ]
if [ $BOOTSTRAP = ‘yes’ ]; then
echo “引导rtems”
cd $BASEDIR/$TOPDIR/rtems
。/bootstrap -c
。/bootstrap -p
。/bootstrap
if [ $? -ne 0 ]; then
echo “引导rtems出现错误,中止执行”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
cd 。.
fi #end BOOTSTRAP
if [ $CONFIGURE = ‘yes’ ]; then
echo “配置rtems”
cd $BASEDIR/$TOPDIR
if [ -d “b-$BSP” ]; then
rm -r b-$BSP
fi
mkdir b-$BSP
cd b-$BSP
。./rtems/configure --target=$TARGET --enable-rtem***sp=$BSP --disable-tests --enable-posix --disable-networking --prefix=$PREFIX | tee configure.log
if [ $? -ne 0 ]; then
echo “配置rtems出现错误,中止执行1”
exit 1
fi
if !(grep -q “‘make all’ will build the following BSPs” configure.log); then
echo “配置rtems出现错误,中止执行2”
exit 1
fi
echo “如果上面几行出现如下类似语句说明配置成功”
echo “‘make all’ will build the following BSPs: stm32f107.”
echo “other BSPs can be built with ‘make RTEMS_BSP=”bsp1 bsp2 。..“’”
#echo “按任意键继续。。。” && char=`get_char`
fi #end CONFIGURE
if [ $MAKERTEMS = ‘yes’ ]; then
echo “编译安装rtems”
cd $BASEDIR/$TOPDIR/b-$BSP
make clean
make
if [ $? -ne 0 ]; then
echo “编译安装rtems出现错误,中止执行”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
make install
fi #end MAKERTEMS
if [ $APPLICATION = ‘yes’ ]; then
echo “编译应用程序”
cd $BASEDIR/$TOPDIR/examples-v2/hello/hello_world_c
make clean
make
if [ $? -ne 0 ]; then
echo “编译应用程序出现错误,中止执行”
exit 1
fi
echo “如果上面几行出现如下类似语句说明编译成功”
echo “ text data bss dec hex filename”
echo “ 76032 1908 129160 207100 328fc o-optimize/hello.exe”
#echo “按任意键继续。。。” && char=`get_char`
cd o-optimize
$TARGET-objdump -x hello.exe 》 hello.out
$TARGET-objdump -d -j .start -j .vector -j .text -j .init -j .fini -j .rodata -j .ARM.exidx -j .eh_frame -j .init_array -j .fini_array -j .jcr -j .data -j .bss -j .work -j .comment -j .ARM.attributes hello.exe 》 hello.S
$TARGET-objcopy -O binary hello.exe -S hello.bin
cp hello.exe hello.out hello.S hello.bin $BASEDIR
fi #end 应用程序
时间=$SECONDS
小时=$[$时间/3600]
分钟=$[$[$time/60]%60]
秒=$[$time%60]
RTEMS 安装
脚本 rtems_building_v10.sh
#!/bin/bash
#rtems4.11在linuxmint-16-cinnamon-64bit上测试通过
#设置
目标=arm-rtemseabi4.11
PREFIX=/opt/rtems-4.11
BSP=stm32f4
BASEDIR=`密码`
TOPDIR=my_rtems
binutils_name=binutils-2.24.tar.bz2
gcc_name=gcc-4.8.2.tar.bz2
gcc_diff_name=gcc-4.8.2-rtems4.11-20131031.diff
gdb_name=gdb-7.6.2.tar.bz2
gdb_diff_name=gdb-7.6.2-rtems4.11-20131208.diff
newlib_name=newlib-1.20.0.tar.gz
newlib_diff_name=newlib-1.20.0-rtems4.11-20130325.diff
binutils_basename=`echo $binutils_name | awk -F。‘NF-=2’ OFS=。`
gcc_basename=`echo $gcc_name | awk -F。‘NF-=2’ OFS=。`
gdb_basename=`echo $gdb_name | awk -F。‘NF-=2’ OFS=。`
newlib_basename=`echo $newlib_name | awk -F. ‘NF-=2’ OFS=。`
#“按任意键继续。。。”的处理函数
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty raw
dd if=/dev/tty bs=1 count=1 2》 /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
usage()
{
cat 《《EOF
-d 下载安装并创建压缩包-》引导rtems-》配置rtems-》编译安装rtems-》编译应用程序
-e 从本地压缩包安装-》引导rtems-》配置rtems-》编译安装rtems-》编译应用程序
-b 引导rtems-》配置rtems-》编译安装rtems-》编译应用程序
-c 配置rtems-》编译安装rtems-》编译应用程序
-m 编译安装rtems-》编译应用程序
-a 编译应用程序
EOF
}
if [ -z “$1” ]; then
usage
exit 1
fi
DOWNLOAD=no
EXTRACT=no
BOOTSTRAP=no
CONFIGURE=no
MAKERTEMS=no
APPLICATION=no
while getopts debcma OPT
do
case “$OPT” in
d) DOWNLOAD=yes; BOOTSTRAP=yes; CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
e) EXTRACT=yes; BOOTSTRAP=yes; CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
b) BOOTSTRAP=yes; CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
c) CONFIGURE=yes; MAKERTEMS=yes; APPLICATION=yes;;
m) MAKERTEMS=yes; APPLICATION=yes;;
a) APPLICATION=yes;;
*) usage; exit 1;;
esac
done
if [ $DOWNLOAD = ‘yes’ ] || [ $EXTRACT = ‘yes’ ]; then
echo “创建交叉工具链安装目录”
if [ ! -d “$PREFIX” ]; then
sudo mkdir $PREFIX
sudo chown $USER:$USER $PREFIX
fi
if [ -d “$TOPDIR” ]; then
echo “错误:目录$TOPDIR已经存在”
exit 1
fi
echo “设置环境变量”
if [ ! -f “$HOME/.bashrc” ]; then
touch $HOME/.bashrc
fi
if !(grep -q “export PATH=$PREFIX/bin:”‘$PATH’ $HOME/.bashrc); then
echo export PATH=$PREFIX/bin:‘$PATH’ 》》 $HOME/.bashrc
fi
if !(grep -q “export RTEMS_MAKEFILE_PATH=$PREFIX/$TARGET/$BSP” $HOME/.bashrc); then
echo export RTEMS_MAKEFILE_PATH=$PREFIX/$TARGET/$BSP 》》 $HOME/.bashrc
fi
source $HOME/.bashrc
echo “安装依赖项”
sudo apt-get -d update 2》&1 | tee apt-get_update.log
if (grep -q -E ‘^E:|^Err|^W:’ apt-get_update.log); then
if (grep -q ‘/var/lib/apt/lists/lock’ apt-get_update.log); then
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
if [ $? -ne 0 ]; then
echo “更新源出现错误,请稍候重试1”
exit 1
fi
else
echo “更新源出现错误,请稍候重试2”
exit 1
fi
fi
sudo apt-get install -y autoconf automake autotools-dev build-essential git dpkg-dev g++ libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libgmp-dev libgmp3-dev libgmpxx4ldbl libltdl-dev libmpc-dev libmpfr-dev libtimedate-perl libtool texinfo flex libncurses5-dev libc6-dev
if [ $? -ne 0 ]; then
echo “安装依赖项出现错误,请稍候重试”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
if [ $DOWNLOAD = ‘yes’ ]; then
echo “下载安装并创建压缩包”
which proz 》 /dev/null 2》&1
if [ $? -ne 0 ]; then
echo “安装多线程下载工具”
wget -c http://dxdown1.onlinedown.net/down/prozilla-2.0.4.tar.zip
unzip prozilla-2.0.4.tar.zip prozilla-2.0.4.tar.bz2
tar -xf prozilla-2.0.4.tar.bz2
cd prozilla-2.0.4
sed -i ‘s/DL_Window:://’ src/download_win.h
。/configure
make
sudo make install
cd 。.
fi
which proz 》 /dev/null 2》&1
if [ $? -ne 0 ]; then
echo “安装多线程下载工具出现错误,中止运行”
exit 1
fi
if [ -d “$TOPDIR” ]; then
echo “错误:目录$TOPDIR已经存在”
exit 1
fi
mkdir $TOPDIR
cd $TOPDIR
down_cmd=‘proz -k=20 ’
host1=‘http://mirrors.ustc.edu.cn/gnu’
#host2=‘http://mirror.bjtu.edu.cn/gnu’
$down_cmd$host1/binutils/$binutils_name
$down_cmd$host1/gcc/$gcc_basename/$gcc_name
$down_cmd$host1/gdb/$gdb_name
host1=‘http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11’
$down_cmd$host1/$gcc_diff_name
$down_cmd$host1/$gdb_diff_name
$down_cmd$host1/$newlib_name
$down_cmd$host1/$newlib_diff_name
git_cmd=‘git clone git://git.rtems.org’
$git_cmd/examples-v2.git examples-v2
$git_cmd/rtems.git rtems
$git_cmd/rtems-schedsim.git rtems-schedsim
$git_cmd/rtems-testing.git rtems-testing
$git_cmd/rtems-addon-packages.git rtems-addon-packages
cd 。.
echo “打包。..”
tar -zcf $TOPDIR-$(date +%Y%m%d-%H%M%S).tar.gz $TOPDIR
else
echo “从本地压缩包安装”
rtems_pkg=`find 。 -maxdepth 1 -type f -name “$TOPDIR-????????-??????.tar.gz” | sort -r | head -1`
if [ -z “$rtems_pkg” ]; then
echo “错误:没有找到压缩包,中止执行”
exit 1
fi
if [ -d “$TOPDIR” ]; then
echo “错误:目录$TOPDIR已经存在”
exit 1
fi
echo “解包。..”
tar -xf $rtems_pkg
fi
#echo “按任意键继续。。。” && char=`get_char`
echo “编译安装交叉工具链”
cd $BASEDIR/$TOPDIR
tar -xf $binutils_name
tar -xf $gcc_name
patch -p0 《 $gcc__diff_name
tar -xf $gdb_name
patch -p0 《 $gdb_diff_name
tar -xf $newlib_name
patch -p0 《 $newlib_diff_name
mkdir b-binutils
cd b-binutils
。./$binutils_basename/configure --target=$TARGET --prefix=$PREFIX && make && make install
cd 。.
cd $gcc_basename
ln -s 。./$newlib_basename/newlib 。
cd 。.
mkdir b-gcc
cd b-gcc
。./$gcc_basename/configure --target=$TARGET --with-gnu-as --with-gnu-ld --with-newlib --verbose --enable-threads --enable-obsolete --enable-languages=“c,c++” --prefix=$PREFIX
make
if [ $? -ne 0 ]; then
echo “编译安装交叉工具链出现错误,中止执行”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
make install
cd 。.
mkdir b-gdb
cd b-gdb
。./$gdb_basename/configure --target=$TARGET --prefix=$PREFIX && make && make install
cd 。.
echo “删除多余的BSP” #注释掉的行将被保留
delbsps=‘
arm/c***336
arm/c***337
arm/edb7312
arm/gba
arm/gdbarmsim
arm/gp32
arm/gumstix
arm/lm3s69xx
arm/lpc24xx
arm/lpc32xx
arm/nds
arm/raspberrypi
arm/realview-pbx-a9
arm/rtl22xx
arm/smdk2410
#arm/stm32f4
arm/xilinx-zynq
avr
bfin
h8300
i386
lm32
m32c
m32r
m68k
mips
moxie
nios2
no_cpu
powerpc
sh
sparc
sparc64
v850
’
for i in $delbsps; do
if [ -d “rtems/c/src/lib/libbsp/$i” ]; then
rm -r rtems/c/src/lib/libbsp/$i
fi
if [ -d “rtems/c/src/lib/libcpu/$i” ]; then
rm -r rtems/c/src/lib/libcpu/$i
fi
if [ -d “rtems/cpukit/score/cpu/$i” ]; then
rm -r rtems/cpukit/score/cpu/$i
fi
ii=`echo $i | sed ‘s#/#\/#g’`
sed -i “/$ii/d” rtems/cpukit/configure.ac
sed -i “/$ii/d” rtems/cpukit/score/cpu/Makefile.am
done
echo “删除自带的示例”
rm -r rtems/testsuites
rm -r rtems/c/src/ada-tests
#echo “按任意键继续。。。” && char=`get_char`
fi #end [ $DOWNLOAD = ‘yes’ ] || [ $EXTRACT = ‘yes’ ]
if [ $BOOTSTRAP = ‘yes’ ]; then
echo “引导rtems”
cd $BASEDIR/$TOPDIR/rtems
。/bootstrap -c
。/bootstrap -p
。/bootstrap
if [ $? -ne 0 ]; then
echo “引导rtems出现错误,中止执行”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
cd 。.
fi #end BOOTSTRAP
if [ $CONFIGURE = ‘yes’ ]; then
echo “配置rtems”
cd $BASEDIR/$TOPDIR
if [ -d “b-$BSP” ]; then
rm -r b-$BSP
fi
mkdir b-$BSP
cd b-$BSP
。./rtems/configure --target=$TARGET --enable-rtem***sp=$BSP --disable-tests --enable-posix --disable-networking --prefix=$PREFIX | tee configure.log
if [ $? -ne 0 ]; then
echo “配置rtems出现错误,中止执行1”
exit 1
fi
if !(grep -q “‘make all’ will build the following BSPs” configure.log); then
echo “配置rtems出现错误,中止执行2”
exit 1
fi
echo “如果上面几行出现如下类似语句说明配置成功”
echo “‘make all’ will build the following BSPs: stm32f107.”
echo “other BSPs can be built with ‘make RTEMS_BSP=”bsp1 bsp2 。..“’”
#echo “按任意键继续。。。” && char=`get_char`
fi #end CONFIGURE
if [ $MAKERTEMS = ‘yes’ ]; then
echo “编译安装rtems”
cd $BASEDIR/$TOPDIR/b-$BSP
make clean
make
if [ $? -ne 0 ]; then
echo “编译安装rtems出现错误,中止执行”
exit 1
fi
#echo “按任意键继续。。。” && char=`get_char`
make install
fi #end MAKERTEMS
if [ $APPLICATION = ‘yes’ ]; then
echo “编译应用程序”
cd $BASEDIR/$TOPDIR/examples-v2/hello/hello_world_c
make clean
make
if [ $? -ne 0 ]; then
echo “编译应用程序出现错误,中止执行”
exit 1
fi
echo “如果上面几行出现如下类似语句说明编译成功”
echo “ text data bss dec hex filename”
echo “ 76032 1908 129160 207100 328fc o-optimize/hello.exe”
#echo “按任意键继续。。。” && char=`get_char`
cd o-optimize
$TARGET-objdump -x hello.exe 》 hello.out
$TARGET-objdump -d -j .start -j .vector -j .text -j .init -j .fini -j .rodata -j .ARM.exidx -j .eh_frame -j .init_array -j .fini_array -j .jcr -j .data -j .bss -j .work -j .comment -j .ARM.attributes hello.exe 》 hello.S
$TARGET-objcopy -O binary hello.exe -S hello.bin
cp hello.exe hello.out hello.S hello.bin $BASEDIR
fi #end 应用程序
时间=$SECONDS
小时=$[$时间/3600]
分钟=$[$[$time/60]%60]
秒=$[$time%60]
举报