一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過vmRT-Thread和VirtIO-SCMI攻克硬件分割依賴難點(diǎn) | 前沿觀點(diǎn)

RT-Thread官方賬號(hào) ? 2025-06-24 19:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

硬件分割依賴難點(diǎn)是現(xiàn)代嵌入式系統(tǒng)物聯(lián)網(wǎng)設(shè)備開發(fā)中常見的問題。在多任務(wù)或多應(yīng)用的系統(tǒng)中,不同任務(wù)或應(yīng)用需要訪問不同的硬件資源,傳統(tǒng)的系統(tǒng)設(shè)計(jì)中,硬件資源的分配往往與軟件緊密耦合,導(dǎo)致軟件的可移植性和可擴(kuò)展性受限。同時(shí),硬件資源的共享訪問可能導(dǎo)致資源競爭和沖突,進(jìn)而影響系統(tǒng)的穩(wěn)定性和安全性。特別是在安全關(guān)鍵的應(yīng)用場景(如汽車電子、工業(yè)控制等)中,這種問題尤為突出。


RT-Thread睿賽德通過vmRT-Thread和VirtIO-SCMI的方式,提供一種攻克硬件分割依賴難點(diǎn)的思路,希望對大家有所幫助,也歡迎大家在留言中或者掃碼小睿助手繼續(xù)交流。


嵌入式虛擬化環(huán)境中,外設(shè)硬分割(Partition/Passthrough)是充分發(fā)揮虛擬化硬件性能的重要手段。然而早期實(shí)現(xiàn)中,操作系統(tǒng)存在以下難題:

驅(qū)動(dòng)需求繁復(fù):虛擬機(jī)操作系統(tǒng)本身需要移植大量驅(qū)動(dòng),此類驅(qū)動(dòng)本身較復(fù)雜。

虛擬機(jī)行為不可控:存在多個(gè)虛擬機(jī)依賴同一個(gè)外設(shè)的情況,由于無法保證多個(gè)虛擬機(jī)并發(fā)訪問同一個(gè)物理資源為原子操作,行為不可控易導(dǎo)致不安全。

耦合嚴(yán)重且缺乏標(biāo)準(zhǔn):可移植性差,固件更新困難;多操作系統(tǒng)(OS)/虛擬化下資源控制混亂,無法實(shí)現(xiàn)高級功耗與性能策略協(xié)同。


為解決上述問題,本文將介紹一種基于SCMI協(xié)議實(shí)現(xiàn)的依賴資源共享的虛擬化框架(VirtIO-SCMI),其架構(gòu)如下圖所示:

bac9b5e8-50ef-11f0-986f-92fbcf53809c.png

在vmRT-Thread中,普通虛擬機(jī)作為VirtIO-SCMI前端,僅轉(zhuǎn)發(fā)硬件操作請求;驅(qū)動(dòng)虛擬機(jī)作為后端,解析請求并校驗(yàn)權(quán)限后,通過procfs/ioctl操作真實(shí)硬件,兩者均通過VirtIO通道通信。

同時(shí),VirtIO-SCMI目前存在部分限制與要求:前端虛擬機(jī)需要選擇合適的內(nèi)核版本,后端虛擬機(jī)需要提供操作真實(shí)的硬件的procfs或者ioctl接口,并確保并發(fā)訪問的原子性。

基于上述情況,vmRT-Thread可進(jìn)行如下具體操作:

示例1

將VirtIO-SCMI前端虛擬機(jī)中某個(gè)uart中的clk,reset,pinctrl替換為VirtIO-SCMI。

大致步驟如下:

  1. VirtIO-SCMI前端虛擬機(jī)需要修改設(shè)備樹:
  • 首先需要增加scmi的clk,reset,pinctrl的子協(xié)議設(shè)備樹節(jié)點(diǎn)

