日本在线观看不卡,国产成人免费观看,国产gaysex男同视频chinese,欧美一级www

樹人論文網(wǎng)一個專業(yè)的學術(shù)咨詢網(wǎng)站!!!
樹人論文網(wǎng)

基于SOPC的華為鴻蒙LiteOS操作系統(tǒng)移植

來源: 樹人論文網(wǎng)發(fā)表時間:2021-06-05
簡要:[摘要]在萬物物聯(lián)的時代,嵌入式物聯(lián)網(wǎng)設(shè)備的數(shù)量大幅增加。隨著需求的不斷提高,嵌入式物聯(lián)網(wǎng)產(chǎn)品方案的設(shè)計靈活性應當?shù)玫阶銐虻闹匾暋碜匀A為的國產(chǎn)開源物聯(lián)網(wǎng)實時操作系

  [摘要]在萬物物聯(lián)的時代,嵌入式物聯(lián)網(wǎng)設(shè)備的數(shù)量大幅增加。隨著需求的不斷提高,嵌入式物聯(lián)網(wǎng)產(chǎn)品方案的設(shè)計靈活性應當?shù)玫阶銐虻闹匾暋碜匀A為的國產(chǎn)開源物聯(lián)網(wǎng)實時操作系統(tǒng)LiteOS內(nèi)核精簡、安全性、實時性高。在移動物聯(lián)網(wǎng)終端有著廣泛的應用前景。本文介紹了一種基于SOPC平臺的華為LiteOS的移植,對通過使用FPGA平臺的芯片系統(tǒng)應用方案設(shè)計具有一定的參考價值。

