0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过 vmRT-Thread 和共享显示支持汽车座舱开发 | 前沿观点

RT-Thread官方账号 2025-07-09 19:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式虚拟化环境中,显示模块往往是抢手而又珍贵的资源,也因此SoC 厂商往往为了性能和成本,显示器模块很少会实现成可硬件分区的方式,而虚拟机往往需要多个显示功能以应对不同专业的场景,同时还要面临以下技术问题:


性能,常见的纯软件手段需要CPU 做数据复制,这会导致性能大打折扣,同时还影响图形服务的启动速度;

隔离,比如类似AMP 硬分区部署场景,如果其中一个虚拟机因为发生故障需要下线或者重启,这时候可能会由于硬件无法彻底硬分区而导致虚拟机重启阶段重新初始化硬件,影响其他虚拟机使用的设备。

适配,当遇到不同的OS,以及不同类型的驱动时不容易适配,这会导致需要花大量时间进行方案适配,同时如果虚拟机部署场景发生改变,可能需要重新进行适配,导致产品落地时间延长。

为了解决这些问题,本文将介绍一种基于虚拟机通信(IVC)的显示共享技术,其架构如下图所示:


4910d1cc-5cb4-11f0-9cf1-92fbcf53809c.png

架构图


在vmRT-Thread 中,Driver OS 控制实际的物理显示设备,并提供共享显示服务,通过 IVC 与普通虚拟机共享显示设备,由于 IVC Manager 可支持共享内存方式 + 内存虚拟化技术,在共享显示的前后端驱动中,CPU 几乎可以不参与拷贝工作。


在这种架构下,Driver OS 作为特权虚拟机,其他虚拟机作为非特权虚拟机,尤其是偏提供娱乐、多媒体的虚拟机中容易发生故障而导致重启,共享显示架构还支持虚拟机下线、重新上线检测,以保证Driver OS 与发生故障的虚拟机通信时不会导致崩溃,同时故障虚拟机重启后,可继续使用共享显示服务。


普通虚拟机可基于共享显示驱动,直接将共享的显示设备(显示区域)作为独立显示器使用。当然,普通虚拟机需要使用vmRT-Thread 支持的共享显示驱动,如 RT-Thread 提供 Framebuffer 版本驱动,Linux 提供 Framebuffer/DRM,Android 额外提供的 HWC,Gralloc 驱动。而这些驱动只要对应内核版本,API 版本兼容,可以在不同 BSP 下直接使用,虚拟机/产品无需关心 SoC 的物理显示信息。


涉及到人机交互场景,虚拟机需要额外使用半虚拟化输入驱动,本文不涉及。


49245db4-5cb4-11f0-9cf1-92fbcf53809c.png

原理图


在Driver OS 启动后,会立即启动共享显示服务,在初始化的过程中,将平台的图层根据配置与 IVC 显存进行映射,初始化图层后等待显示客户端接入。


显示客户端OS 启动时,用户可选择使用加载共享显示 FB 驱动或者 DRM 驱动,共享显示驱动使用 IVC 请求共享显示服务,多次请求后,完成显示模块的信息获取:长、宽、颜色格式,显存行长度,双缓冲支持等。共享显示驱动获取完显示信息后,将根据用户加载的驱动版本注册 DRM 或者 FB 设备,共享显示驱动采用标准 DRM/FB 驱动开发方式实现,不需要针对平台进行重新适配。


当显示客户端显示应用请求显示功能时,操作系统图形栈将用户绘制结果提交至前台,前台通过DRM/FB 编程接口提交刷新请求到共享显示驱动,共享显示驱动再通过 IVC 请求共享显示服务刷新图层,再由共享显示服务提交绘制结果至物理设备。在上述的请求路径中,共享显示驱动通过图层限制管理,使图形栈和显示应用始终认为共享内存就是具体的显存,也就是:


共享显示驱动与IVC 共享内存——IVC 共享内存与共享显示服务——共享显示服务与平台图形驱动框架访问的显存


都是同一块物理显存,因此除图形栈自身图像软件合成外,CPU 不用额外参与拷贝工作。


共享显示服务始终等待显示客户端

IVC 请求,由于 IVC 采用阻塞等待机制,对显示客户端不存在依赖,当显示客户端下线或者突然崩溃时无法继续请求显示服务时,共享显示服务不会处理任何通知,始终认为显示客户端处于没有提交请求的状态。当显示客户端重启后,会重新建立 IVC 通信,可重新通过 IVC 请求获取显示信息并继续工作。

vmRT-Thread 平台采用配置工具对共享显示进行部署:


虚拟化系统部署


在SoC 平台上部署 vmRT-Thread;创建一个 Driver OS 以及一到两个普通虚拟机,同时要配置好硬件分区,IVC 通道。


由于IVC 以及共享显示模块挂载于 PCI Bus,仅需要对虚拟机设备树导入 PCI 控制器节点:


