Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
2.0.0 alpha 版中的 VMM
发布于 2014-04-08 18:07:18 浏览:4062
订阅该版
RT-Thread 2.0 [topic3483.html](https://club.rt-thread.org/ask/question/3483.html) 中的一个重要的组件是之前在开发者大会上介绍过的 VMM(Virtual Machine Module)。它可以让 RT-Thread 同时运行在一个 CPU 上。同时,RT-Thread 接管中断,Linux 作为优先级最低的任务运行。Linux 内部只会关闭虚拟中断,不会关闭硬件中断,所以极大的增强了系统的实时性。 在第一个 alpha 预览版中,就已经包含了 demo 代码。暂时只支持 Linux 3.8 系列的内核。内核补丁在 components/vmm/linux_patch-v3.8/ 目录下,可以直接用 `git am *.patch` 来打补丁。然后配置内核: ![config.png](/uploads/3646_bf7bb2988810c8085f9497beff9f4e78.png) Linux 需要 rootfs 才能够启动,一个比较简单的方法是使用 buildroot。关于 buildroot 的使用在这里就不详细解释了。 然后像其他 bsp 一样编译 realview-a8。然后在 buildroot 的 output/target 目录下建立一个 vmm 目录,把 bsp 中生成的 rtthread.bin 复制进去。同时编译 bsp/realview-a8/linux_vmm/ 内核模块用于加载 RT-Thread,并且把模块复制进 output/target 的 root 用户目录。然后重新生成 rootfs 镜像。bsp/realview-a8 中有一个帮助脚本 mk.sh 可以自动完成上述操作。也可以下载网盘 ( [http://pan.baidu.com/s/1jG9MZ2m#dir/pat ... 2014-04-08](https://club.rt-thread.org/ask/question/3483.html) ) 中的二进制文件。 准备好之后给 qemu 指定好 kernel 和 initrd 启动就好~需要注意的是系统中需要两个串口,所以需要给 qemu 传递两个 -serial 参数。Linux 启动之后需要加载 rtvmm.ko 模块来启动 RT-Thread: ![vmm1.png](/uploads/3646_69a942074e8d67a7aaca349a60d08482.png) 上图是把第二个串口,也就是 RT-Thread 用到的串口重定向到 stdio,Linux 用第一个串口,可以看到,两个系统已经同时运行了。
查看更多
9
个回答
默认排序
按发布时间排序
jeffwei
2014-04-08
这家伙很懒,什么也没写!
很是期待,不过目前不是很明白linux怎么和RTT之间怎么传输数据之类,等下半年有时间再好好看看代码吧
geniusgogo
认证专家
2014-04-09
这家伙很懒,什么也没写!
>Linux 启动之后需要加载 rtvmm.ko 模块来启动 RT-Thread --- 这个原理不明白,linux启动之后再加载RT-Thread,那又是如何让RT-Thread来控制所有的硬件中断,并将Linux此时作为一个最低优先级的任务来运行的? [s:179] 好想知道啊!
jeffwei
2014-04-09
这家伙很懒,什么也没写!
估计这就是2个系统之间的交互了,即linux内核通过rtvmm.ko 模块来和RTT交互
weety
2014-04-09
这家伙很懒,什么也没写!
能否先启动RT-Thread,然后再启动linux,这样系统启动也更快些,RT-Thread可以先启动干活了。
bernard
2014-04-10
这家伙很懒,什么也没写!
>能否先启动RT-Thread,然后再启动linux,这样系统启动也更快些,RT-Thread可以先启动干活了。 --- 是的,这是一个非常值得探讨的话题。
grissiom
2014-04-10
这家伙很懒,什么也没写!
>>Linux 启动之后需要加载 rtvmm.ko 模块来启动 RT-Thread > >--- > > >这个原理不明白,linux启动之后再加载RT-Thread,那又是如何让RT-Thread来控制所有的硬件中断,并将Linux此时作为一个最低优先级的任务来运行的? [s:179] 好想知道啊! --- 嗯,有些东西是动态切换的 [s:154]
ljt8015
2014-04-14
这家伙很懒,什么也没写!
RT-Thread 相当于 linux的一个实时内核补丁,是这意思吧?
grissiom
2014-04-14
这家伙很懒,什么也没写!
应该也不算是实时补丁,因为他并不是为了要增强 Linux 的实时性。而是通过让两个系统并存,使得 RT-Thread 能够处理实时任务的同时,Linux 也能够工作。
撰写答案
登录
注册新账号
关注者
0
被浏览
4.1k
关于作者
grissiom
这家伙很懒,什么也没写!
提问
19
回答
819
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【NXP-MCXA153】 定时器驱动移植
2
GD32F450 看门狗驱动适配
3
【NXP-MCXA153】看门狗驱动移植
4
RT-Thread Studio V2.2.9 Release Note
5
CherryUSB的bootuf2配置
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
18
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
9
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部