RTEMS 编译环境的建立(Cygwin)

开发环境是进行 RTEMS 开发的基础。RTEMS 为开发人员准备了基于Windows和Linux两大操作系统的工具链。
两条工具链都是GNU工具链在不同平台上的移植。本质上都是相同的。

在Windows操作系统下,建立Cygwin的开发环境,在cygwin上编译RTEMS的应用程序,
使用Windows的编辑工具编辑RTEMS的代码。
由于Cygwin是一个Windows下类Linux的环境。所以本文介绍的方法也适用于Linux的大部分发行版本。

相关阅读:RTEMS 开发环境建立 (Linux)

Cygwin目前可以工作在所有发布的Windows版本,Windows CE除外。推荐使用Windows XP SP2/SP3的平台,
如果使用最新的Windows 7也可。读者请到下载最新的cygwin安装程序。
读者如果在国内安装Cygwin,可以选择作为安装源,选择地域相近的安装源,
可以大幅节省下载时间。安装cygwin时请注意,
由于默认安装选项是没安装一些重要的开发工具,读者需要在安装程序中手动指定以下工具:

Devel选项下的~binutils、gcc-core、gcc-ada、gcc-g++、gcc4、gcc4-ada、gcc4-core、gcc4-g++、gdb和make, gcc相关的库会自动被安装程序选中,无需指定;  Perl选项下的perl和perl-Error;

如果有读者对 vi 情有独钟,那么也需要手动指定。选择完毕后即可开始安装,时间视网速而定,
尽量减少一些不必要的安装包,否则要有充分的心理准备。安装完成后,即开始进行 RTEMS 工具链的安装。
本文使用的 RTEMS 版本是 RTEMS-4.9.4,用户需要下载相关的交叉工具链。本书的重点是向大家介绍 RTEMS 的开发流程,
故不向读者介绍如何编译 RTEMS 交叉工具链。OAR 公司已经为 RTEMS 开发者编译好了相关的工具链,
只需从 中下载我们需要的工具链,安装到 Cygwin 里即可。
以 ARM 的工具链为例,需要下载以下工具链:

rtems-4.9-binutils-common-2.19-3.tar.bz2 rtems-4.9-arm-rtems4.9-binutils-2.19-3.tar.bz2 rtems-4.9-gcc-common-4.3.2-24.tar.bz2 rtems-4.9-arm-rtems4.9-gcc-4.3.2-24.tar.bz2 rtems-4.9-arm-rtems4.9-gcc-c++-4.3.2-24.tar.bz2 rtems-4.9-gdb-common-6.8-11.tar.bz2 rtems-4.9-arm-rtems4.9-gdb-6.8-11.tar.bz2 rtems-4.9-newlib-common-1.16.0-24.tar.bz2 rtems-4.9-arm-rtems4.9-newlib-1.16.0-24.tar.bz2 rtems-4.9-autoconf-2.62-4.tar.bz2 rtems-4.9-automake-1.10.1-4.tar.bz2

官方推荐的安装位置是/opt,由于官方文档以及一些实例都是基于这个路径,
尽量不要更改这个路径,以造成不必要的麻烦。在windows下可以使用一些图形解压工具如WinRAR做解压缩。
也可以在Cygwin中使用tar命令做解压缩。注意:在Linux上安装开发工具时,工具安装文件是RPM包,安装时系统
会对依赖做检查,有一定的安装顺序,请耐心的按照系统的提示,合理的选择工具链安装顺序。Cygwin下采用的是直接
解压缩,没有对安装包做依赖检查,所以没有安装顺序。

工具链安装完毕后,解压缩 rtems-4.9.4.tar.bz2,假设解压缩在~/rtems-4.9.4下。
我们顺序输入以下命令测试一下工具链是否工作正常。

#export PATH=/opt/rtems-4.9/bin:$PATH   #cd ~/rtems-4.9.4   #mkdir bulid   #cd build   #../configure --target=arm-rtems4.9 --disable-posix --disable-networking     --disable-cxx --enable-rtemsbsp=csb337 --prefix=/opt/rtems-4.9   #make  

如果顺利编译完毕,那么恭喜你,工具链已经正常工作了。如果不能正常结束,请仔细查阅系统输出信息,考虑以下几个问题:

Cygwin~是否是最新的版本? Cygwin~中相关的开发工具是否全部安装? RTEMS~交叉工具链中的工具是否全部安装? RTEMS~交叉工具链路径是否正确? 是否将~RTEMS~交叉工具链路径输入到环境变量 PATH 中?

预祝您的Cygwin的工作环境安装成功。

另外,我在 Linux、cygwin上都顺利实现了rtems编译环境的建立,欢迎大家与我讨论关于rtems的问题。

baconxu@gmail.com,谢谢。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgdxs.html