基于SOPC的華為鴻蒙LiteOS操作系統(tǒng)移植

  本文源自王浩天; 汲偉明, 科技經(jīng)濟導刊 發(fā)表時間:2021-04-25

  [關(guān)鍵詞]實時操作系統(tǒng);鴻蒙LiteOS;FPGA;移植

  1.研究背景

  實時操作系統(tǒng),尤其是物聯(lián)網(wǎng)操作系統(tǒng)是嵌入式物聯(lián)網(wǎng)設(shè)備中不可或缺的組成部分。隨著嵌入式物聯(lián)網(wǎng)產(chǎn)品的需求復雜度的大幅提高,嵌入式系統(tǒng)的功能和智能化需求也隨之增多,軟件的復雜度不斷提高。相較于直接操作底層硬件,嵌入式實時操作系統(tǒng)能夠更合理、更有效地利用系統(tǒng)資源[1],其在方案制定和實現(xiàn)階段有著低成本,短開發(fā)周期的特點。常見的嵌入式實時操作系統(tǒng)架構(gòu)如圖1所示。

  另一方面,雖然網(wǎng)絡(luò)傳輸技術(shù)正在不斷進步,但受制于成本原因,在低成本方案上運用高性能網(wǎng)絡(luò)傳輸模組的可行性較低,中低端嵌入式物聯(lián)網(wǎng)產(chǎn)品方案通常網(wǎng)絡(luò)帶寬低,很難通云計算進行高效進行實時圖像處理和采集作業(yè),而使用自身的MCU實現(xiàn)方法速度較慢,丟幀現(xiàn)象普遍,很難滿足速度、精度的要求[2]。

  FPGA以其相對低功耗,高實時性,可重構(gòu)性強等特點,非常適合芯片方案的設(shè)計和驗證,而通過FPGA的邏輯電路對圖像進行簡單預處理,易于維護且高效[3]。

  而基于FPGA的片上可編程系統(tǒng)(SystemonProgrammableChip,SOPC)以其靈活度高,可裁減的特點[4],非常適合用于物聯(lián)網(wǎng)芯片的系統(tǒng)方案設(shè)計環(huán)節(jié)。

  綜上所述,在基于FPGA的SOPC中運行實時操作系統(tǒng)能夠在兼具性能的同時對復雜軟件和應用有良好的適應性,這些特性使得此種SOPC平臺在嵌入式物聯(lián)網(wǎng)產(chǎn)品的方案設(shè)計環(huán)節(jié)上有較好的應用前景。

  2.華為鴻蒙LiteOS操作系統(tǒng)

  2.1LiteOS系統(tǒng)結(jié)構(gòu)特征

  華為LiteOS是一個基于任務優(yōu)先級搶占調(diào)度機制內(nèi)核的操作系統(tǒng)。華為LiteOS整體遵從分層設(shè)計,自下而上可分為:內(nèi)核層、系統(tǒng)服務層、框架層和應用層。系統(tǒng)功能按照:系統(tǒng)->子系統(tǒng)->功能模塊,依次級展開。在不同的設(shè)備環(huán)節(jié)和使用場景下,華為LiteOS支持根據(jù)實際需求裁剪非必要的子系統(tǒng)或功能塊。其基礎(chǔ)內(nèi)核最小可裁剪至10k,因此具有良好的可移植性。

  2.2LiteOS進程機制

  業(yè)內(nèi)產(chǎn)生的物聯(lián)網(wǎng)操作系統(tǒng)種類繁多,這其中包括AndroidThings,AmazonFreeRTOS,ThreadX等[5]。LiteOS與μC/OS-II類似,采用搶占式調(diào)度機制來控制內(nèi)核進程,并通過為每個用戶態(tài)進程分配獨立的進程空間,使進程之間互不可見,以此實現(xiàn)進程間隔離[6]。

  在LiteOS中,進程的狀態(tài)主要有如圖三所示的五種(阻塞和阻塞掛起同為一個進程態(tài))。當進程創(chuàng)建后,LiteOS會為每一個進程分配進程空間,在該進程中只能操作自己進程空間的資源,無法操作除公共資源外的其他資源。在使用進程時,允許進程掛起,恢復,延時等操作,同時也可以設(shè)置某個進程調(diào)度優(yōu)先級和調(diào)度策略。當進程結(jié)束的時候,進程會主動釋放持有的進程資源,但該進程持有的pid資源需要通過父進程才能回收。LiteOS的進程狀態(tài)轉(zhuǎn)移如圖四所示。

  2.3LiteOS的進程優(yōu)先級管理

  進程是資源分配和獨立運行的基本單位,是操作系統(tǒng)的核心概念[7]。LiteOS內(nèi)核的進程模塊可以提供多個獨立進程,并實現(xiàn)了進程間通信和進程切換。LiteOS內(nèi)核中的進程采用搶占式調(diào)度機制,支持時間片輪轉(zhuǎn)調(diào)度方式和FIFO調(diào)度機制。LiteOS內(nèi)核的進程一共有32個優(yōu)先級(0-31),可被配置的進程優(yōu)先級共有22個,其最高優(yōu)先級為10,最低優(yōu)先級為31。高優(yōu)先級的進程可搶占低優(yōu)先級進程,低優(yōu)先級進程必須在高優(yōu)先級進程阻塞或結(jié)束后才能被CPU調(diào)度。

  3.片上可編程系統(tǒng)

  SOPC(SystemonProgrammableChip,可編程片上系統(tǒng)),即用可編程邏輯技術(shù)將整個系統(tǒng)集成到一塊芯片上。SOPC通常是指基于FPGA(Field-ProgrammableGateArray,現(xiàn)場可編程門陣列)的帶1個或多個軟核或者硬核微處理器以及一些外圍設(shè)備的片上系統(tǒng)SoC(SystemOnChip)[8]。SOPC的優(yōu)勢在于其在設(shè)計過程中,能夠快速高效地適應需求升級所帶來的硬件變更,以達到縮短開發(fā)周期,降低開發(fā)成本的目的。目前,主流的嵌入式軟核處理器有:NiosII處理器[9]和MicroBlaze[10]處理器以及ARM公司提供的軟核。筆者根據(jù)LiteOS提供的可運行平臺以及泛用性綜合考慮,最終選擇了使用ARM公司的Cortex-M3處理器。

  4.物聯(lián)網(wǎng)操作系統(tǒng)LiteOS在SOPC上的移植

  本文移植的平臺為來自Xilinx的ZYNQFPGA平臺。在FPGA內(nèi)部運行ARMCortex-M3內(nèi)核,并在此內(nèi)核上完成LiteOS的移植工作。與在傳統(tǒng)MCU上移植操作系統(tǒng)不同,在SOPC上移植操作系統(tǒng),需要先在FPGA上搭建移植平臺的環(huán)境。

  4.1基于FPGA的Cortex-M3軟核的搭建

  ARM公司的Cortex-M3軟處理器(下稱M3),具有低功耗、高性能、價格低的特點,因此在嵌入式方案設(shè)計領(lǐng)域得到了廣泛的應用[11]。基于FPGA搭建的M3軟處理器由于其自身軟核的特點,擁有非常多的配置項。筆者使用Vivado工具對M3進行搭建,M3軟處理器的配置如圖5所示。由于在M3軟處理器上移植LiteOS需要使用Keil進行在線調(diào)試和代碼文件燒錄,因此筆者在配置M3軟處理器時,保留了JTAG端口和串行通信端口,并通過AXI總線與其他模塊相連。M3內(nèi)核擁有多達256個中斷,筆者在此僅使用其中的76個。在2.1節(jié)中介紹了LiteOS的最小內(nèi)核僅需10k的內(nèi)存大小,因此這里給CM3內(nèi)核分配256k的flash內(nèi)存。M3軟處理器搭建的示意圖如圖6所示。

  4.2LiteOS在SOPC上的移植驗證

  為了驗證LiteOS在SOPC上的移植情況是否成功,筆者在ZYNQ開發(fā)板上通過對LiteOS的單/多任務創(chuàng)建進行移植驗證。在4.1節(jié)中,筆者在搭建Cortex-M3軟核時,將串行通信端口保留,并通過FPGA的可編程引腳直接連接至開發(fā)板上的CH340芯片上。根據(jù)在2.2節(jié)中介紹了LiteOS的任務創(chuàng)建方式,在LiteOS中創(chuàng)建任務需要使用LOS_KernelInit函數(shù)對內(nèi)核進行初始化,當初始化完成后,即可對任務進行初始化,并編寫串行通信輸出函數(shù),最終在任務啟動函數(shù)LOS_Start中啟動任務。

  通過對串行通信傳輸數(shù)據(jù)的獲取可知,輸出數(shù)據(jù)與程序內(nèi)部預設(shè)數(shù)據(jù)相同,Cortex-M3軟核已在LiteOS的控制下完成了單任務串口輸出驗證。

  5.結(jié)語

  本文介紹了華為LiteOS開源物聯(lián)網(wǎng)實時操作系統(tǒng)的基本原理,并針對LiteOS于運行在SOPC上的Cortex-M3嵌入式軟核的移植進行了說明。通過在LiteOS上運行的串行通信任務對LiteOS在SOPC上的運用方式進行了說明,取得一定的效果。對基于SOPC平臺構(gòu)建物聯(lián)網(wǎng)系統(tǒng)的設(shè)計有一定的參考價值。