rtems 5.3 qemu realview_pbx_a9 环境搭建:生成 rtems arm 工具链

news2024/11/14 14:56:47

前言

  • rtems 是一款比较优秀的 RTOS,官方网址 https://www.rtems.org/

  • 当前 rtems 最新发布的版本:rtems-5.3 版本, 下载地址 https://ftp.rtems.org/pub/rtems/releases/5/5.3/

  • rtems 支持的 平台也是比较多的,当前支持 STM32F4,也支持 qemu(模拟器)realview_pbx_a9

下载 rtems-5.3

  • 通过下载地址 https://ftp.rtems.org/pub/rtems/releases/5/5.3/ 下载 rtmes-5.3 以及 rtems-source-builder-5.3

在这里插入图片描述

  • rtems-5.3.tar.xz 是 rtems 5.3 版本的源码

  • rtems-source-builder-5.3.tar.xz 是 rtems 5.3 编译工具链的构建源码,用于构建编译 rtems 的编译工具链,比如 ARM gcc 交叉编译工具链

编译 rtems 的工具链

  • rtems bsp realview_pbx_a9,需要使用 ARM gcc 交叉编译工具链,使用 rtems-source-builder-5.3 进行构建

  • 编译平台: ubuntu 20.04

  • 解压下载的 rtems-source-builder-5.3.tar.xztar xf /mnt/hgfs/rtems/5.3/rtems-5.3.tar.xz -C ./

  • 进入 rtems-source-builder-5.3/rtems 目录,运行
    ../source-builder/sb-set-builder --prefix=$HOME/rtems/arm/5.3 config/5/rtems-arm

  • 这里的 --prefix=$HOME/rtems/arm/5.3 表示编译的产物,也就是 rtems arm gcc 交叉编译工具链的存放路径,rtems 默认使用 newlib C 库,因此需要手动编译 rtems arm gcc 交叉编译工具链

  • rtems-source-builder 是一套编译 rtems 工具链的脚本,会自动下载 编译工具链依赖的各个软件包,如 gcc、gdb 等,并编译生成一套编译工具链,可以认为是生成编译工具链的一套脚本。

在这里插入图片描述

  • 当前 rtems 5.3 版本:arm (32位) gcc 交叉编译工具链依赖的软件包清单如下:
$ ls sources/
autoconf-2.69.tar.gz    expat-2.1.0.tar.gz  gmp-6.1.0.tar.bz2   mpfr-3.1.4.tar.bz2
automake-1.12.6.tar.gz  gcc-7.5.0.tar.xz    isl-0.16.1.tar.bz2  newlib-7947581.tar.gz
binutils-2.34.tar.bz2   gdb-9.1.tar.xz      mpc-1.0.3.tar.gz    rtems-tools-5.3.tar.xz
  • 工具链编译过程比较长,如果电脑性能、内存比较小的情况下,如果网速慢,下载各个软件包也需要较长的时间

在这里插入图片描述

  • 【备注】如果某个软件包下载失败导致编译终止,建议手动下载指定的版本,然后放在 rtems-source-builder-5.3/rtems/sources 目录下,再次编译

验证 rtems arm gcc 工具

  • 可以进入 rtems arm gcc 的目录,运行 ./arm-rtems5-gcc -v,也可以把 rtems arm gcc 的路径设置到环境变量中,export PATH=$PATH:/home/zhangsz/rtems/arm/5.3/bin,然后运行 arm-rtems5-gcc -v
