RTEMS linux 下开发环境搭建
RTEMS linux 下开发环境搭建
RTEMS官网推荐使用RSB搭建GNU交叉编译环境工具链。这里我以ubuntu14.04为例子,说明流程。
(1)通过RSB编译搭建交叉编译环境
首先安装RSB需要的软件包
$ sudo apt-get build-dep binutils gcc g++ gdb unzip git python2.7-dev
安装这个软件包的时候,我试过出现以下找不到某个软件包源码的错误,原因有可能是选择的软件更新服务器不包含该软件包,换个一个服务器地址可以解决,用主服务器是没有问题的。
设置目录等(注意以下命令需要在特定的目录运行,不要随便切换到其他目录)
$ cd
$ mkdir -p development/rtems/src
$ cd development/rtems/src
从github获取工具集的源码
$ git clone git://git.rtems.org/rtems-source-builder.git
$ cd rtems-source-builder
检验,检验设置是否正确,正确和不正确的结果如下
若设置不正确,显示结果可能如下
$ source-builder/sb-check
warning: exe: absolute exe found in path: (__objcopy) /usr/local/bin/objcopy
warning: exe: absolute exe found in path: (__objdump) /usr/local/bin/objdump
error: exe: not found: (_xz) /usr/local/bin/xz
RTEMS Source Builder environment is not correctly set up
若设置正确,显示结果为
$ source-builder/sb-check
RTEMS Source Builder environment is ok
编译工具集,先进入RTEMS目录结构的正确位置
$ cd rtems
此时,所在的目录应该为
~/development/rtems/src/rtems-source-builder/rtems
运行命令检查可以用于编译的配置,
$ ../source-builder/sb-set-builder —list-bsets
若出现不允许读写/usr目录,加上sudo.
我的运行结果为
RTEMS Source Builder - Set Builder, 4.12 (08f709966f97 modified)
Examining: config
Examining: ../source-builder/config
Examining: ../bare/config
4.12/rtems-aarch64.bset
4.12/rtems-all.bset
4.12/rtems-arm.bset
4.12/rtems-autotools-base.bset
4.12/rtems-autotools-internal.bset
4.12/rtems-autotools.bset
4.12/rtems-bfin.bset
4.12/rtems-default.bset
4.12/rtems-epiphany.bset
4.12/rtems-i386.bset
4.12/rtems-lm32.bset
4.12/rtems-m32c.bset
4.12/rtems-m68k.bset
4.12/rtems-microblaze.bset
4.12/rtems-mips.bset
4.12/rtems-moxie.bset
4.12/rtems-nios2.bset
4.12/rtems-or1k.bset
4.12/rtems-powerpc.bset
4.12/rtems-sh.bset
4.12/rtems-sparc.bset
4.12/rtems-sparc64.bset
4.12/rtems-tools.bset
4.12/rtems-v850.bset
4.12/rtems-x86\_64.bset
databases/sqlite.bset
devel/autotools-base.bset
devel/autotools-internal.bset
devel/autotools.bset
devel/dtc.bset
devel/libtool.bset
devel/libusb.bset
devel/or1ksim.bset
devel/qemu.bset
gnu-tools-4.6.bset
gnu-tools-4.8.2.bset
graphics/freetype2.bset
graphics/graphics-all.bset
graphics/libjpeg.bset
graphics/libpng.bset
graphics/libtiff.bset
graphics/microwindows.bset
graphics/nxlib.bset
graphics/t1lib.bset
lang/gcc491.bset
net-mgmt/net-snmp.bset
net/lwip.bset
net/ntp.bset
net/protobuf.bset
rtems-base.bset
rtems-package.bset
rtems-urls.bset
rtems-version.bset
指定编译器安装路径,log文件,其中 4.12/rtems-arm是系统支持的编译配置文件.可以从上一步的显示的配置中选择一个,我这里选择为4.12/rtems-arm,每个配置文件有不同的配置,如4.12/rtems-all.bset 表示rtem4.12支持的所有处理器架构,4.12/rtems-all.bset 表示rtems4.12支持的arm处理器架构。
$ ../source-builder/sb-set-builder —log=l-arm.txt \
--prefix=$HOME/development/rtems/4.12 4.12/rtems-arm
编译需要比较长时间,我的笔记本电脑编译花了一个半小时。
(2)编译 rtems
$ cd ~/development/rtems/src
下载rtems源码
$ git clone git://git.rtems.org/rtems.git
$ export PATH=$HOME/development/rtems/4.12/bin:$PATH
$ cd rtems
$ ./bootstrap
$ cd ..
$ mkdir rtems-build
$ cd rtems-build
其中 arm-rtems4.12 为工具链的版本,enable-rtemsbsp 选择对应的bsp参与编译
其他为一些功能选项,根据需要打开
../rtems/configure \
--prefix=`pwd`/../rtems_stm32f4xx \
--target=arm-rtems4.12 \
--disable-maintainer-mode \
--disable-multiprocessing \
--disable-posix \
--disable-networking \
--disable-cxx \
--disable-tests \
--disable-rtems-debug \
--disable-multilib \
--disable-paravirt \
--disable-drvmgr \
--disable-docs \
--enable-rtemsbsp=stm32f4
make
make install
编译完成.
编译后安装的文件在 ~/development/rtems/src/rtems_stm32f4xx
(3)编译例子
下载
git clone git://git.rtems.org/examples-v2.git examples-v2
添加makefile路径变量
export RTEMS_MAKEFILE_PATH=~/development/rtems/src/rtems/rtems_stm32f4xx/arm-rtems4.12/stm32f4/
cd examples-v2
make
编译完成
Tip:为了以后启动终端不用重复设置环境变量,可以把它们添加到家目录下的配置文件.bashrc中,在里面加入两行.如果没设置好这两个环境变量,在编译例子的时候会出现错误.
export PATH=$HOME/development/rtems/4.12/bin:$PATH
export RTEMS_MAKEFILE_PATH=~/development/rtems/src/rtems/rtems_stm32f4xx/arm-rtems4.12/stm32f4/
然后更新一下
$ source .bashrc
还没有评论,来说两句吧...