RTEMS linux 下开发环境搭建

本文详细介绍了在Ubuntu 14.04环境下使用RSB搭建RTEMS GNU交叉编译环境的步骤,包括配置交叉编译工具链、编译RTEMS及示例程序的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galaxy_Robot

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值