zhangsz@zhangsz:~/rtems/arm/5.3$ arm-rtems5-gcc -v
Using built-in specs.
COLLECT_GCC=arm-rtems5-gcc
COLLECT_LTO_WRAPPER=/home/zhangsz/rtems/arm/5.3/libexec/gcc/arm-rtems5/7.5.0/lto-wrapper
Target: arm-rtems5
Configured with: ../gcc-7.5.0/configure --prefix=/home/zhangsz/rtems/arm/5.3 --bindir=/home/zhangsz/rtems/arm/5.3/bin --exec_prefix=/home/zhangsz/rtems/arm/5.3 --includedir=/home/zhangsz/rtems/arm/5.3/include --libdir=/home/zhangsz/rtems/arm/5.3/lib --libexecdir=/home/zhangsz/rtems/arm/5.3/libexec --mandir=/home/zhangsz/rtems/arm/5.3/share/man --infodir=/home/zhangsz/rtems/arm/5.3/share/info --datadir=/home/zhangsz/rtems/arm/5.3/share --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-rtems5 --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --verbose --with-newlib --disable-nls --without-included-gettext --disable-win32-registry --disable-werror --enable-version-specific-runtime-libs --enable-newlib-io-c99-formats --enable-newlib-iconv --enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,win_1253,win_1254,win_1255,win_1256,win_1257,win_1258 --enable-threads --disable-plugin --enable-libgomp --enable-languages=c,c++,lto
Thread model: rtems
gcc version 7.5.0 20191114 (RTEMS 5, RSB 5.3, Newlib 7947581) (GCC)
  • 当前 rtems 5.3 arm gcc 的版本: gcc version 7.5.0

  • 自此, rtems 5.3 版本 ARM 32位 的 交叉编译工具链生成成功

小结

  • 本篇注意记录 rtems 5.3 版本 arm gcc 交叉编译工具链的生成,使用了 newlib C 库

  • rtems 支持 bsp qemu realview_pbx_a9 ,后续可以在没有硬件的情况下运行、调试 rtems,熟悉 rtems

  • rtems arm gcc 交叉编译工具链还支持其他 arm 系列的平台,比如 rtems 支持的 STM32F4 平台,后续尝试在 STM32 平台上移植适配 rtems

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2139654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

差分进化算法(DE算法)求解实例---旅行商问题 (TSP)

目录 一、采用DE求解 TSP二、 旅行商问题2.1 实际例子:求解 6 个城市的 TSP2.2 **求解该问题的代码**2.3 代码运行过程截屏2.4 代码运行结果截屏(后续和其他算法进行对比) 三、 如何修改代码?3.1 减少城市坐标,如下&am…

关系数据库(6,7,8)

目录 除运算 例子 关系演算 元组关系演算语言ALPHA 检索操作 更新操作 插入操作 删除操作 除运算 其中x,y,z是属性组,r对s的除运算得到新的关系p(x),列数减少了,变得只有一列。 例子 当…

103.WEB渗透测试-信息收集-FOFA语法(3)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:102.WEB渗透测试-信息收集-FOFA语法(2) FOFA使用实例 组件框架 …

基于yolov5的混凝土缺陷检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv5的混凝土缺陷检测系统是一项利用深度学习技术,特别是YOLOv5算法,实现对混凝土结构中缺陷进行自动检测和识别的系统。该系统通过收集大量的混凝土图像数据,并标注缺陷区域,如裂缝、空洞、剥落等&#xff0…

Github 2024-09-16 开源项目周报 Top14

根据Github Trendings的统计,本周(2024-09-16统计)共有14个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目2Go项目2JavaScript项目2Shell项目2Rust项目2C++项目2Jupyter Notebook项目1C#项目1React: 用于构建用户界面的JavaS…

中国矿业大学《2023年868+2007年自动控制原理真题》 (完整版)

本文内容,全部选自自动化考研联盟的:《25届中国矿业大学868自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2007年复试真题 2023年初试真题 Part1:完整版真题 2007年复试真题 2…

【自动驾驶】控制算法(八)横向控制Ⅳ | 调试与优化

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

寄存器的位数据调测方法(摩尔信使MThings)

图中是一种典型MODBUS寄存器位数据定义方式,这种数据定义主要基于数据紧凑设计原则(精确位宽分配),将明确含义(取值范围)的字段分配最小必要的数据长度,进而减少寄存器总数,提升数据…

