亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)中虛擬化設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)

        2022-12-23 12:03:28陳宇張先勇
        電子設(shè)計(jì)工程 2022年24期
        關(guān)鍵詞:嵌入式功能設(shè)備

        陳宇,曾 顏,張先勇

        (1.武漢郵電科學(xué)研究院,湖北武漢 430000;2.烽火通信科技股份有限公司,湖北 武漢 430000)

        嵌入式設(shè)備[1-3]的研發(fā)中需要大量設(shè)備,場地和成本的限制,對(duì)產(chǎn)品的交付時(shí)間和質(zhì)量影響較大。為了減少這種因素的影響,設(shè)計(jì)一種虛擬化設(shè)備供其使用。目前,嵌入式領(lǐng)域的虛擬化技術(shù)[4-5]常用的有QEMU、SIMICS、DOCKER 等。QEMU 是一種開源虛擬化技術(shù),具有跨平臺(tái)、高速度、可移植等優(yōu)點(diǎn)。因此QEMU 適合作為該文所要設(shè)計(jì)的虛擬化設(shè)備,同時(shí)利用KVM 對(duì)其性能加速。在使用QEMU 進(jìn)行模擬時(shí),代碼復(fù)雜,涉及到各個(gè)模塊的模擬實(shí)現(xiàn),對(duì)嵌入式產(chǎn)品設(shè)備所用到的一些復(fù)雜功能硬件等的訪問模擬也是復(fù)雜的。設(shè)計(jì)出嵌入式產(chǎn)品虛擬化設(shè)備[6-8]有利于推動(dòng)未來嵌入式行業(yè)的提升。

        1 嵌入式系統(tǒng)與虛擬化技術(shù)

        1.1 嵌入式系統(tǒng)

        嵌入式系統(tǒng)一般是指由硬件和軟件組成的能夠自己獨(dú)立進(jìn)行運(yùn)作的設(shè)備。嵌入式系統(tǒng)中軟件內(nèi)容包括軟件運(yùn)行環(huán)境及其操作系統(tǒng),硬件內(nèi)容包括信號(hào)處理器、存儲(chǔ)器、通信模塊等有形可見的內(nèi)容[9]。嵌入式系統(tǒng)是一種特殊的計(jì)算機(jī)系統(tǒng),可以根據(jù)自己的需求靈活選擇必要的軟件或硬件模塊。它是以應(yīng)用為導(dǎo)向,以現(xiàn)代計(jì)算機(jī)技術(shù)為基礎(chǔ),再加上用戶需求去變化。通常一個(gè)嵌入式系統(tǒng)本身就是一個(gè)功能齊全的個(gè)體,是幾乎不需要依賴其他外部裝置就可獨(dú)立去運(yùn)行的軟硬件組合起來的系統(tǒng)[10]。嵌入式的靈活多樣,用戶的需求也是不斷變化,因此就需要引入虛擬化技術(shù)到嵌入式系統(tǒng)中來。

        1.2 虛擬化技術(shù)

        虛擬化在計(jì)算機(jī)方面通常是指計(jì)算元件在虛擬的基礎(chǔ)上而不是真實(shí)的基礎(chǔ)上運(yùn)行,是在一定的宿主機(jī)上模擬出來能實(shí)現(xiàn)一定功能的技術(shù)。虛擬化技術(shù)的本質(zhì)在于對(duì)計(jì)算機(jī)系統(tǒng)軟硬件資源的劃分和抽象。目前,常用的虛擬化技術(shù)主要分為硬件仿真技術(shù)、全虛擬化技術(shù)、半虛擬化技術(shù)、硬件輔助虛擬化等,該文要在嵌入式系統(tǒng)中采用虛擬化技術(shù)設(shè)計(jì)嵌入式虛擬化設(shè)備,采用的則是硬件仿真技術(shù),該技術(shù)在宿主機(jī)操作系統(tǒng)上創(chuàng)建一個(gè)硬件VM 來仿真所想要的硬件,包括客戶機(jī)需要的CPU 指令集和各種外設(shè)等[11-13]。該文所要使用的QEMU 虛擬化平臺(tái)[14-15]是一種典型硬件仿真技術(shù)虛擬機(jī)產(chǎn)品,但是由于使用VM 來模擬所需要的硬件速度會(huì)非常慢,所以使用KVM 加速技術(shù)[16-17]為仿真平臺(tái)性能加速。

        1.3 QEMU技術(shù)與KVM技術(shù)

        QEMU 是目前廣為流行的開源虛擬化技術(shù),具有跨平臺(tái)、高速度、可移植等優(yōu)點(diǎn),QEMU 作為主機(jī)上的VMM(Virtual Machine Monitor),通過動(dòng)態(tài)二進(jìn)制轉(zhuǎn)換來模擬CPU 處理器,并提供一系列的硬件模型。QEMU 本質(zhì)上是宿主機(jī)操作系統(tǒng)上的一個(gè)應(yīng)用程序,通過提取GUEST 操作系統(tǒng)的二進(jìn)制代碼并翻譯成TCG 中間代碼,再將TCG 中間代碼翻譯成HOST 對(duì)應(yīng)架構(gòu)的機(jī)器代碼進(jìn)行執(zhí)行。QEMU 虛擬化技術(shù),會(huì)使GUEST 自身不感知操作系統(tǒng)運(yùn)行于QEMU 虛擬化環(huán)境還是物理環(huán)境。QEMU 開源代碼處于不斷演進(jìn)的過程中,支持多種CPU 核的指令集模擬,以ARM v8 架構(gòu)為例,目前支持cortex-A57、cortex-A53 和cortex-A72 三種ARM 核的模擬;此外,每種架構(gòu)下都支持多種較為完善的處理器模擬,以及豐富的外設(shè)模擬。對(duì)于不支持的處理器,也可基于相應(yīng)的CPU 核模擬,自主構(gòu)建處理器級(jí)別的硬件模擬。

        KVM(Kernel-based Virtual Machine)即基于內(nèi)核的虛擬機(jī),是一種內(nèi)建于Linux 中的開源虛擬化技術(shù),可以幫助用戶將Linux 切換到虛擬機(jī)監(jiān)控模式(EL2),使宿主機(jī)硬件能夠同時(shí)運(yùn)行多個(gè)隔離的虛擬環(huán)境,即虛擬機(jī)(VM)。但是KVM 缺少設(shè)備相關(guān)的虛擬化以及相應(yīng)的用戶空間管理虛擬機(jī)的手段,因此完整的虛擬機(jī)系統(tǒng)構(gòu)建需要借助QEMU 的相關(guān)功能。KVM 是同構(gòu)虛擬化中非常流行的硬件加速技術(shù),由于代碼不需要經(jīng)過翻譯轉(zhuǎn)換而是直接運(yùn)行于宿主機(jī)的物理CPU 核中,因此虛擬機(jī)的CPU 性能可以接近甚至高于對(duì)應(yīng)物理機(jī)的性能。不過,借助于QEMU 模擬的IO 設(shè)備性能,相比物理設(shè)備依舊會(huì)有一定程度的下降。

        2 虛擬化設(shè)備仿真平臺(tái)設(shè)計(jì)

        該文所要設(shè)計(jì)的虛擬化設(shè)備,其硬件環(huán)境需要ARM v8 架構(gòu)的Linux 服務(wù)器作為宿主機(jī),其中CPU核數(shù)不少于16,硬盤容量不低于500 GB,物理內(nèi)存不低于32 GB。在軟件環(huán)境方面,設(shè)備仿真平臺(tái)主要分為處理器平臺(tái)仿真、硬件適配和環(huán)境部署三個(gè)方面。其中需要模擬的主控設(shè)備采用的是LS1046處理器,處理器的仿真采用QEMU 虛擬化技術(shù)。QEMU 的開發(fā)與運(yùn)行都是基于宿主機(jī)Linux 系統(tǒng)環(huán)境進(jìn)行的,其中Linux 系統(tǒng)內(nèi)核版本建議不低于3.10,該次開發(fā)使用的是開源的QEMU 源碼,源碼版本為3.1.0-rc4。硬件適配采用重定位共享庫技術(shù),共享庫運(yùn)行在操作系統(tǒng)中,接口庫封裝Linux 操作系統(tǒng)的交叉編譯環(huán)境。環(huán)境部署主要包含虛擬仿真設(shè)備的部署與全系統(tǒng)的網(wǎng)絡(luò)拓?fù)浯罱?,設(shè)備的部署采用shell 腳本實(shí)現(xiàn);而網(wǎng)絡(luò)拓?fù)湟徊糠謱儆谔幚砥鞣抡?,通過QEMU 實(shí)現(xiàn);另一部分位于HOST 環(huán)境,需基于bridge-utils 搭建虛擬網(wǎng)橋環(huán)境。

        2.1 設(shè)備仿真平臺(tái)架構(gòu)

        整個(gè)設(shè)備仿真平臺(tái)架構(gòu)如圖1 所示。

        圖1 設(shè)備仿真平臺(tái)架構(gòu)

        該框架主要分為HOST 硬件平臺(tái)、HOST 軟件系統(tǒng)、QEMU 硬件模擬和GUEST 軟件系統(tǒng)四個(gè)層次。

        1)HOST 硬件平臺(tái)層

        該層對(duì)于設(shè)備仿真平臺(tái)而言主要提供CPU 和內(nèi)存模擬的物理資源,其中CPU 核數(shù)、CPU 主頻以及內(nèi)存大小三方面硬件資源基本決定了設(shè)備仿真平臺(tái)的整體性能。

        2)HOST 軟件系統(tǒng)層

        宿主機(jī)的操作系統(tǒng)在設(shè)備仿真平臺(tái)中主要拆分為兩方面的功能:KVM 驅(qū)動(dòng)是保障設(shè)備仿真平臺(tái)性能的核心,實(shí)現(xiàn)CPU 和內(nèi)存的硬件加速;虛擬交換子系統(tǒng)則是設(shè)備仿真平臺(tái)網(wǎng)絡(luò)功能的基礎(chǔ),支撐設(shè)備仿真平臺(tái)操作系統(tǒng)內(nèi)部與外部物理環(huán)境網(wǎng)絡(luò)通信以及仿真設(shè)備之間的網(wǎng)絡(luò)通信功能。

        3)QEMU 模擬硬件層

        這一層負(fù)責(zé)模擬設(shè)備仿真平臺(tái)中的硬件單元,主要分為模擬CPU、虛擬內(nèi)存以及IO 設(shè)備三大部分,具體硬件單元的劃分與物理設(shè)備一一對(duì)應(yīng)。該層主要服務(wù)于GUEST 軟件系統(tǒng)中的內(nèi)核部分,使內(nèi)核不感知是運(yùn)行于實(shí)際物理設(shè)備還是虛擬仿真設(shè)備中,是設(shè)備仿真平臺(tái)最核心的部分。

        4)GUEST 軟件系統(tǒng)層

        該層是設(shè)備仿真平臺(tái)的軟件運(yùn)行層,按功能垂直劃分,最下層運(yùn)行的是設(shè)備仿真平臺(tái)的內(nèi)核軟件,負(fù)責(zé)與硬件的交互;內(nèi)核之上運(yùn)行根文件系統(tǒng),提供用戶程序的運(yùn)行環(huán)境;最上層就是體現(xiàn)虛擬設(shè)備主體功能的應(yīng)用層軟件。

        2.2 設(shè)備仿真平臺(tái)QEMU模擬硬件模塊架構(gòu)

        設(shè)備仿真平臺(tái)的QEMU 模擬硬件模塊架構(gòu)主要分三個(gè)層面:

        1)最外層為MACHINE,可對(duì)應(yīng)于物理機(jī)處理器級(jí)別,包含LS1046 處理器與相關(guān)外部設(shè)備,如內(nèi)存、網(wǎng)口設(shè)備、PCIe-PCI 橋、外部SATA 卡存儲(chǔ)和CPLD等,此外還有ARM 架構(gòu)的啟動(dòng)引導(dǎo)單元。

        2)中間層為SOC,可對(duì)應(yīng)于LS1046 處理器,包含四個(gè)Coretex-A72 ARM 核、中斷控制器、串口控制器、PCIe 控制器、SATA 控制器以及CCSR 部分系統(tǒng)控制單元等。

        3)最內(nèi)層則為各具體硬件模塊,這部分主要是實(shí)現(xiàn)硬件單元的地址空間讀寫訪問、中斷控制及相關(guān)功能邏輯的模擬。

        上述QEMU 硬件模擬只覆蓋到處理器級(jí)別,如果是針對(duì)單盤級(jí)的外圍硬件,則需要在GUEST 軟件系統(tǒng)層進(jìn)行模擬,通過重定位共享庫對(duì)設(shè)備中主控軟件運(yùn)行過程執(zhí)行的硬件初始化函數(shù)以及硬件功能函數(shù)進(jìn)行處理,屏蔽后續(xù)的硬件操作而直接返回適配和數(shù)據(jù)仿真結(jié)果。

        設(shè)備仿真平臺(tái)的QEMU 模擬硬件模塊架構(gòu)如圖2 所示。

        圖2 仿真平臺(tái)QEMU模擬硬件模塊架構(gòu)

        3 虛擬化設(shè)備硬件功能仿真

        硬件功能的仿真主要是在仿真平臺(tái)GUEST 軟件系統(tǒng)層中完成的,用來實(shí)現(xiàn)處理器外圍硬件功能的模擬,從而使應(yīng)用層獲得一些仿真數(shù)據(jù)。

        3.1 硬件仿真庫框架

        仿真庫框架采用分層開放結(jié)構(gòu),仿真庫整體框架如圖3 所示。

        圖3 仿真庫框架

        SIMU &適配層提供雙向映射,一方面提供了實(shí)際硬件驅(qū)動(dòng)接口的樁函數(shù),通過指定虛擬設(shè)備功能調(diào)用虛擬設(shè)備統(tǒng)一適配層接口,該接口映射到虛擬設(shè)備功能Python 腳本來訪問虛擬硬件;另一方面提供了適配層回調(diào)函數(shù),當(dāng)?shù)讓佑布懈婢蛳⑸纤蜁r(shí),觸發(fā)回調(diào)函數(shù)通知適配層處理。通過動(dòng)態(tài)鏈接庫可以實(shí)現(xiàn)SIMU&適配層的功能。

        仿真庫SIMU 由虛擬驅(qū)動(dòng)統(tǒng)一適配層、虛擬硬件接口層和虛擬硬件層三部分組成。

        1)虛擬驅(qū)動(dòng)統(tǒng)一適配層包括虛擬驅(qū)動(dòng)接口動(dòng)態(tài)庫(simuDrv.so)、硬件功能映射表、回調(diào)功能映射表、定時(shí)器表、網(wǎng)絡(luò)線程表和網(wǎng)絡(luò)映射表,其中simuDrv.so提供C 調(diào)用Python 的統(tǒng)一接口,通過配置硬件功能映射表定制虛擬硬件,simuDrv.so 加載時(shí),啟動(dòng)輪詢線程,定時(shí)觸發(fā)Python 腳本定時(shí)器,周期性檢查回調(diào)功能映射表,讀取虛擬硬件狀態(tài)或消息觸發(fā)回調(diào),根據(jù)網(wǎng)絡(luò)線程表啟動(dòng)收包線程,檢查網(wǎng)絡(luò)映射表處理收?qǐng)?bào)并觸發(fā)回調(diào)。

        2)虛擬硬件接口層提供了硬件功能接口的通用Python 腳本,通過統(tǒng)一硬件接口映射到虛擬硬件,統(tǒng)一硬件接口simuDemo.py 提供了通用的功能,實(shí)現(xiàn)了對(duì)虛擬硬件文件數(shù)據(jù)的讀寫功能,覆蓋了大部分硬件使用場景;simuSocket.py 基于simuDemo.py 派生了網(wǎng)絡(luò)收發(fā)報(bào)文接口;如果需要額外的功能,可以根據(jù)需要從統(tǒng)一硬件接口派生特性硬件接口,Python 腳本支持生成線程,定制復(fù)雜場景,可以充分利用Python 的靈活性。

        3)虛擬硬件層是由一系列仿真硬件的數(shù)據(jù)文件組成,與虛擬設(shè)備統(tǒng)一適配層中硬件功能映射表對(duì)應(yīng),這些數(shù)據(jù)文件按照內(nèi)存格式存放數(shù)據(jù),通過虛擬硬件接口層Python 接口訪問,一般為讀寫操作。具有較復(fù)雜功能的硬件,可以在虛擬硬件接口層Python 中實(shí)現(xiàn)復(fù)雜的邏輯,模擬硬件動(dòng)作。

        3.2 硬件仿真庫結(jié)構(gòu)

        仿真庫文件目錄下包括simuDrv.so 和基本配置config.ini、Python腳本庫script、虛擬設(shè)備文件目錄simu。

        1)simuDrv.so 是虛擬驅(qū)動(dòng)接口層動(dòng)態(tài)庫,提供了C 調(diào)用Python 統(tǒng)一接口,會(huì)給上層應(yīng)用提供一些虛擬硬件讀寫、調(diào)試以及注冊(cè)接口,simuDrv.so 會(huì)讀取config.ini中Python環(huán)境參數(shù)和定時(shí)器輪詢周期參數(shù)。

        2)script中,虛擬硬件功能映射表用于C、Python、虛擬硬件數(shù)據(jù)文件綁定,利用虛擬功能列表和其對(duì)應(yīng)的硬件地址方便上層應(yīng)用操作虛擬硬件數(shù)據(jù)文件以及讀取數(shù)據(jù)匹配地址和平行調(diào)用讀寫;虛擬硬件回調(diào)配置文件用回調(diào)映射表處理一些需要回調(diào)的函數(shù);網(wǎng)絡(luò)線程配置一般需要與回調(diào)配置聯(lián)合起來使用,如收到報(bào)文后觸發(fā)回調(diào),其中有匹配硬件功能表和回調(diào)功能鍵值;網(wǎng)絡(luò)應(yīng)用端口配置文件用于Python 接收、發(fā)送報(bào)文或者服務(wù)鏈調(diào)用時(shí)轉(zhuǎn)發(fā)處理等的配置;定時(shí)器配置表中的Python 腳本在定時(shí)器超時(shí)時(shí)觸發(fā)調(diào)用;simuParam.py 提供了上述配置獲取接口,simuDrv.so 通過調(diào)用simuParam.py 中的API函數(shù)獲取配置信息,從而實(shí)現(xiàn)相關(guān)映射;虛擬硬件接口層通用接口,提供演示功能,其他定制功能可據(jù)此派生,simuSocket.py 通過simuDemo.py 派生了網(wǎng)絡(luò)收發(fā)操作。

        3)虛擬設(shè)備文件庫simu 中存放虛擬設(shè)備數(shù)據(jù)文件,需要與script 中虛擬硬件功能映射表中的硬件功能是一致的。

        3.3 硬件仿真示例

        在虛擬驅(qū)動(dòng)適配層增加溫度芯片功能映射(read)和風(fēng)扇芯片功能映射(read/write),同時(shí)在虛擬硬件層增加溫度芯片和風(fēng)扇芯片對(duì)應(yīng)的數(shù)據(jù)文件,編輯溫度芯片數(shù)據(jù)文件,應(yīng)用層就可以讀取到仿真設(shè)備當(dāng)前的溫度,計(jì)算風(fēng)扇檔位,對(duì)風(fēng)扇升、降檔。為了仿真設(shè)備溫度的變化,可以在驅(qū)動(dòng)適配層注冊(cè)溫度曲線回調(diào),周期性改變溫度數(shù)據(jù)。

        4 實(shí)驗(yàn)與結(jié)果分析

        通過實(shí)驗(yàn)得出以下結(jié)果:

        1)實(shí)驗(yàn)在搭建的虛擬平臺(tái)的服務(wù)器下啟動(dòng)虛擬機(jī),在同一個(gè)虛擬環(huán)境下可以同時(shí)拉起不同的虛擬設(shè)備,并且CPU 處理器和內(nèi)存的模擬都可以實(shí)現(xiàn)。

        2)虛擬設(shè)備運(yùn)行圖如圖4 所示,其內(nèi)容描述是其中一個(gè)虛擬設(shè)備進(jìn)程起來以后相關(guān)功能的初始化成功打印。目前,可以實(shí)現(xiàn)的功能是CPU 的映射、相關(guān)文件的讀取、邏輯器件的文件下載以及可以識(shí)別虛擬設(shè)備的具體類型等;同時(shí)還可以使用gdb 調(diào)試工具對(duì)問題進(jìn)行診斷。

        圖4 虛擬設(shè)備運(yùn)行圖

        3)虛擬設(shè)備中主控設(shè)備和普通業(yè)務(wù)設(shè)備都可以成功上網(wǎng)管。設(shè)備上網(wǎng)管以后就可以方便測(cè)試研發(fā)對(duì)其進(jìn)行業(yè)務(wù)方面的處理,其中還可以收到設(shè)備告警上報(bào)相關(guān)內(nèi)容,便于對(duì)設(shè)備的監(jiān)控。

        5 結(jié)論

        該文設(shè)計(jì)與實(shí)現(xiàn)了一種基于QEMU 虛擬平臺(tái)的嵌入式虛擬化設(shè)備,可實(shí)現(xiàn)虛擬平臺(tái)的運(yùn)行,且虛擬設(shè)備完成一些基礎(chǔ)功能,方便了測(cè)試和研發(fā)工作人員在設(shè)備研發(fā)過程中的調(diào)測(cè)。該設(shè)備也能使上層應(yīng)用開發(fā)脫離硬件去做業(yè)務(wù),使軟硬件實(shí)現(xiàn)一定程度的解耦合。但是目前對(duì)于一些特殊功能芯片的硬件虛擬化,可能無法實(shí)現(xiàn),只能以上層預(yù)想達(dá)到的結(jié)果作為返回,以實(shí)現(xiàn)具體的業(yè)務(wù)功能。

        由于軟件處于不斷演化的過程,硬件接口函數(shù)會(huì)出現(xiàn)變化,重定位共享庫可能無法適配新版本軟件,導(dǎo)致硬件仿真出錯(cuò)。所以需要各模塊協(xié)同,以完善軟件架構(gòu),標(biāo)準(zhǔn)化硬件初始化和訪問接口。

        猜你喜歡
        嵌入式功能設(shè)備
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        原來他們都是可穿戴設(shè)備
        Altera加入嵌入式視覺聯(lián)盟
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        亚洲丁香五月激情综合| 国产一区二区丰满熟女人妻| 99热免费精品| 国产美女胸大一区二区三区| 日韩av一区二区三区精品久久| 色综合久久久无码中文字幕| 越南女子杂交内射bbwbbw | 国产96在线 | 免费| 国产91精品自拍视频| 国产亚洲精品美女久久久m| 激情 人妻 制服 丝袜| 国产精品激情综合久久| 亚洲一区二区蜜桃视频| 亚洲精品国产一区二区| 婷婷四房色播| 蜜桃视频色版在线观看| 青青河边草免费在线看的视频| 免费网站看v片在线18禁无码| 国产精品开放小视频| 中文字幕一区二区三在线| 国产亚洲精品97在线视频一| 国产高清一区二区三区视频| 久久精品国产亚洲婷婷| 亚洲av无吗国产精品| 精品国品一二三产品区别在线观看| 国产剧情av麻豆香蕉精品| 蜜桃成人永久免费av大| 天天射综合网天天插天天干| 伊人激情av一区二区三区| 无码人妻少妇久久中文字幕蜜桃| 国产av一区二区三区狼人香蕉| 少妇无码av无码专线区大牛影院| 日日躁夜夜躁狠狠久久av| 亚洲欧美日本人成在线观看| 一本色道久在线综合色| 亚洲av无码一区二区三区不卡| 午夜亚洲国产理论片亚洲2020| 国产精品自拍视频免费观看| 十八禁视频网站在线观看| 久久精品一区二区免费播放| 少妇被日到高潮的视频|