RT-Thread Smart 用户态开发体验

rt_thread_smart移植步骤总结(基于imx6ull开发板) 计算偏移地址=内核虚拟地址初始地址(固定值)- 内存物理地址初始值(查找芯片手册)修改偏移地址:配置环境后进入imx6ull文件夹menuconfig命令修改The offset of kernel physical address and virtural address为0xC000 0000指定通用中断控制器地址,imx6ull的内存为512M,转换为十六进制位为512*1024*1024-1= 阅读详情

背景

RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间。
自 V5.0.0 起,rt-smart 分支已合并至 master 分支上,下载 rt-thread 源码后,无需再切换至 rt-smart 分支,但需要为 BSP 配置 Smart 内核。

架构

RT-Thread Smart 在硬件平台的基础上通过 MMU、系统调用的方式把整个系统分成了内核态及用户态。用户态通过系统调用 System Call 访问内核代码。
在这里插入图片描述

RT-Thread Smart 的核心实现是 lwP,进程管理模块( rt-thread/components/lwp )。它包括了如下的几个部分:

  • 面向用户态的系统调用
  • 用户态进程管理
  • elf 可执行应用程序加载器
  • 基于 MMU 的虚拟内存管理,地址空间管理

入门体验

准备

  • 环境准备: ubuntu 20.04 (如果只有 windows 系统,建议使用 WSL 方式创建一个 linux 系统)
  • RT-Thread 源码下载
git clone  https://github.com/RT-Thread/rt-thread.git
  • Smart 的 userapps 下载
git clone https://github.com/RT-Thread/userapps.git
  • 安装编译工具
// 安装 xmake
sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake
// 安装 scons
sudo apt-get install scons

编译

进入 userapps, 配置环境变量

cd userapps
source env.sh

编译应用程序

cd apps
/ / 导出工具链
xmake f -a aarch64
// 编译用户态应用
xmake -j12

制作镜像

xmake smart-rootfs
xmake smart-image -o ../prebuilt/qemu-virt64-aarch64/ext4.img

编译内核

为了方便起见,我们采用 qemu-virt64-aarch64 为例构建内核镜像, 在编译内核之前,我们需要先安装 qemu 模拟器

sudo apt-get install -y libglib2.0-dev libpixman-1-dev
sudo dpkg -i ./qemu_7.1.0-2022111713_amd64.deb

进入 qemu-virt64-aarch64 , 打开 menuconfig

cd ./rt-thread/bsp/qemu-virt64-aarch64/
scons --menuconfig

// 如果遇到 Kconfig 文件有不识别的字符时, 可通过以下命令解决:
dos2unix `find -name Kconfig`

打开 menuconfig 后,使能 RT-Thread Smart
在这里插入图片描述
开始编译内核

scons -j12

最后江编译生成的 rtthread.bin 复制到 userapps\prebuilt\qemu-virt64-aarch64 目录即可
此时, 该目录下的文件及作用如下:

ext4.img            // 文件系统镜像文件, 之前制作镜像时,已将 userapps 下的应用程序 copy 到了文件系统的 `/bin` 目录下
rtthread.bin       // 内核镜像
run.sh               // 运行 QEMU 模拟器
run_debug.sh   // 调试 QEMU 模拟器

运行

运行 rt-smart 系统

./run.sh

在这里插入图片描述

在系统中运行应用程序

msh />/bin/hello
msh />hello world!
freertos,rt-smart与Linux三种操作系统对比 综上所述,选择操作系统取决于应用的需求和资源限制。如果需要实时性和低资源消耗,可以选择FreeRTOS或RT-Smart。如果需要更多功能和复杂性,并且有足够的硬件资源,可以考虑使用Linux。操作系统的选择应根据具体的项目要求和硬件平台来进行评估。之前有做过freertos移植到stm32和rtsmart,Linux移植到imx6ull上,但没有深入了解三者的区别,于是决定对比总结一下三者。 阅读详情

相关推荐

RT-Thread **标准版(Standard)** 和 **智能版(Smart)

1234这些宏被 libc 和内核共享,确保调用号一致。return 42;CPU 每次取指或访问内存时,都会通过 MMU 把虚拟地址转换为物理地址。你通过页表设置了这个映射,从而让 ELF 中的代码在用户虚拟地址空间“看起来可执行”,实际上只是映射到你加载的物理地址。是的,你说得完全正确。用户程序链接的“虚拟地址”是在用户空间看的地址,在加载阶段由 RT-Smart 通过页表映射到实际物理内存上,运行时 CPU 使用页表自动完成地址转换,无需用户介入。是的,

is0815的博客 1340

RT-Thread Smart 简介①开发工具

RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)。RT-Thread Smart 源码位于 rt-thread 仓库 的 rt-smart 分支上。下载 rt-thread 源码后,需要切换到 rt-smart 分支上使用。

华为奋斗者精神 2903

