999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

冷 迪,陳 瑞,李 英

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

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

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

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

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

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

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

1.1 平臺(tái)設(shè)備驅(qū)動(dòng)

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

平臺(tái)設(shè)備驅(qū)動(dòng)如圖2 所示。

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

圖2 平臺(tái)設(shè)備驅(qū)動(dòng)

1.2 LCD控制器

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

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

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

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

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

1.3 Apache服務(wù)器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 內(nèi)核移植

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

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

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

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

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

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

移植之前,需確保主機(jī)上正確安裝了操作系統(tǒng)和GCC 跨工具編譯器鏈連接了目標(biāo)板上的USB、串行和JTAG 接口,并且成功安裝了驅(qū)動(dòng)程序。該實(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)與移植流程平臺(tái)對(duì)比分析信息存儲(chǔ)空間占用情況、重復(fù)信息剔除效率。

3.2.1 存儲(chǔ)空間

添加Flash 分區(qū)信息,在目標(biāo)板中的存儲(chǔ)空間為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)與移植流程平臺(tái)對(duì)空間占用情況進(jìn)行對(duì)比分析,對(duì)比結(jié)果如圖6所示。

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

由圖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;使用移植流程平臺(tái),分區(qū)1 所占空間為1 MB,分區(qū)2 所占空間為3 MB,分區(qū)3 所占空間為40 MB,分區(qū)4 所占空間為20 MB。由此可知,使用移植流程平臺(tái)在目標(biāo)板中的存儲(chǔ)空間分區(qū)結(jié)果與實(shí)際需求一致。

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

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

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

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

4 結(jié)束語(yǔ)

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

猜你喜歡
程序信息
試論我國(guó)未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
展會(huì)信息
恐怖犯罪刑事訴訟程序的完善
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 久青草免费在线视频| 狠狠综合久久| jizz国产视频| 欧美色图第一页| 日韩精品一区二区三区视频免费看| 国产精品视频公开费视频| 日本人真淫视频一区二区三区 | 日本a∨在线观看| 手机在线看片不卡中文字幕| 国产精彩视频在线观看| 国内自拍久第一页| 国产迷奸在线看| 欧美精品成人| 99久久精品无码专区免费| 久久婷婷色综合老司机| 亚洲成AV人手机在线观看网站| 久久婷婷色综合老司机| 秘书高跟黑色丝袜国产91在线 | 欧美精品色视频| 中文字幕在线不卡视频| 天天综合网色| 日韩毛片免费| 亚洲国产午夜精华无码福利| 国产婬乱a一级毛片多女| 亚洲国产天堂久久综合226114| 国产成人a毛片在线| 亚洲欧美日韩视频一区| 国产网站一区二区三区| 精品免费在线视频| 国产麻豆精品在线观看| 欧美不卡二区| 午夜一级做a爰片久久毛片| 波多野结衣在线se| 国产高清在线精品一区二区三区| 久久精品丝袜| 亚洲码一区二区三区| 全色黄大色大片免费久久老太| 色久综合在线| 99久久国产综合精品2020| 久精品色妇丰满人妻| 九色综合伊人久久富二代| 久精品色妇丰满人妻| 国产视频a| 特级毛片免费视频| 国产精品久线在线观看| h网址在线观看| 久久国产精品无码hdav| 激情网址在线观看| 亚洲综合婷婷激情| 欧美一级色视频| 国产微拍一区二区三区四区| 国产网友愉拍精品视频| 日韩大片免费观看视频播放| 97视频精品全国免费观看| 国产午夜精品鲁丝片| 一本一道波多野结衣av黑人在线| 67194成是人免费无码| 国产导航在线| 99热这里都是国产精品| 国产呦精品一区二区三区下载| 欧美成人精品在线| 亚洲三级电影在线播放| 嫩草国产在线| 国产欧美在线观看一区| 伦伦影院精品一区| 国产区精品高清在线观看| 国产午夜一级淫片| 国产情精品嫩草影院88av| 精品無碼一區在線觀看 | 亚洲一区色| 亚洲欧州色色免费AV| 久久福利网| 无码精品福利一区二区三区| 999精品视频在线| 毛片视频网址| 国产精品网址你懂的| 欧美亚洲国产精品久久蜜芽| 野花国产精品入口| a国产精品| 国产精品主播| 亚洲AV无码一二区三区在线播放| 凹凸精品免费精品视频|