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

        ?

        由X86 構(gòu)架到ARM 構(gòu)架的應(yīng)用移植流程平臺研究

        2022-06-29 06:08:46迪,陳瑞,李
        電子設(shè)計(jì)工程 2022年12期
        關(guān)鍵詞:程序信息

        冷 迪,陳 瑞,李 英

        (深圳供電局有限公司,廣東 深圳 518000)

        早期開發(fā)任務(wù)少,嵌入式系統(tǒng)功能單一,不需要操作系統(tǒng)支持[1]。但隨著功能和復(fù)雜性的增加,對系統(tǒng)的要求也越來越高。所以,像普通計(jì)算機(jī)一樣在處理器中引入操作系統(tǒng)就成了一個(gè)必然的趨勢[2]。由于操作系統(tǒng)的引入,能夠充分利用處理器有限的資源,實(shí)現(xiàn)不同CPU 進(jìn)程間的最佳切換,因此必然會把嵌入式系統(tǒng)引入到更廣闊的領(lǐng)域[3]。目前X86架構(gòu)虛擬化逐漸完善,但是仍然有些問題需要解決。小型機(jī)原CPU 單核數(shù)量較少,但單核率較高。但PC 服務(wù)器的CPU 內(nèi)核較多,單一CPU 內(nèi)核性能較差[4]。一些應(yīng)用在移植過程中表現(xiàn)出不同的性能,這是小型機(jī)過渡到PC 服務(wù)器時(shí)不可避免的共同問題。

        以ARM 為基礎(chǔ)的嵌入式操作系統(tǒng)是目前信息市場的主流,也是一個(gè)熱門話題。由于應(yīng)用遷移過程平臺公開了源代碼,使其他人可以在自己喜歡的平臺系統(tǒng)中移植代碼和使用它,所以嵌入式操作系統(tǒng)受到關(guān)注,選擇該系統(tǒng)作為應(yīng)用遷移過程操作平臺。為此,提出了由X86 構(gòu)架到ARM 構(gòu)架的應(yīng)用移植流程平臺研究。

        1 應(yīng)用移植流程平臺結(jié)構(gòu)層次化設(shè)計(jì)

        由X86 構(gòu)架到ARM 構(gòu)架的應(yīng)用移植流程平臺結(jié)構(gòu)如圖1 所示。

        圖1 應(yīng)用移植流程平臺結(jié)構(gòu)

        圖1是把內(nèi)核分成兩層,底層是驅(qū)動程序?qū)?,上層是虛擬文件系統(tǒng)層。這些層對應(yīng)于內(nèi)核的兩個(gè)主要功能,驅(qū)動程序?qū)迂?fù)責(zé)管理底層硬件[5]。虛擬文件系統(tǒng)層為Linux上層應(yīng)用程序提供對L1的訪問。核心代碼按照其功能可分為進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、設(shè)備控制、網(wǎng)絡(luò)功能等模塊[6]。每一個(gè)模塊都很大,遷移過程中的主要工作是驅(qū)動設(shè)備控制。各開發(fā)板的硬件結(jié)構(gòu)不同,需要增加或改進(jìn)硬件驅(qū)動程序[7]。

        1.1 平臺設(shè)備驅(qū)動

        驅(qū)動程序通常與應(yīng)用程序遷移過程平臺內(nèi)核中的一個(gè)通用總線連接,例如USB、I2C等驅(qū)動程序[8]。但在嵌入式芯片中,很多設(shè)備都沒有與公共總線連接。

        平臺設(shè)備驅(qū)動如圖2 所示。

        由圖2 可知,使用USB 和I2C 總線控制器來控制主板上的設(shè)備,并通過一條廉價(jià)但功能強(qiáng)大的總線(包括兩根導(dǎo)線)收集相關(guān)信息;LCD 控制器的作用是接收總線發(fā)送的信息,計(jì)數(shù)器通過計(jì)算數(shù)字系統(tǒng)中脈沖數(shù)來實(shí)現(xiàn)測量、計(jì)數(shù)和控制[9-10]。聲道控制器采用聯(lián)機(jī)音樂控制方式,輸出DMX512/1990 信號,保證了系統(tǒng)的安全可靠[11]。

        圖2 平臺設(shè)備驅(qū)動

        1.2 LCD控制器

        LCD 控制器結(jié)構(gòu)如圖3 所示。

        圖3 LCD控制器結(jié)構(gòu)

        由圖3 可知,F(xiàn)CT 接收來自初始化、屏幕間隙和顯示器等參數(shù)的指令。它根據(jù)指令生成一系列控制信號和相應(yīng)的時(shí)序,并通過控制LCD 顯示模塊來完成相應(yīng)的操作[12]。在FCT 輸入LCD_FCT 為低電平時(shí),對復(fù)位電路進(jìn)行初始化,對復(fù)位標(biāo)志和狀態(tài)進(jìn)行復(fù)位,并設(shè)置相關(guān)常數(shù)[13]。

        LCD 控制器的主要功能是為計(jì)時(shí)器提供高品質(zhì)的時(shí)間設(shè)定,LCD_FCT 中的微秒和毫秒計(jì)時(shí)器是為了滿足不同時(shí)間的工作要求而設(shè)計(jì)的[14-15]。

        定時(shí)器的時(shí)間常數(shù)存放在時(shí)間常數(shù)寄存器中,將MP 中的地址和控制信息發(fā)送給解碼器。該解碼器可根據(jù)不同的地址和控制信息產(chǎn)生相應(yīng)的復(fù)位指令標(biāo)志,將指示符號發(fā)送到控制電路[16]。

        1.3 Apache服務(wù)器

        Apache 服務(wù)器是指Apache 服務(wù)器端口中的嵌入式系統(tǒng)。在HTTP 端口上,當(dāng)客戶端向服務(wù)器發(fā)出連接請求時(shí),服務(wù)器軟件守護(hù)程序在客戶端和服務(wù)器之間建立連接。如果守護(hù)程序從客戶端收到HTTP 請求消息,那么就對其進(jìn)行解析,并將解析的請求傳遞給后臺處理程序。這個(gè)后端程序是PHP 和CGI。在對后端程序進(jìn)行處理之后,客戶端所需數(shù)據(jù)就會傳送到服務(wù)器端,最終呈現(xiàn)在網(wǎng)頁中。

        1.4 觸摸屏驅(qū)動層次結(jié)構(gòu)

        R2R 平臺中,觸摸屏驅(qū)動層次結(jié)構(gòu)如圖4 所示。

        圖4 觸摸屏驅(qū)動層次結(jié)構(gòu)

        由圖4 可知,如果高層應(yīng)用程序需要獲得觸摸屏坐標(biāo),需要首先調(diào)用I2C 總線驅(qū)動程序,這些驅(qū)動程序的分層開放式系統(tǒng)調(diào)用打開文件界面,然后使用ioctl 或read 系統(tǒng)調(diào)用獲取所需的坐標(biāo)值。

        由于輸入設(shè)備具有多個(gè)觸摸屏,因此鼠標(biāo)和鍵盤都是輸入設(shè)備。其基本工作機(jī)制是產(chǎn)生中斷,然后內(nèi)核將數(shù)據(jù)存儲在緩沖區(qū)中。硬件方面,設(shè)置數(shù)據(jù)讀取、輸入事件管理、緩沖區(qū)管理共享模塊;所有這些常規(guī)處理由輸入驅(qū)動完成,剩下的是中斷管理、數(shù)據(jù)讀取和其他硬件驅(qū)動。

        2 移植流程方案設(shè)計(jì)

        Android 系統(tǒng)移植分析了UBOOT、Android 內(nèi)核、用戶空間的層次結(jié)構(gòu);下一步,根據(jù)層次結(jié)構(gòu)找到與遷移最相關(guān)的代碼。修改代碼以適應(yīng)硬件特性,完成代碼移植。開始運(yùn)行系統(tǒng)前,編譯修改的UBOOT代碼,并使用RENEWS 刻錄機(jī)將BIN 文件(編譯結(jié)構(gòu))刻錄到R2R 平臺的引導(dǎo)風(fēng)扇上。修改后的內(nèi)核隨后被編譯,內(nèi)核鏡像被拷貝到端口主機(jī)的TFTP 目錄中;最后編譯成Android 文件系統(tǒng),拷貝到U 盤。該系統(tǒng)首先啟動應(yīng)用程序,下載內(nèi)核,然后分析數(shù)據(jù),最后內(nèi)核從U 盤讀取初始化文件,開始初始化操作,最后將初始進(jìn)程加載到Android 用戶空間。

        2.1 引導(dǎo)程序移植

        啟動程序是與架構(gòu)相關(guān)的一部分,是在運(yùn)行操作系統(tǒng)內(nèi)核和應(yīng)用程序之前啟動并加載系統(tǒng)的一小部分。一般情況下,不可能在嵌入式系統(tǒng)中建立通用的啟動遷移。用戶必須編寫此小程序,完成硬件設(shè)備的初始化,建立存儲空間映射,使系統(tǒng)軟硬件達(dá)到適當(dāng)?shù)臓顟B(tài),才能使操作系統(tǒng)內(nèi)核良好運(yùn)行。

        通常引導(dǎo)程序移植分為兩步:

        步驟一:CPU 依賴代碼使用匯編語言實(shí)現(xiàn)。其中主要包括對硬件設(shè)備進(jìn)行初始化;準(zhǔn)備內(nèi)存空間將引導(dǎo)程序復(fù)制到引導(dǎo)遷移設(shè)備上,設(shè)置堆棧讀取ARM 空間,完成檢測系統(tǒng)內(nèi)存映射;

        步驟二:將內(nèi)核和根文件系統(tǒng)鏡像從Flash 讀取到ARM 空間;設(shè)置內(nèi)核啟動參數(shù),調(diào)用內(nèi)核。引導(dǎo)程序移植的工作流程如圖5 所示。

        圖5 引導(dǎo)程序移植工作流程

        2.2 內(nèi)核移植

        內(nèi)核移植啟動操作系統(tǒng),執(zhí)行內(nèi)存管理任務(wù)調(diào)度,然后執(zhí)行應(yīng)用程序,或者等待用戶的指令。盡管在功能間存在著復(fù)雜的調(diào)度關(guān)系,但應(yīng)用遷移平臺的層次結(jié)構(gòu)使硬件相關(guān)代碼具有獨(dú)立性。在遷移過程中,只需要對進(jìn)程、內(nèi)存、設(shè)備等進(jìn)行管理。對內(nèi)核代碼的修改包括以下部分:

        1)在內(nèi)核目錄樹中修改項(xiàng)目構(gòu)建工具,設(shè)置環(huán)境變量,找到交叉編譯工具鏈,重新登錄。

        2)建立灰色分區(qū)區(qū)域,修改ARM 表示的分區(qū)信息,使用灰色分區(qū)表創(chuàng)建文件內(nèi)容;修改ARM 文件,根據(jù)分區(qū)設(shè)置指定初始化和內(nèi)核啟動程序。

        通過執(zhí)行MakeMenucon 命令,配置內(nèi)核生成卡,選擇SBC2410 位卡的處理器類型,將卡保存在串口中。在進(jìn)入配置管理界面時(shí),必須先驗(yàn)證用戶的身份。驗(yàn)證是訪客訪問權(quán)的標(biāo)志,不同權(quán)限驗(yàn)證對應(yīng)不同的數(shù)據(jù)信息。

        3 實(shí)驗(yàn)分析

        3.1 交叉開發(fā)環(huán)境構(gòu)建

        移植之前,需確保主機(jī)上正確安裝了操作系統(tǒng)和GCC 跨工具編譯器鏈連接了目標(biāo)板上的USB、串行和JTAG 接口,并且成功安裝了驅(qū)動程序。該實(shí)驗(yàn)使用安裝在主機(jī)上的RedHat9 和主機(jī)上的Linux 操作系統(tǒng),以及ARM-Linux-GCC3 交叉編譯工具。

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

        單獨(dú)使用X86架構(gòu)、ARM架構(gòu)與移植流程平臺對比分析信息存儲空間占用情況、重復(fù)信息剔除效率。

        3.2.1 存儲空間

        添加Flash 分區(qū)信息,在目標(biāo)板中的存儲空間為64 MB,將其劃分為4個(gè)區(qū)域,分別是分區(qū)1(占用1 MB空間)、分區(qū)2(占用3 MB 空間)、分區(qū)3(占用40 MB空間)、分區(qū)4(占用20 MB 空間)。

        分別使用X86 架構(gòu)、ARM 架構(gòu)與移植流程平臺對空間占用情況進(jìn)行對比分析,對比結(jié)果如圖6所示。

        圖6 不同架構(gòu)空間占用情況對比分析

        由圖6 可知,使用X86 架構(gòu),分區(qū)1 所占空間為3 MB,分區(qū)2 所占空間為6 MB,分區(qū)3 所占空間為43 MB,分區(qū)4 所占空間為12 MB;使用ARM 架構(gòu),分區(qū)1 所占空間為2 MB,分區(qū)2 所占空間為6 MB,分區(qū)3 所占空間為32 MB,分區(qū)4 所占空間為24 MB;使用移植流程平臺,分區(qū)1 所占空間為1 MB,分區(qū)2 所占空間為3 MB,分區(qū)3 所占空間為40 MB,分區(qū)4 所占空間為20 MB。由此可知,使用移植流程平臺在目標(biāo)板中的存儲空間分區(qū)結(jié)果與實(shí)際需求一致。

        3.2.2 重復(fù)信息剔除效率

        分別使用X86 架構(gòu)、ARM 架構(gòu)與移植流程平臺對比分析重復(fù)信息剔除效率,對比結(jié)果如表1 所示。

        表1 不同架構(gòu)重復(fù)信息剔除效率對比分析

        由表1 可知,使用X86 架構(gòu)最高剔除效率為60%;使用ARM 架構(gòu)最高剔除效率為75%;使用移植流程平臺最高剔除效率為99%,由此可知,使用移植流程平臺重復(fù)信息剔除效率較高。

        4 結(jié)束語

        該文設(shè)計(jì)了一個(gè)由X86 構(gòu)架到ARM 構(gòu)架的應(yīng)用移植流程平臺,以滿足當(dāng)前社會發(fā)展的需要,具有良好的市場前景和強(qiáng)大的擴(kuò)展能力。通過實(shí)驗(yàn)可知,該平臺存儲空間分區(qū)結(jié)果與實(shí)際需求一致,其最高重復(fù)信息剔除效率高達(dá)99%,移植效果較好,具有較強(qiáng)的性能。根據(jù)平臺后期開發(fā)和運(yùn)行的需要,提出了初步解決方案,為平臺的后期運(yùn)行和產(chǎn)品開發(fā)提供了依據(jù)。

        猜你喜歡
        程序信息
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        英國與歐盟正式啟動“離婚”程序程序
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        恐怖犯罪刑事訴訟程序的完善
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        好爽受不了了要高潮了av| 国产一品二品精品在线| 日本高清视频在线观看一区二区 | av资源吧首页在线观看| 亚洲国产精品久久性色av| 日本不卡一区二区三区久久精品| 成人女同av在线观看网站| 午夜三级a三级三点在线观看| 国产呦系列呦交| 久久免费国产精品| 黄色三级视频中文字幕| 白白色发布免费手机在线视频观看| 亚洲欧洲免费无码| 日韩人妻无码一区二区三区久久| 中文字幕一区二区人妻性色| 热久久久久久久| 亚洲欧美成人中文在线网站| 我想看久久久一级黄片| 黄色av亚洲在线观看| 凹凸国产熟女精品视频app| 人人添人人澡人人澡人人人人| 亚洲欧美日韩激情在线观看| 亚洲国产福利成人一区二区| 国产精品很黄很色很爽的网站 | 天天综合网天天综合色| 国产91 对白在线播放九色| 亚洲一区二区成人在线视频| 中美日韩在线一区黄色大片| 中文字幕亚洲综合久久| 肥臀熟女一区二区三区| 欧美做受视频播放| 日韩精品一区二区av在线| 美女视频黄a视频全免费网站色| 成人影片麻豆国产影片免费观看| 波多野结衣av手机在线观看| 久久久午夜毛片免费| 国产麻豆剧传媒精品国产av| 中文字幕人妻熟在线影院| 日本三级欧美三级人妇视频| 国产一级三级三级在线视| 国产精品美女主播在线|