firmware {scmi {compatible ="arm,scmi-virtio";#address-cells = <0x01>;#size-cells = <0x00>;scmi_clk: protocol@14 {reg = <0x14>;#clock-cells = <1>;};scmi_reset: protocol@16 {reg = <0x16>;#reset-cells = <1>;};scmi_pinctrl: protocol@19 {reg = <0x19>;uartA_0_pins: uartA_pins@0 {groups ="X","Y";function ="1_uartA";bias-pull-up;drive-strength = <10>;};uartB_1_pins: uartB_pins@1 {groups ="M","N";function ="1_gpio_in";};};};};

  • 然后對應(yīng)串口的設(shè)備樹節(jié)點(diǎn),需要引用scmi的clk,reset,pinctrl的子協(xié)議設(shè)備樹節(jié)點(diǎn),其中clk,reset還需要通過參數(shù)來提供索引號(hào)。

uart@xxxxxx {clocks = <&scmi_clk U>;resets = <&scmi_reset V>;pinctrl-0 = <&uartA_0_pins>;pinctrl-1 = <&uartB_1_pins>;status ="okay";};

  1. VirtIO-SCMI后端虛擬機(jī)需要修改VirtIO-SCMI Backend Service的配置文件,配置文件主要包含硬件的描述信息,索引關(guān)系,以及權(quán)限等等。
  2. VirtIO-SCMI后端虛擬機(jī)啟動(dòng)VirtIO-SCMI Backend Service,然后再啟動(dòng)VirtIO-SCMI前端虛擬機(jī),可以看到VirtIO-SCMI前端虛擬機(jī)的串口可以正常工作。

示例2

將VirtIO-SCMI前端虛擬機(jī)中某些CPU的頻率替換為VirtIO-SCMI。

大致步驟如下:

  1. VirtIO-SCMI前端虛擬機(jī)需要修改設(shè)備樹:
  • 首先需要增加scmi的perf的子協(xié)議設(shè)備樹節(jié)點(diǎn)

firmware {scmi {compatible ="arm,scmi-virtio";#address-cells = <0x01>;#size-cells = <0x00>;scmi_perf: protocol@13 {reg = <0x13>;phandle = <0x04>;};};};

  • 然后對應(yīng)CPU的設(shè)備樹節(jié)點(diǎn)中的頻率屬性需要引用scmiperf子協(xié)議設(shè)備樹節(jié)點(diǎn),同時(shí)還需要通過參數(shù)來提供索引號(hào)。

cpus {cpu@0 {clocks = <&scmi_perf C>;};};

  1. VirtIO-SCMI后端虛擬機(jī)需要VirtIO-SCMI Backend Service的配置文件,配置文件主要包含硬件的描述信息,索引關(guān)系,以及權(quán)限等等。
  2. VirtIO-SCMI后端虛擬機(jī)啟動(dòng)VirtIO-SCMI Backend Service,然后再啟動(dòng)VirtIO-SCMI前端虛擬機(jī)。
  3. VirtIO-SCMI前端虛擬機(jī)首先配置CPU0頻率為固定頻率408MHZ,然后通過coremak測試跑分效果;然后再配置CPU0頻率為固定頻率2.4GHZ,然后通過coremak測試跑分效果;進(jìn)行對比,對比之后可以看到CPU固定頻率提升之后,跑分測試分?jǐn)?shù)從3011.594639提升到17049.329393,符合預(yù)期。
baea8a98-50ef-11f0-986f-92fbcf53809c.png

效果圖1

bb107316-50ef-11f0-986f-92fbcf53809c.png

效果圖2

該方法基于VirtIO-SCMI的嵌入式虛擬化解決方案,通過將硬件資源訪問虛擬化,使前端虛擬機(jī)只需通過VirtIO-SCMI協(xié)議轉(zhuǎn)發(fā)請求,而后端驅(qū)動(dòng)虛擬機(jī)通過procfs/ioctl統(tǒng)一處理真實(shí)硬件操作,既實(shí)現(xiàn)了多虛擬機(jī)間的資源隔離與安全管控,又避免了重復(fù)移植clock/power等驅(qū)動(dòng),為車載、物聯(lián)網(wǎng)等需要嚴(yán)格外設(shè)隔離的場景提供新路徑。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3672

    瀏覽量

    131126
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3473

    瀏覽量

    67332
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1385

    瀏覽量

    41671
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    凡億Allegro Skill布線功能-檢查跨分割

    能會(huì)導(dǎo)致設(shè)計(jì)中的缺陷和問題。為了克服這一挑戰(zhàn),可以利用凡億skill中的“檢查跨分割”命令。這個(gè)工具能夠幫助設(shè)計(jì)者快速而準(zhǔn)確地識(shí)別出高速信號(hào)參考平面的跨分割問題,從而避免了人工檢查時(shí)可能出現(xiàn)的疏漏。通過使用這種自動(dòng)化
    的頭像 發(fā)表于 06-19 11:50 ?534次閱讀
    凡億Allegro Skill布線功能-檢查跨<b class='flag-5'>分割</b>

    通過vmRT-Thread和ROS2賦能機(jī)器人智能開發(fā)

    隨著機(jī)器人技術(shù)的快速迭代升級,協(xié)作機(jī)器人、復(fù)合移動(dòng)機(jī)器人和人形機(jī)器人等新興應(yīng)用場景對實(shí)時(shí)控制與智能決策的深度融合提出了迫切需求。然而,當(dāng)前機(jī)器人操作系統(tǒng)架構(gòu)面臨以下關(guān)鍵挑戰(zhàn):算力瓶頸制約智能化發(fā)展:傳統(tǒng)控制系統(tǒng)算力不足,難以有效支撐語音識(shí)別、手勢交互、動(dòng)態(tài)避障、力控優(yōu)化、地圖構(gòu)建、位姿計(jì)算等智能化需求。系統(tǒng)集成復(fù)雜度高:傳統(tǒng)方案采用多主機(jī)分布式架構(gòu),導(dǎo)致系統(tǒng)
    的頭像 發(fā)表于 06-09 09:23 ?734次閱讀
    <b class='flag-5'>通過</b><b class='flag-5'>vmRT-Thread</b>和ROS2賦能機(jī)器人智能開發(fā)

    Thread認(rèn)證

    Thread是一種基于IPv6標(biāo)準(zhǔn)的mesh網(wǎng)絡(luò)協(xié)議,沒有單點(diǎn)故障。Thread的目標(biāo)是通過可靠、安全、可擴(kuò)展的方式來連接低功耗設(shè)備。和互聯(lián)網(wǎng)一樣,Thread運(yùn)行在互聯(lián)網(wǎng)協(xié)議(IP)
    發(fā)表于 05-27 22:50

    RT-Thread睿賽德亮相深圳機(jī)器人產(chǎn)業(yè)大會(huì),聚焦機(jī)器人軟件系統(tǒng)技術(shù)前沿 | 新聞速遞

    近日,由開源中國社區(qū)主辦的"未來智造:機(jī)器人軟件系統(tǒng)技術(shù)前沿"源創(chuàng)會(huì)在深圳會(huì)展中心成功舉辦。會(huì)議聚焦機(jī)器人軟件系統(tǒng)前沿技術(shù),吸引了150余位行業(yè)專家與技術(shù)開發(fā)者參與交流
    的頭像 發(fā)表于 05-20 18:15 ?373次閱讀
    RT-<b class='flag-5'>Thread</b>睿賽德亮相深圳機(jī)器人產(chǎn)業(yè)大會(huì),聚焦機(jī)器人軟件系統(tǒng)技術(shù)<b class='flag-5'>前沿</b> | 新聞速遞

    通過vmRT-Thread和MCP賦能具身智能開發(fā)

    ,而運(yùn)動(dòng)控制仍依賴分離式MCU,通信鏈路長、時(shí)延大。通信方式低效:傳統(tǒng)使用串口、網(wǎng)絡(luò)Socket或CAN等方式連接Linux與MCU,不僅通信開銷大,且存在不穩(wěn)定
    的頭像 發(fā)表于 05-09 12:05 ?378次閱讀
    <b class='flag-5'>通過</b><b class='flag-5'>vmRT-Thread</b>和MCP賦能具身智能開發(fā)

    2024年Thread的重要亮點(diǎn)

    Thread Group近期通過本篇博文來總結(jié)2024年取得的驚人進(jìn)步和成就。目前,Thread會(huì)員基礎(chǔ)已近 200 家公司,從去年1月份參加CES 2024,到7月份慶祝成立 10 周年,再到
    的頭像 發(fā)表于 01-14 09:30 ?621次閱讀

    eBPF技術(shù)實(shí)踐之virtio-net網(wǎng)卡隊(duì)列可觀測

    在系統(tǒng)領(lǐng)域中,最具挑戰(zhàn)性的問題通常是組件之間的邊界定位。其中,virtio-net前后端的定界尤為困難。當(dāng)網(wǎng)絡(luò)報(bào)文從內(nèi)核發(fā)送到virtio-net后端,或者從virtio-net后端發(fā)送到內(nèi)核
    的頭像 發(fā)表于 11-14 11:18 ?643次閱讀
    eBPF技術(shù)實(shí)踐之<b class='flag-5'>virtio</b>-net網(wǎng)卡隊(duì)列可觀測

    畫面分割器怎么調(diào)試

    畫面分割器,通常指的是視頻畫面分割器,它是一種可以將一個(gè)視頻信號(hào)分割成多個(gè)小畫面的設(shè)備。這種設(shè)備廣泛應(yīng)用于監(jiān)控系統(tǒng)、視頻會(huì)議、多畫面顯示等場景。調(diào)試畫面分割器是一個(gè)技術(shù)性很強(qiáng)的工作,需
    的頭像 發(fā)表于 10-17 09:32 ?1002次閱讀

    畫面分割器怎么連接

    器的基本原理 畫面分割器的工作原理是通過數(shù)字信號(hào)處理技術(shù),將多個(gè)視頻信號(hào)源(如攝像頭、DVR等)的圖像數(shù)據(jù)進(jìn)行處理,然后在一個(gè)監(jiān)視器上以分割的形式顯示出來。這些分割可以是1畫面、4畫面
    的頭像 發(fā)表于 10-17 09:29 ?940次閱讀

    畫面分割器和分屏器有什么區(qū)別

    : 技術(shù)實(shí)現(xiàn): 畫面分割器: 畫面分割器是一種硬件設(shè)備,它通過硬件電路實(shí)現(xiàn)對多個(gè)視頻信號(hào)的合并。畫面分割器通常包含一個(gè)或多個(gè)視頻輸入端口,用
    的頭像 發(fā)表于 10-17 09:25 ?1729次閱讀

    圖像分割和語義分割的區(qū)別與聯(lián)系

    、亮度等。圖像分割的目的是將圖像中感興趣的部分與背景分離,以便進(jìn)行進(jìn)一步的處理和分析。 1.1 圖像分割的類型 圖像分割可以分為以下幾類: 基于閾值的分割
    的頭像 發(fā)表于 07-17 09:55 ?1856次閱讀

    圖像分割與語義分割中的CNN模型綜述

    圖像分割與語義分割是計(jì)算機(jī)視覺領(lǐng)域的重要任務(wù),旨在將圖像劃分為多個(gè)具有特定語義含義的區(qū)域或?qū)ο?。卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為深度學(xué)習(xí)的一種核心模型,在圖像分割與語義分割中發(fā)揮著至關(guān)重要的
    的頭像 發(fā)表于 07-09 11:51 ?1861次閱讀

    機(jī)器人視覺技術(shù)中常見的圖像分割方法

    、場景理解、導(dǎo)航和交互等任務(wù)至關(guān)重要。以下是一些常見的圖像分割方法: 閾值分割法(Thresholding) 閾值分割法是一種基于像素強(qiáng)度的簡單圖像分割方法。
    的頭像 發(fā)表于 07-09 09:31 ?1363次閱讀

    機(jī)器人視覺技術(shù)中圖像分割方法有哪些

    和分析。本文將詳細(xì)介紹圖像分割的各種方法,包括傳統(tǒng)的圖像處理方法和基于深度學(xué)習(xí)的方法。 閾值分割法 閾值分割法是一種基于像素的圖像分割方法,它通過
    的頭像 發(fā)表于 07-04 11:34 ?1669次閱讀

    lvgl移植到RT-Thread Nano后進(jìn)入硬件錯(cuò)誤中斷的原因?

    使用的是RT-Thread Nano的最新版,第一次移植,不知道是不是因?yàn)檫@個(gè)lvgl只能移植到標(biāo)準(zhǔn)版里? 嘗試過給lvgl的線程分配更大的棧,但是依舊會(huì)卡死在硬件錯(cuò)誤中斷里。但只要把用戶的ui
    發(fā)表于 07-04 07:40