多年前笔者看过RTEMS的相关文档,当时参考几位前辈Ray/雪松/Rickleaf的大作。进来突发奇想,这么多年,这个OS仍然在维护发展,当前最新已经到6版了,用新的CODE游玩一把,略作记录。
把玩RTEMS, 编译环境是少不了折腾的,不过当前已经有人开发了source-builder的工具,编译工具等可以省心不少,4.10.3-RC2是4系列版本中开始有source builder工具的版本,5.3 当前已经支持,这里选用 4.10.3-RC2 和 5.3 两个版本
安装Linux 使用centos 7.6 为避免不必要麻烦,选择全部安装。
从Index of /pub/rtems/releases/4.10/4.10.3-rc2/现在所有文件
解压缩rtems-source-builder-4.10.3-rc2.tar.xz 到该目录下
/root/rtems-source-builder-4.10.3-rc2/rtems
新建patchs sources两个目录,其中patchs 用于放置 .diff 文件,sources 放置其他下载的文件
source-builder完全可以运行命令后,联网自动下载编译,这里提前下载好相关文件放到两个目录中,避免网络问题下载中断导致各种问题。
切换到如下目录
$ cd rtems-source-builder-4.10.3-rc2/rtems
运行如下配置
$ ../source-builder/sb-set-builder --prefix=$HOME/development/rtems/4.10.3-rc2 4.10/rtems-i386
因为相关文件都已提前现在,所以source builder自动开始编译,笔者机器32Core, 编译一共花费10分钟,其中Build NewLib时间最长,编译时可以随时打开rtems-source-builder-4.10.3-rc2/rtems/目录下rsb开头的.txt 文件查看进度
编译后的交叉工具链位于
/root/development/rtems/4.10.3-rc2/
查看内容如下
ls /root/development/rtems/4.10.3-rc2/
bin i386-rtems4.10 include lib lib64 libexec make share
当前4.10版本的交叉工具链已编译生成,放置目录结构如下:
[root@localhost development]# tree -L 3
.├── rtems
│ └── 5.3
│ ├── bin
│ ├── i386-rtems5
│ ├── lib
│ ├── make
│ └── share
├── rtems-arm