49344846-5cb4-11f0-9cf1-92fbcf53809c.png49473cda-5cb4-11f0-9cf1-92fbcf53809c.png


Driver OS 部署

在Driver OS 构建工具中,启用共享显示服务,并配置显示器(显示区域)分区,绑定与显示分区的 IVC 通道。


Android 部署

在AOSP 工程中,启用 Kernel 共享显示内核模块,IVC 驱动内核模块,并启用共享显示 HWC2、Gralloc4 模块。


RT-Thread 部署(可选)

在RT-Thread 工程中以及 vmRT-Thread Guest 配置中,启用共享显示和 IVC 驱动组件,并部署好 LVGL 或 Qt 工程。


示例1

在某些场景中,Driver OS 也可以直接担任显示功能的虚拟机,同时 Android 使用另外一个显示器:


4957c9ce-5cb4-11f0-9cf1-92fbcf53809c.png


此时Driver OS 独占一个物理显示模块,如果需要在此场景进行分区显示,需要使用 GPU 虚拟化模块,本文不涉及。


4966cf3c-5cb4-11f0-9cf1-92fbcf53809c.png

效果图

1


Driver OS 启动后会立即开启共享显示服务、显示功能用例;Android (未专门定制的情况下)启动时间会较长。


示例2

Driver OS 不使用屏幕,仅共享显示器给虚拟机,Android 使用共享显示模块独占一个显示器:


498246b8-5cb4-11f0-9cf1-92fbcf53809c.png


4995e056-5cb4-11f0-9cf1-92fbcf53809c.png

效果图2


示例3

Driver OS 不使用屏幕,仅共享显示器给虚拟机,RT-Thread 占用一个显示器,Android 占用一个显示器:


49b4309c-5cb4-11f0-9cf1-92fbcf53809c.png49c31abc-5cb4-11f0-9cf1-92fbcf53809c.png

效果图3


示例4

在一个屏幕上,RT-Thread 和 Buildroot Linux 进行显示分区:


49e2206a-5cb4-11f0-9cf1-92fbcf53809c.png49f521f6-5cb4-11f0-9cf1-92fbcf53809c.png

效果图4


