rtems 5.3 qemu realview_pbx_a9 环境搭建:生成 rtems arm 工具链
前言
-
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.xz,tar 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
相关文章:
rtems 5.3 qemu realview_pbx_a9 环境搭建:生成 rtems arm 工具链
前言 rtems 是一款比较优秀的 RTOS,官方网址 https://www.rtems.org/ 当前 rtems 最新发布的版本:rtems-5.3 版本, 下载地址 https://ftp.rtems.org/pub/rtems/releases/5/5.3/ rtems 支持的 平台也是比较多的,当前支持 STM32F4…...
【算法】栈与模拟
【ps】本篇有 5 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1)删除字符串中的所有相邻重复项 .1- 题目解析 .2- 代码编写 2)比较含退格的字符串 .1- 题目解析 .2- 代码编写 3)基本计算器 II .1- 题目解析 .2- 代码编写 4&…...
【Django】Django AI 聊天机器人项目:基于 ChatGPT 的 Django REST API
Django AI 聊天机器人项目:基于 ChatGPT 的 Django REST API 本文档将介绍如何使用 Django 和 Django REST Framework 构建一个 AI 聊天机器人项目,并结合 OpenAI 的 GPT 模型提供代码解释服务。步骤包括创建 Django 项目、配置 API、与 OpenAI 集成&am…...
System.out源码解读——err 和 out 一起用导致的顺序异常Bug
前言 笔者在写一个小 Demo 的过程中,发现了一个奇怪的问题。问题如下: // 当 flagtrue 时打印 a1 ;当 flagfalse 时打印 a2。 public static void main(String[] args) {boolean flag false;for (int i 0; i < 10; i) {if (flag) {Sys…...
汽车软件开发之敏捷开发
一、前言 目前汽车电子产品,特别是汽车几大域控(如:智能座舱、智能驾驶、智能网联、车身控制)市场竞争激烈,消费者对汽车的需求逐渐多元化和个性化,用户对座舱和智驾产品的要求也越来越高。他们不仅要求产…...
ListBox显示最新数据、左移和右移操作
1、程序 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static Sys…...
mysql实用系列:日期格式化
在MySQL中,你可以使用DATE_FORMAT()函数来格式化日期。DATE_FORMAT() 函数通常用于格式化 DATETIME 或 TIMESTAMP类型的字段。这个函数允许你按照指定的格式来显示日期和时间。下面是一些常见的日期格式化的例子: 显示年-月-日: SELECT DATE_…...
时钟频率、AI采样率与AO更新率的关系
在数据采集和信号生成设备(如NI板卡)中,时钟频率、AI(模拟输入)采样率、以及AO(模拟输出)更新率是三个至关重要的参数。它们共同决定了设备在信号采集与生成时的性能表现。本文将详细分析它们之…...
代理IP设置后IP不变?可能的原因及解决方法
在使用代理IP时,有时会遇到代理设置后IP地址却没有变化的情况。这种问题可能会让人感到困惑,但其实背后有多种原因。本文将详细探讨这些原因,并提供相应的解决方法,帮助你顺利解决问题。 可能的原因 代理IP设置后IP地址不变的原…...
瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商
本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法,本次使用了触觉智能的EVB3588开发板演示,搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计,为工业场景设计研发的模块化产品,10年以上稳定供货,帮助…...
Varjo在芬兰开设新工厂,以满足国防部门在XR模拟训练中的需求
在军事国防领域,全新技术的投入使用最看重的就是保密与安全。作为全球领先的XR头戴式显示器提供商Varjo,近日正式宣布将在位于芬兰的赫尔辛基开设一家新的安全制造工厂。 此次工厂扩建将使Varjo能够满足国防训练和模拟领域对其高分辨率XR解决方案日益增…...
python 识别省市、区县并组建三级信息数据库
一、网址: 全国行政区划信息查询平台 二、分析并搭建框架 检查网页源码: 检查网页源码可以发现: 所有省级信息全部在javaScript下的json中,会在页面加载时加载json数据,填充到页面的option中。 1、第一步:…...
家用小型超声波清洗机怎么选?四大人气爆款品牌不可错过!
在现代社会快节奏的步伐中,保持高度的个人及家居卫生标准成为了日常生活的重要组成部分,对于追求高端生活品质的人群而言,这一点尤为重要。因此,选取一款集高效与便利于一体的超声波清洗机,无疑是升级日常清洁体验的理…...
NVIDIA最新AI论文介绍NEST:一种用于语音处理的快速高效自监督模型
语音处理专注于开发能够分析、解释和生成人类语音的系统。这些技术涵盖了多种应用,例如自动语音识别(ASR)、说话人验证、语音转文本翻译以及说话人分离。随着对虚拟助手、转录服务和多语言交流工具的依赖不断增加,高效准确的语音处…...
聊聊对别人表示真正的关注
在工作和生活中,那些重要人士所得到的关注已经很多了,所以你不能只关注那些重要的人,对那些保洁门卫、前台等也需要我们给予真心的关注。 他们可使你的生活正常有序,但却经常被你忽略,见面打个招呼时常跟他们聊一聊,这…...
大数据-133 - ClickHouse 基础概述 全面了解
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
第1步win10宿主机与虚拟机通过NAT共享上网互通
VM的CentOS采用NAT共用宿主机网卡宿主机器无法连接到虚拟CentOS 要实现宿主机与虚拟机通信,原理就是给宿主机的网卡配置一个与虚拟机网关相同网段的IP地址,实现可以互通。 1、查看虚拟机的IP地址 2、编辑虚拟机的虚拟网络的NAT和DHCP的配置,…...
Python学习——【2.3】for循环
文章目录 【2.3】for循环一、for循环基础语法(一)基础语法※、练习 (二)range语句※、练习 (三)变量作用域 二、for循环嵌套使用※、练习 【2.3】for循环 一、for循环基础语法 (一)…...
Element UI:初步探索 Vue.js 的高效 UI 框架
Element UI:初步探索 Vue.js 的高效 UI 框架 一 . ElementUI 基本使用1.1 Element 介绍1.2 Element 快速入门1.3 基础布局1.4 容器布局1.5 表单组件1.6 表格组件1.6.1 基础表格1.6.2 带斑马纹表格1.6.3 带边框表格1.6.4 带状态的表格 1.7 导航栏组件讲解 二 . 学生列…...
React Native防止重复点击
项目中遇到了点击按钮重复提交的问题,防止重复点击首先是想到的是给点击事件一个定时,下次触发的条件是要距离上一次点击的时间大于N秒的之后才能再执行。 // 防重复点击函数 export const preventRepeatPress {lastPressTi1me: 0, // 上次点击时间…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果,那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