【更新】上市公司-供应链金融水平数据(2000-2023年)

上市公司供应链金融是指上市公司利用其产业链核心地位,通过整合金融资源,为供应链上下游企业提供包括融资、结算、风险管理等在内的综合金融服务。为了衡量上市公司的供应链金融水平,参考周兰等(2022)的研究方法&#…

统信服务器操作系统【d版字符系统升级到dde图形化】配置方法

统信服务器操作系统d版本上由字符系统升级到 dde 桌面系统的过程 文章目录 一、准备环境二、功能描述安装步骤1. lightdm 安装2. dde 安装 一、准备环境 适用版本:■UOS服务器操作系统d版 适用架构:■ARM64、AMD64、MIPS64 网络:连接互联网…

Redis Key的过期策略

Redis 的过期策略主要是指管理和删除那些设定了过期时间的键,以确保内存的有效使用和数据的及时清理。 具体来说,Redis 有三种主要的过期策略:定期删除(Scheduled Deletion)、惰性删除(Lazy Deletion&#…

要想实现稳定利润就来Anzo Capital 昂首资本官网

都知道低波动性交易策略不仅降低了风险,还提供了一种在波动市场中保持冷静的方法,但投资者要想在低波动性交易策略下实现稳定的利润,还需来Anzo Capital 昂首资本官网。 Anzo Capital 昂首资本官网的交易策略基于几个核心原则。首先&#xf…

基于yolov8的无人机检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的无人机检测系统是一项前沿技术,结合了YOLOv8深度学习模型的强大目标检测能力与无人机的灵活性。YOLOv8作为YOLO系列的最新版本,在检测精度和速度上均有显著提升,特别适用于复杂和高动态的场景。 该系统通过捕获实…

【python】python入门基础理论+实践,这一篇就够了

文章目录 简介:第一个hello world字符串str多引号字符串拼接字符串方法格式化方法判断方法查、改、计数、替换特殊方法 布尔型bool列表类型深浅copy列表生成式练习列表去重(不能用set)找到列表中第二大的数(不能用sort)判断一个列表是不是另外…

python selenium网页操作

一、安装依赖 pip install -U seleniumselenium1.py: from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Chrome() driver.get("https://www.selenium.dev/selenium/web/web-form.html") title driver.ti…

网络安全学习(二)初识kali

kali有两种界面模式,为了更好的适应windows用户,需要操作一下。 先更新一下kali,执行命令 sudo apt-get update 然后换界面 sudo apt install kali-desktop-gnome 等待,出现如下界面时,选择gdm3(键盘&a…

计算机视觉 对比学习 串烧一

文章目录 【文章列表】一、 Inst Disc1.1 文章摘要1.2 实验结果1.3 文章图示图一 超级学习结果的可视化图二 非参数softmax分类器的流程图三 近端正则化的效果图四 训练和测试目标的一致性图五 图像检索的结果表 1: CIFAR10 数据集上的分类准确率表 2: ImageNet 数据集上的分类…

临工30装载机多路阀

如图,因为螺丝太紧实,只好使用冲击螺丝刀卸下来了。 如图,防尘圈型号为FA 28 40 5/9 如图所示 28杆

【双方演化博弈】研究理论学习

1. 演化基础 1.1.演化博弈常用软件 载学习软件: Matlab、Vensim PLE、 Visio 其中,Matlab和Vensim PLE主要是用做演化博弈仿真,Matlab是演化博弈最常用的仿真软件,VensimPLE是系统动力学(SD)仿真软件也是常用仿真软件之一。 Python、Netlogo等软件也可以用来做演…

Vue 也能这样玩?Vuetify 打造超强大的UI体验

Vue 也能这样玩?Vuetify 打造超强大的UI体验! 在前端开发的世界里,选择一个合适的 UI 组件库就像选择一把趁手的兵器。Vuetify 作为一款基于 Vue 的 Material Design 组件库,凭借其强大的功能和活跃的社区,已经成为了无…