女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

硬件分割依賴難點是現代嵌入式系統物聯網設備開發中常見的問題。在多任務或多應用的系統中,不同任務或應用需要訪問不同的硬件資源,傳統的系統設計中,硬件資源的分配往往與軟件緊密耦合,導致軟件的可移植性和可擴展性受限。同時,硬件資源的共享訪問可能導致資源競爭和沖突,進而影響系統的穩定性和安全性。特別是在安全關鍵的應用場景(如汽車電子、工業控制等)中,這種問題尤為突出。


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


嵌入式虛擬化環境中,外設硬分割(Partition/Passthrough)是充分發揮虛擬化硬件性能的重要手段。然而早期實現中,操作系統存在以下難題:

驅動需求繁復:虛擬機操作系統本身需要移植大量驅動,此類驅動本身較復雜。

虛擬機行為不可控:存在多個虛擬機依賴同一個外設的情況,由于無法保證多個虛擬機并發訪問同一個物理資源為原子操作,行為不可控易導致不安全。

耦合嚴重且缺乏標準:可移植性差,固件更新困難;多操作系統(OS)/虛擬化下資源控制混亂,無法實現高級功耗與性能策略協同。


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

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

在vmRT-Thread中,普通虛擬機作為VirtIO-SCMI前端,僅轉發硬件操作請求;驅動虛擬機作為后端,解析請求并校驗權限后,通過procfs/ioctl操作真實硬件,兩者均通過VirtIO通道通信。

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

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

示例1

將VirtIO-SCMI前端虛擬機中某個uart中的clk,reset,pinctrl替換為VirtIO-SCMI。

大致步驟如下:

  1. VirtIO-SCMI前端虛擬機需要修改設備樹:
  • 首先需要增加scmi的clk,reset,pinctrl的子協議設備樹節點

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";};};};};

  • 然后對應串口的設備樹節點,需要引用scmi的clk,reset,pinctrl的子協議設備樹節點,其中clk,reset還需要通過參數來提供索引號。

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后端虛擬機需要修改VirtIO-SCMI Backend Service的配置文件,配置文件主要包含硬件的描述信息,索引關系,以及權限等等。
  2. VirtIO-SCMI后端虛擬機啟動VirtIO-SCMI Backend Service,然后再啟動VirtIO-SCMI前端虛擬機,可以看到VirtIO-SCMI前端虛擬機的串口可以正常工作。

示例2

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

大致步驟如下:

  1. VirtIO-SCMI前端虛擬機需要修改設備樹:
  • 首先需要增加scmi的perf的子協議設備樹節點

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

  • 然后對應CPU的設備樹節點中的頻率屬性需要引用scmiperf子協議設備樹節點,同時還需要通過參數來提供索引號。

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

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

效果圖1

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

效果圖2

該方法基于VirtIO-SCMI的嵌入式虛擬化解決方案,通過將硬件資源訪問虛擬化,使前端虛擬機只需通過VirtIO-SCMI協議轉發請求,而后端驅動虛擬機通過procfs/ioctl統一處理真實硬件操作,既實現了多虛擬機間的資源隔離與安全管控,又避免了重復移植clock/power等驅動,為車載、物聯網等需要嚴格外設隔離的場景提供新路徑。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3672

    瀏覽量

    131097
  • 硬件
    +關注

    關注

    11

    文章

    3472

    瀏覽量

    67315
  • RT-Thread
    +關注

    關注

    32

    文章

    1382

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    通過vmRT-Thread和ROS2賦能機器人智能開發

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

    Thread認證

    Thread是一種基于IPv6標準的mesh網絡協議,沒有單點故障。Thread的目標是通過可靠、安全、可擴展的方式來連接低功耗設備。和互聯網一樣,Thread運行在互聯網協議(IP)
    發表于 05-27 22:50

    RT-Thread睿賽德亮相深圳機器人產業大會,聚焦機器人軟件系統技術前沿 | 新聞速遞

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

    通過vmRT-Thread和MCP賦能具身智能開發

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

    2024年Thread的重要亮點

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

    eBPF技術實踐之virtio-net網卡隊列可觀測

    在系統領域中,最具挑戰性的問題通常是組件之間的邊界定位。其中,virtio-net前后端的定界尤為困難。當網絡報文從內核發送到virtio-net后端,或者從virtio-net后端發送到內核
    的頭像 發表于 11-14 11:18 ?636次閱讀
    eBPF技術實踐之<b class='flag-5'>virtio</b>-net網卡隊列可觀測

    畫面分割器怎么調試

    畫面分割器,通常指的是視頻畫面分割器,它是一種可以將一個視頻信號分割成多個小畫面的設備。這種設備廣泛應用于監控系統、視頻會議、多畫面顯示等場景。調試畫面分割器是一個技術性很強的工作,需
    的頭像 發表于 10-17 09:32 ?998次閱讀

    畫面分割器怎么連接

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

    畫面分割器和分屏器有什么區別

    : 技術實現: 畫面分割器: 畫面分割器是一種硬件設備,它通過硬件電路實現對多個視頻信號的合并。畫面分割器通常包含一個或多個視頻輸入端口,用
    的頭像 發表于 10-17 09:25 ?1708次閱讀

    圖像分割和語義分割的區別與聯系

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

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

    圖像分割與語義分割是計算機視覺領域的重要任務,旨在將圖像劃分為多個具有特定語義含義的區域或對象。卷積神經網絡(CNN)作為深度學習的一種核心模型,在圖像分割與語義分割中發揮著至關重要的
    的頭像 發表于 07-09 11:51 ?1851次閱讀

    機器人視覺技術中常見的圖像分割方法

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

    機器人視覺技術中圖像分割方法有哪些

    和分析。本文將詳細介紹圖像分割的各種方法,包括傳統的圖像處理方法和基于深度學習的方法。 閾值分割法 閾值分割法是一種基于像素的圖像分割方法,它通過
    的頭像 發表于 07-04 11:34 ?1647次閱讀

    lvgl移植到RT-Thread Nano后進入硬件錯誤中斷的原因?

    使用的是RT-Thread Nano的最新版,第一次移植,不知道是不是因為這個lvgl只能移植到標準版里? 嘗試過給lvgl的線程分配更大的棧,但是依舊會卡死在硬件錯誤中斷里。但只要把用戶的ui
    發表于 07-04 07:40