RT-Thread创始人新年寄语 开源如水、商业似船_rt-thread 开源似水

这个时候,异构系统普遍成为大家的共识,在一颗SoC中集成CPU,GPU,DSP,实时核,神经网络加速器,由它们分别来完成不同领域的事情。在应用程序生态上,RT-Thread Smart系统则提供了完善的用户态POSIX环境,让一些Linux/Unix开源程序更容易地、无缝地移植到RT-Thread Smart系统上,例如使用非常广泛的OpenSSL,FFmpeg多媒体框架,完整版的Python等,都可以在不修改代码的情况下,在RT-Thread Smart环境下重新编译一遍即可运行。

2401_87299955的博客 2220

[嵌入式系统-47]:RT-Thread -三种不同版本(Nano版本、标准版版本、Smart版本),展现了RTT三种不同的演化阶段,三种不同的应用场合

因此,随着时间的推移,嵌入式系统开始逐渐采用操作系统,如嵌入式 Linux、FreeRTOS、Micrium OS等,以提供更高级的抽象和功能,同时降低开发和维护的成本。用户程序在执行过程中如果需要操作系统的服务,就会触发从用户态到内核态的切换,以便访问操作系统提供的功能和资源。总的来说,RT-Thread Smart版本操作系统通过用户与内核的隔离和多进程间的隔离,提供了更加安全、稳定和灵活的系统架构,适用于对安全性和可维护性要求较高的应用场景。在早期,嵌入式系统通常是为了执行特定的任务而设计的,这些。

文火冰糖(王文兵)的博客 4531

RT-Thread Smart用户态开发:基于xmake的嵌入式高性能应用构建实践

在嵌入式系统开发中,从资源受限的单片机(MCU)迁移到带MMU的高性能处理器(如Cortex-A系列)时,开发模式往往面临分裂。传统上,内核驱动与用户态应用需使用不同的工具链,如Kbuild与复杂的Makefile或CMake,这增加了RTOS工程师的学习成本。其核心原理在于,高性能嵌入式开发需要兼顾实时性与丰富的应用生态,而POSIX API与标准C库的兼容性成为关键。xmake作为一种基于Lua的现代化构建工具,通过简洁的配置实现跨平台编译与依赖管理,其技术价值在于统一构建流程,提升开发效率。在RT-T

weixin_30800987的博客 478

BH1750光强度传感器Stm32f103驱动(已测试ok)

1. 实验:Stm32f103 驱动 bh1750采集光照强度,串口打印采集到的数据。 2. 实验准备器材 开发版:stm32f103c8t6 器件:bh1750 GY-302 开发环境:win10,KILE4 下载程序的软件:FlyMcu.exe 串口调试助手:ComAssistant.exe 3. BH1750 的接线 VCC:5V或3.3V ...

weixin_53329977的博客 8928

如何使用 VSCode 开发 RT-Thread Smart 应用程序

简介RT-Thread Smart做为一个“新”的系统,在开发上相比原来的RT-Thread模式还是存在着挺大的不同。原来的RT-Thread开发,是把相关的应用都写入到内核中,最终编译在...

rtthreadiotos的博客 2913

测试用例经典练习之微信发红包测试用例

微信发红包测试用例

ZCYaiCLX3344的博客 1万+

丝滑的在RT-Smart用户态运行LVGL

开发流程1、RT-Smart 环境搭建下载 RT-Smart 用户态应用代码:1gitclonehttps://github.com/RT-Thread/userapps.git进入到 userapps 目录,克隆 RT-Thread rt-smart 分支1gitclone-brt-smarthttps://gitee.com/rtthread/rt-thread.git更详细环境配...

rtthreadiotos的博客 1935

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

本文详细介绍了如何在Xilinx Zynq UltraScale+ MPSoC平台上使用AXI DataMover实现高效的DMA数据传输。通过解析AXI DataMover架构、Vivado工程配置、Vitis HLS驱动开发及性能优化技巧,帮助开发者快速构建高性能数据传输通道,并提供了可直接复用的代码示例。

weixin_42520796的博客 424

win10离线安装.NetFrameWork3.5出现0x800F081F解决办法。

由于公司开发环境是内网,并且安装arcgis10.2又需要.NetFrameWork3.5的环境,安装.NetFrameWork3.5的又总是报错“0x800F081F”找不到源文件。折腾了两天总算解决了。 首先我们能在网上搜索到的教程,你一定看到过这样的教程,就是使用下面的命令来进行安装。 dism /online /Enable-Feature /Featu...

AIGIS的博客 1万+

RT-Thread Smart上手指南~

RT-Thread Smart(简称rt-smart)是基于RT-Thread操作系统衍生的新分支,面向带MMU,中高端应用的芯片,例如ARM Cortex-A系列芯片,MIPS芯片,带...

2404

从Oracle迁移数据到Hadoop