该方法基于共享显示的嵌入式虚拟化解决方案,通过将硬件资源访问虚拟化,使虚拟机只需通过增加设备驱动的方式访问显示设备,而后端驱动虚拟机通过平台显示驱动+ 虚拟化扩展服务,实现了更可控,更高性能的显示分区,为车载、工业混合部署等多种显示功能的场景提供新的解决方案。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 座舱
    +关注

    关注

    0

    文章

    34

    浏览量

    7993
  • VM
    VM
    +关注

    关注

    0

    文章

    19

    浏览量

    17834
  • RT-Thread
    +关注

    关注

    32

    文章

    1444

    浏览量

    42370
  • 汽车
    +关注

    关注

    15

    文章

    3914

    浏览量

    39807
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    通过vmRT-Thread和vSOME/IP支持车载SOA开发 | 前沿观点

    随着智能网联汽车的发展,电子电气架构正从传统的分布式架构向域集中甚至中央集中式架构演进。在这一趋势下,多个原本部署在独立ECU上的功能逐步整合至同一计算平台,集中式架构当前面临以下需求
    的头像 发表于 07-08 09:46 1567次阅读
    <b class='flag-5'>通过</b><b class='flag-5'>vmRT-Thread</b>和vSOME/IP<b class='flag-5'>支持</b>车载SOA<b class='flag-5'>开发</b> | <b class='flag-5'>前沿</b><b class='flag-5'>观点</b>

    【润和软件DAYU200开发板体验】DAYU200开发板搭建智能座舱开发

    。Linux 易于剪裁开发, 大众 VW.OS 和特斯拉 Version 均基于 Linux,特斯拉 Version 也直接支持使用 Linux 运行仪表软件,但 Linux 生态较弱。鸿蒙 OS 采用微内核
    发表于 11-06 19:43

    便于汽车座舱舒适的舱内声音增强(CSE)系统

    随着司机在汽车上花费的时间越来越多,制造商正在努力确保汽车座舱尽可能地舒适。越来越多的购车者将噪音视为选购汽车的决定性因素之一。大多数汽车座舱噪声,如道路噪音、风噪声和卡嗒卡嗒的内饰都
    发表于 04-26 15:23 3893次阅读
    便于<b class='flag-5'>汽车座舱</b>舒适的舱内声音增强(CSE)系统

    伟世通预计2018年推出首款汽车座舱主机控制系统SmartCore

    展示了其SmartCore主机控制系统,该系统整合了汽车座舱之前采用的独立仪表盘、抬头显示器以及高级驾驶员辅助系统,将其集成在单芯多域控制系统中,用户可以通过一套易于操作的人机交互系统进行访问。
    的头像 发表于 04-12 09:11 6330次阅读

    汽车座舱的多屏设计的机遇与挑战

    触控屏走进汽车座舱并不是新鲜事,但是像Model 3这样将触摸屏用得如此极致,还是很有颠覆性的,从中我们也可以洞察出一个大趋势:触控屏正在成为车载HMI的主旋律,未来将有更大
    的头像 发表于 08-24 14:12 3903次阅读

    2020年汽车座舱SoC技术与应用研究报告

    佐思汽研发布《2020年汽车座舱SoC技术与应用研究报告》。 我们知道,智能汽车E/E架构发展趋势是从分布式阶段演进到域内集中阶段,跨域集中阶段和中央计算机阶段。对于多数厂家而言,当前正处于域内集中
    的头像 发表于 09-23 11:59 4425次阅读

    汽车座舱声音增强系统如何工作?

    汽车座舱声音增强系统如何工作?
    发表于 11-02 08:16 0次下载
    <b class='flag-5'>汽车座舱</b>声音增强系统如何工作?

    汽车座舱声音增强系统如何工作

    大多数汽车座舱噪声,如道路噪音、风噪声和卡嗒卡嗒的内饰都是司机不愿听到的 – 这些噪音会干扰司机,降低司机的心理处理能力,并可能导致分心和压力。因此,汽车制造商以溢价出售他们最安静的汽车
    的头像 发表于 04-10 10:13 1307次阅读
    <b class='flag-5'>汽车座舱</b>声音增强系统如何工作

    笔记|儿童级汽车座舱测试方法标准

    绿色安全儿童级汽车座舱需要通过系列标准测试,涉及防霉试验、环境可靠性、VOCs挥发性物质测定、重金属含量测定、金属材料硬度测试、塑料表面抗菌性能试验、汽车禁用物质含量测试等系列管控要求。这是
    的头像 发表于 07-05 10:05 968次阅读
    笔记|儿童级<b class='flag-5'>汽车座舱</b>测试方法标准

    天马牵头汽车座舱液晶显示模块标准获立项

    在科技日新月异的今天,汽车产业正经历着前所未有的变革,智能化、网联化趋势日益显著。作为这一变革中的重要一环,汽车座舱液晶显示模块的技术进步与标准化建设显得尤为重要。近日,由行业领军企业天马微电子
    的头像 发表于 07-03 15:32 1079次阅读

    天马牵头《汽车座舱液晶显示模块》标准获立项

    方法、检验规则以及标志、包装、运输和贮存要求。该标准将填补我国汽车座舱液晶显示领域标准空白,天马也将持续发挥在车载显示行业的领头作用,为汽车产业高质量发展提供有力的技术
    的头像 发表于 08-19 11:07 985次阅读

    聚焦汽车座舱车载屏幕测试

    本文关注汽车座舱车载屏幕测试,着重探讨其性能优劣对用户体验及行车安全的影响。测试包括亮度、对比度、色彩准确性、可视角度、触控性能和可靠性测试等多方面,旨在为相关研发工作提供参考。测试结果应与行业标准进行对比,以确保屏幕的性能表现和均匀性。
    的头像 发表于 04-18 17:12 486次阅读

    诚迈科技旗下智达诚远推出基于开源鸿蒙的国产汽车座舱系统——鸿志汽车座舱系统

    汽车产业智能化变革的关键阶段,中国科技企业正以自主创新重塑全球产业格局。诚迈科技汽车子公司智达诚远宣布推出鸿志汽车座舱系统,为“软件定义汽车”时代提供基于开源鸿蒙的国产
    的头像 发表于 04-21 20:41 736次阅读
    诚迈科技旗下智达诚远推出基于开源鸿蒙的国产<b class='flag-5'>汽车座舱</b>系统——鸿志<b class='flag-5'>汽车座舱</b>系统

    通过vmRT-Thread和VirtIO-SCMI攻克硬件分割依赖难点 | 前沿观点

    和可扩展性受限。同时,硬件资源的共享访问可能导致资源竞争和冲突,进而影响系统的稳定性和安全性。特别是在安全关键的应用场景(如汽车电子、工业控制等)中,这种问题尤为突
    的头像 发表于 06-24 19:38 461次阅读
    <b class='flag-5'>通过</b><b class='flag-5'>vmRT-Thread</b>和VirtIO-SCMI攻克硬件分割依赖难点 | <b class='flag-5'>前沿</b><b class='flag-5'>观点</b>

    暑期共学邀约:与李老师共赴汽车座舱管理系统进阶之旅

    1.前沿实战,开启汽车座舱新征程今年的暑假班中,李老师会以全程实例项目讲解的方式,为我们铺开了一条从电路设计、原理图设计、PCB设计,再到信号仿真互连优化的完整知识链路。点击图片,查看课程详情!今年
    的头像 发表于 07-04 13:34 228次阅读
    暑期共学邀约:与李老师共赴<b class='flag-5'>汽车座舱</b>管理系统进阶之旅