目标:把Oracle 下的数据文件迁移到 Hadoop , 数据表都是上亿条,每个数据表的空间都超过100G。 关键是建立数据文件是UTF8格式,这样数据中的汉字在Hadoop 里显示才正常。 平台:CentOS 6.10 工具:Python 2.7 cx_Oracle 库 Oracle10.2.0.4.0 Hadoop 2.7.2-transwarp-5.2.1 1. 查看表...

预则立 4233

RT-Thread Smart 上手指南

RT-Thread Smart(简称rt-smart)是基于RT-Thread操作系统衍生的新分支,面向带MMU,中高端应用的芯片,例如ARM Cortex-A系列芯片,MIPS芯片,带...

FILLMOREad的博客 2万+

Matlab实现雷达波位编排

1 简介 %本程序用于雷达球坐标系到正弦空间坐标系的转换,以及相控阵雷达的波位编排。 2 完整代码 ​%070228添加波位数据保存clear allclose allclc%波束宽度,单位:度BeamWidth = 3.6;theta05 = round(sin(BeamWidth*pi/180)*1000)/1000;%雷达作用空域AZ = [-15 15]; %方位角范围(雷达球坐标系),单位:度EL = [0 30]; %俯仰角范围(雷

qq_59747472的博客 2479

YOLOv13改进:卷积魔改 | 动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点

如何跟YOLOv13结合:替代YOLOv13的DS-C3K2

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 364

RT-Thread Smart启航新征程

RT-Thread Smart(简称rt-smart)作为RT-Thread分支(分支名称rt-smart)终于开源出来了,许可协议依然和原来的一致,采用的Apache License ...

rtthreadiotos的博客 1412

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RT-Thread Smart架构分析

有幸从成为熊大RT-Smart的首批体验客户,拿到代码和开发板,玩儿了一下。感觉RT-Smart野心不小,延续了rt-thread小而美的特质,smart支持内核态和用户态分层,并且支持用户态地址空间互相隔离,这使得RTT可以支持的方案容量大大增加,从小型算力系统比如MCU到Cortex-A系列的富算力系统,都能够很好支持,优秀,点赞. 大概分析了一下设计架构,不包含细节: 用户态运行时构成: 比如cxx_crt.cpp文件的内容如下: 后续仔细阅读一遍代码,在写一些细节实现机制。

tugouxp的专栏 1967

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

RT-Thread Smart正式上线:源代码已开放下载

关注+星标公众号,不错过精彩内容转自|RT-Thread官方消息,RT-Thread Smart已正式上线,目前源代码可在Github、Gitee下载,采用Apache Licens...

strongerHuang 1264

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

当“树莓派”遇上RT-Thread Smart——应用编程入门

我们从现在开始会逐步连载RT-Thread Smart(简称rt-smart,甚至有时会称为smart os)的介绍文章,旨在让大家认识,接触到smart os的方方面面。这个是本系列的第...

rtthreadiotos的博客 1800

【快问快答】RT-Thread Smart与Linux、RT-Thread有哪些区别?

RT-Thread Smart 定位于成为一个专业的面向实时应用场合的高性能混合微内核操作系统。填补传统 RTOS 和大型操作系统 Linux 之间的空白,在实时性、成本、安全性、启动速...

FILLMOREad的博客 3545

RT-Thread各版本简介及架构介绍

架构:RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。架构:支持架构:ARM:Cortex M0/ M3/ M4/ M7 等、RISC-V 及其他。功能:线程管理、线程间同步与通信、时钟管理、中

小超嵌入式笔记 7031

优雅的在D1S上运行RT-Smart

前言最近在学习 RT-Smart ,正巧有在全志开发者论坛看到这么一篇帖子【惊】在麻雀上运行国产rt-smart系统,看到很多人都在关注 D1S 在 Smart 上的运行情况。如今该 BSP 已经合并到 RT-Smart 主仓库,于是我来展示一下 D1S 运行 RT-Smart 的步骤,供大家参考~做嵌入式开发的人对 RT-Thread 操作系统平台应该都是非常熟悉的,而 RT-Thread Sm...

rtthreadiotos的博客 1641

使用xmake构建RT-Thread Smart用户态应用:从环境配置到工程实践

在嵌入式系统开发中,构建工具的选择直接影响开发效率和项目维护性。构建系统作为软件开发的基石,负责管理编译、链接和依赖关系,其设计理念从传统的Makefile发展到现代的声明式配置。xmake作为一种基于Lua的现代化构建工具,通过简洁的脚本语言描述构建过程,提供了跨平台支持和灵活的扩展能力,显著降低了嵌入式开发的配置复杂度。在RT-Thread Smart微内核操作系统的用户态应用开发场景中,开发者常面临交叉编译环境配置繁琐、链接脚本适配困难等挑战。通过xmake的交叉编译工具链配置、依赖管理以及自动化构建

weixin_30394669的博客 495
上一篇: Object.defineProperty和Proxy
ErikChan.hk
博客等级 码龄12年 107粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值