国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MPC8548E的嵌入式實(shí)時(shí)系統(tǒng)自舉優(yōu)化設(shè)計(jì)?

2012-03-31 19:46孫亮楊斌鐘瑜西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院成都6003中國西南電子技術(shù)研究所成都60036
電訊技術(shù) 2012年2期
關(guān)鍵詞:內(nèi)核應(yīng)用程序內(nèi)存

孫亮,楊斌,鐘瑜(.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,成都6003 .中國西南電子技術(shù)研究所,成都60036)

基于MPC8548E的嵌入式實(shí)時(shí)系統(tǒng)自舉優(yōu)化設(shè)計(jì)?

孫亮1,楊斌1,鐘瑜2
(1.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,成都610031 2.中國西南電子技術(shù)研究所,成都610036)

板級(jí)支持包(BSP)是嵌入式系統(tǒng)中聯(lián)系操作系統(tǒng)與硬件平臺(tái)的橋梁。以PowerPC體系架構(gòu)下的MPC8548E的微處理器硬件為平臺(tái),研究了VxWorks操作系統(tǒng)的啟動(dòng)過程,并從BSP的總體架構(gòu)、存儲(chǔ)空間的地址分配、運(yùn)行過程等方面進(jìn)行分析,提出了一種新的策略來優(yōu)化實(shí)時(shí)操作系統(tǒng)啟動(dòng)時(shí)間,通過實(shí)驗(yàn)證明此方法可行且安全,具有一定的適用性。

嵌入式系統(tǒng);啟動(dòng)時(shí)間;PowerPC體系;板級(jí)支持包;自舉;優(yōu)化設(shè)計(jì)

1 引言

在目前嵌入式系統(tǒng)中,嵌入式設(shè)備從上電到操作系統(tǒng)完全啟動(dòng)及應(yīng)用程序的加載需要10 s左右的時(shí)間,這相對(duì)于家庭電腦來說是一個(gè)很不錯(cuò)的啟動(dòng)時(shí)間,然而相對(duì)一些需要實(shí)時(shí)、快速運(yùn)行應(yīng)用程序的軍事、航空、航天等要求可靠性較高的工業(yè)應(yīng)用來說,啟動(dòng)時(shí)間顯然已經(jīng)無法滿足其對(duì)快速加載并使用應(yīng)用程序的要求,故需要對(duì)操作系統(tǒng)的啟動(dòng)過程進(jìn)行研究、分析、更改,使得嵌入式平臺(tái)能夠在短時(shí)間內(nèi)啟動(dòng)并運(yùn)行應(yīng)用程序,達(dá)到系統(tǒng)要求。

BSP是板極支持包(Board Supporting Packet)的縮寫。它是操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序,通過這段小程序,可以實(shí)現(xiàn)對(duì)所用的外設(shè)接口及功能部件進(jìn)行初始化,建立內(nèi)存空間映射圖,為操作系統(tǒng)內(nèi)核的后續(xù)載入提供軟件環(huán)境,故通過對(duì)BSP的研究能夠?qū)Σ僮飨到y(tǒng)啟動(dòng)時(shí)間進(jìn)行優(yōu)化。然而BSP是依賴于具體的硬件配置而實(shí)現(xiàn)[1],建立一個(gè)通用的BSP幾乎是不可能的。

BSP能夠支持一些系列的PowerPC體系,還能支持MIPS、x86、ARM、NIOS、XScale等諸多常用系列的處理器。BSP對(duì)VxWorks的支持非常完善,是嵌入式VxWorks的最佳選擇。BSP的主要功能是系統(tǒng)引導(dǎo)、操作系統(tǒng)接口功能、設(shè)備驅(qū)動(dòng)功能、上電自檢功能等。VxWorks5.5使用的是wind內(nèi)核,它具有支持多任務(wù)實(shí)時(shí)、內(nèi)核精簡、高效、穩(wěn)定和可移植性好等優(yōu)點(diǎn),專門應(yīng)用于具有實(shí)時(shí)性需求的嵌入式平臺(tái)。這里主要討論的是在以MPC8548E微處理器的系統(tǒng)開發(fā)板,設(shè)計(jì)并實(shí)現(xiàn)特定的BSP,并利用實(shí)現(xiàn)好的BSP去引導(dǎo)VxWorks操作系統(tǒng)達(dá)到操作系統(tǒng)啟動(dòng)時(shí)間優(yōu)化的效果。

2 嵌入式實(shí)時(shí)系統(tǒng)硬件平臺(tái)的設(shè)計(jì)

以PowerPC體系結(jié)構(gòu)的Freescale PPC8548E微處理器為硬件平臺(tái)核心[2],其內(nèi)部包含兩個(gè)處理模塊:一個(gè)高性能嵌入式PowerPC e500內(nèi)核和一個(gè)通信處理模塊(CPM)。硬件的配置如圖1所示。

3 系統(tǒng)啟動(dòng)過程及存儲(chǔ)空間的地址規(guī)劃設(shè)計(jì)

BSP是系統(tǒng)用來管理外設(shè)[3]的部分,主要由初始化程序和驅(qū)動(dòng)程序兩部分組成。初始化是指從系統(tǒng)上電復(fù)位開始直到wind kernel和usrRoot根任務(wù)啟動(dòng)的這段時(shí)間,系統(tǒng)的執(zhí)行過程。驅(qū)動(dòng)程序就是一些包含I/O操作的子函數(shù)。

VxWorks內(nèi)核[4]可分為3種:可加載類型內(nèi)核(Loadable Image)、帶有ROM啟動(dòng)功能的壓縮或不壓縮內(nèi)核(ROM-based Image)以及駐留ROM的內(nèi)核(ROM-resident Image)。對(duì)于可引導(dǎo)型帶ROM啟動(dòng)的不壓縮內(nèi)核的系統(tǒng)啟動(dòng)過程來說,由于基于PowerPC處理器的系統(tǒng)上電后會(huì)自動(dòng)加載并運(yùn)行位于0地址的指令,故在0地址處通常應(yīng)放置一條跳轉(zhuǎn)指令,它跳轉(zhuǎn)到位于romInit.s中的初始化入口函數(shù)romInit(),接著跳轉(zhuǎn)到位于bootInit.c中的romStart()函數(shù),romStart()將駐留ROM的VxWorks映像(代碼段、數(shù)據(jù)段和BSS段)拷貝到RAM中,接下來開始運(yùn)行VxWorks內(nèi)核的入口程序sysInit(),sysInit()實(shí)現(xiàn)一些與romInit()函數(shù)類似的功能后,再開始調(diào)用Vx-Works內(nèi)核的第一個(gè)C函數(shù)usrInit(),usrInit()會(huì)根據(jù)BSP的配置,調(diào)用sysHwInit()和sysHwInit2()等,最終完成整個(gè)內(nèi)核的前期初始化工作。在usrInit()的最后,由kernelInit()激活多任務(wù)環(huán)境,并且創(chuàng)建一個(gè)任務(wù)來安裝設(shè)備驅(qū)動(dòng)程序。同時(shí)啟動(dòng)設(shè)備,初始化VxWorks系統(tǒng)庫,調(diào)用應(yīng)用程序,啟動(dòng)完成。該平臺(tái)使用的是虛地址方式[5],通過訪問虛地址空間,然后通過虛地址實(shí)地址映射來訪問外設(shè)和存儲(chǔ)器。

4 實(shí)時(shí)系統(tǒng)自舉時(shí)間分析

通過對(duì)BSP啟動(dòng)過程分析,并使用sysprintk(msg)插入到各個(gè)程序執(zhí)行段,該函數(shù)能夠在系統(tǒng)內(nèi)核還未啟動(dòng)、C語言環(huán)境還未建立時(shí),打印串口信息,通過記錄時(shí)間發(fā)現(xiàn)對(duì)于PowerPC8548E的開發(fā)板vxWorks系統(tǒng)的啟動(dòng)時(shí)間需要10 s左右,然而嵌入式產(chǎn)品在從上電到啟動(dòng)用戶程序有特殊要求的,10 s時(shí)間顯得太長。通過了解VxWorks OS的啟動(dòng)步驟,研讀BSP找到了花費(fèi)時(shí)間較多的幾項(xiàng)系統(tǒng)工作,如表1所示。

(1)內(nèi)存的清零操作是一項(xiàng)相對(duì)比較耗時(shí)的操作,PowerPC8548E中的BSP是通過函數(shù)bootClear()來進(jìn)行內(nèi)存清零操作,對(duì)PowerPC8548E而言,這個(gè)操作大約需要3.1 s,耗時(shí)非常巨大,是一個(gè)時(shí)間優(yōu)化的大項(xiàng)。

(2)網(wǎng)絡(luò)啟動(dòng)部分是另外的一個(gè)非常耗時(shí)的操作,網(wǎng)絡(luò)啟動(dòng)需要對(duì)網(wǎng)卡進(jìn)行初始化,以及各種網(wǎng)絡(luò)協(xié)議的配置。實(shí)驗(yàn)發(fā)現(xiàn),大約需要0.9 s來對(duì)網(wǎng)絡(luò)初始化,這對(duì)于一個(gè)需要快速啟動(dòng)操作來說是一個(gè)不可容忍的時(shí)間,故這也是需要進(jìn)行優(yōu)化的。

(3)VxWorks內(nèi)存管理是一個(gè)最重要的裁剪部分,它消耗了巨大的時(shí)間,對(duì)于PowerPC8548E,其內(nèi)核是e500,并不支持BAT(粗粒度映射)模式的MMU和TLB的傳統(tǒng)的內(nèi)存管理辦法。通過研究可以找到以下解決辦法:縮小頁表,即縮小內(nèi)存總數(shù);將頁表存為文件,啟動(dòng)時(shí)直接讀取,跳過建立頁表部分;轉(zhuǎn)換思路,從主要使用頁表映射轉(zhuǎn)換為主要使用BAT映射。然而MPC8548E使用的是e500的內(nèi)核,無法支持BAT模式,將頁表轉(zhuǎn)為文件同樣花費(fèi)時(shí)間較大,故選擇縮小內(nèi)存映射的總數(shù)來減少M(fèi)MU初始化時(shí)間。

(4)PCI的初始化是一個(gè)值得注意的項(xiàng),程序中PCI的使用是用枚舉的方法進(jìn)行的,通過三重的循環(huán)去查找,首先進(jìn)行256次的總線號(hào)、32次的設(shè)備號(hào)以及8次的功能號(hào)進(jìn)行三重循環(huán)。然而,事實(shí)上一般的嵌入式產(chǎn)品都不會(huì)使用到這么多的總線號(hào)、設(shè)備號(hào)和功能號(hào)。

5 實(shí)時(shí)系統(tǒng)自舉優(yōu)化策略分析

5.1 策略一

BSP啟動(dòng)過程如圖3所示,對(duì)主要耗時(shí)的4個(gè)部分逐個(gè)進(jìn)行裁剪。

(1)內(nèi)存清零操作,可以直接屏蔽內(nèi)存清零操作,即bootClear()函數(shù)進(jìn)行注釋。

(2)網(wǎng)絡(luò)啟動(dòng)無法更改,因?yàn)樵撉度胧较到y(tǒng)需要通過網(wǎng)口進(jìn)行在線更新和通信。

(3)MMU初始化是一個(gè)關(guān)鍵的地方,通過縮小表的尺寸縮小耗時(shí),故對(duì)一些不需要地址分配不進(jìn)行映射。

(4)PCI初始化可以進(jìn)行相應(yīng)的更改,PCI上掛載的設(shè)備是很少的,故可對(duì)總線號(hào)、功能號(hào)和設(shè)備號(hào)進(jìn)行相應(yīng)的縮小以縮減時(shí)間。

5.2 策略二

策略一在安全性方面有所降低,因?yàn)椴粚?duì)內(nèi)存進(jìn)行零初始化,可能會(huì)在以后程序運(yùn)行時(shí)出現(xiàn)異常,再者通過更改MMU初始化也可能會(huì)對(duì)地址映射出現(xiàn)問題,是不具備安全性。方法二是在方法一的策略上進(jìn)行改進(jìn)。系統(tǒng)的主要目的是在1.5 s左右能夠啟動(dòng)應(yīng)用程序,既然如此,可以啟動(dòng)一個(gè)最小的操作系統(tǒng)環(huán)境,然后直接加載用戶程序,將一些其他的初始化交給用戶程序后續(xù)去處理,這樣既保證了安全性又能更快的啟動(dòng)操作系統(tǒng)。啟動(dòng)過程如圖4所示:在用戶程序usrAppInit(void){}中將未初始化項(xiàng)進(jìn)行初始化,內(nèi)存二次清零操作;修改sysPhys-MemDesc數(shù)組來更改MMU映射;再者就是網(wǎng)絡(luò)初始化啟動(dòng),最終完成整個(gè)啟動(dòng)。

通過對(duì)策略一和策略二兩種不同的啟動(dòng)方式進(jìn)行啟動(dòng)時(shí)間優(yōu)化,并通過測試,結(jié)果如表2所示(表中數(shù)據(jù)已經(jīng)經(jīng)過處理)。

實(shí)驗(yàn)數(shù)據(jù)顯示,策略二的優(yōu)化方法是最有效也是最安全的,能夠在1.7 s的時(shí)間內(nèi)啟動(dòng)應(yīng)用程序,達(dá)到了嵌入式系統(tǒng)快速啟動(dòng)應(yīng)用程序的要求。

6 結(jié)束語

每種不同的CPU體系結(jié)構(gòu)都有不同的引導(dǎo)程序和操作系統(tǒng),引導(dǎo)程序是嚴(yán)格地依附于你所用的特定的硬件資源[6],但它最基本的功能是大致相同的,都分為兩個(gè)步驟,硬件初始化和引導(dǎo)、裝載操作系統(tǒng)。通過從BSP的總體構(gòu)架去分析操作系統(tǒng)啟動(dòng)過程,從而對(duì)操作系統(tǒng)啟動(dòng)時(shí)間進(jìn)行分析優(yōu)化,通過列舉一般操作系統(tǒng)啟動(dòng)時(shí)間優(yōu)化策略的分析,提出一種新的操作系統(tǒng)啟動(dòng)優(yōu)化策略,通過實(shí)驗(yàn)對(duì)比發(fā)現(xiàn)新策略較原有策略在BSP設(shè)計(jì)、啟動(dòng)時(shí)間優(yōu)化、安全性等方面有較大改進(jìn),并對(duì)進(jìn)一步優(yōu)化更為復(fù)雜的系統(tǒng)的啟動(dòng)時(shí)間優(yōu)化具有很好的實(shí)用價(jià)值和參考價(jià)值。

[1]WindRiverSystem Inc.VxWorks BSP Developer’sGuide5.5[M].[S.l.]:WindRiverSystem Inc.,2002.

[2]Freescale Semiconductor.MPC8548E PowerQUICCTM III Integrated Processor Family Reference Manual[M]//MPC8548ERM Datasheet.East Kilbride,USA:Freescale-Semiconductor Inc.,2007:1035-1222.

[3]岳曉東,蔡本華,賀占莊.基于實(shí)時(shí)嵌入式系統(tǒng)的BSP構(gòu)建技術(shù)[J].微電子學(xué)與計(jì)算機(jī),2006,23(5):105-108. YUE Xiao-dong,CAI Ben-hua,HE Zhan-zhuang.The Technology Based On Building a BSP For Real-time Embedded System[J].Microelectronics&Computer,2006,23(5):105-108.(in Chinese)

[4]袁浩,肖沙里.基于MPC8260的VxWorks系統(tǒng)的BSP實(shí)現(xiàn)[J].微處理機(jī),2009,30(1):170-172. YUAN Hao,XIAO Sha-li.Realization of VxWorks′s BSP Based on MPC8260[J].Microprocessors,2009,30(1):170-172.(in Chinese)

[5]蘇義鑫,黃強(qiáng).面向S3C44B0X的VxWorks BSP設(shè)計(jì)[J].電子原器件應(yīng)用,2007,9(7):17-20. SU Yi-xin,HUANG Qiang.Design of VxWorks BSP Based on S3C44B0X[J].Electronic Component&Device Applications,2007,9(7):17-20.(in Chinese)

[6]楊斌.嵌入式系統(tǒng)原理及應(yīng)用[M].成都:西南交通大學(xué)出版社,2006. YANG Bin.Principle and Application of Embedded System[M].Chengdu:Southwest Jiaotong University Press,2006.(in Chinese)

SUN Liang was born in Jishui,Jiangxi Province,in 1988.He received the B.S.degree from Sichuan Normal University in 2009. He is now a graduate student.His research interests include embedded system and distributed system.

Email:biy395626983@163.com

楊斌(1955—),男,四川人,碩士,教授,主要研究方向?yàn)榍度胧较到y(tǒng)與分布式系統(tǒng)、信號(hào)處理;

YANG Bin was born in Sichuan Province,in 1955.He is now a professor with the M.S.degree.His research interests include embedded system and distributed system,signal processing.

Email:byang@home.swjtu.edu.cn.

鐘瑜(1979—),男,貴州人,高級(jí)工程師,主要從事信號(hào)處理方面的工作。

ZHONG Yu was born in Guizhou Province,in 1979.He is now a senior engineer.His research concerns signal processing.

Email:jade.Zhong@hotmail.com

Optimized Design of Embedded Real-time System Bootloading Based on MPC8548E

SUN Liang1,YANG Bin1,ZHONG Yu2
(1.School of Information Science and Technology,Southwest Jiaotong University,Chengdu 610031,China;2.Southwest China Institute of Electronic Technology,Chengdu 610036,China)

Board Supporting Packet(BSP)is the bridge between the operating system and the hardware platform in an embedded system.This paper describes how to shorten the VxWorks operating system startup time based on MPC8548E under PowerPC architecture,analyses and designs the BSP from the overall architecture and the address assigned ofstorage and the running process,and proposes a new policy which can optimize the startup time of realtime operating system.Finally,it proves the feasibility and security of this method by experiment.This method has a certain commonality and flexibility.

embedded system;startup time;PowerPC architecture;board supporting packet;bootloading;optimized design

TP316.2

A

10.3969/j.issn.1001-893x.2012.02.025

孫亮(1988—),男,江西吉水人,2009年于四川師范大學(xué)獲學(xué)士學(xué)位,現(xiàn)為碩士研究生,主要研究方向?yàn)榍度胧较到y(tǒng)與分布式系統(tǒng);

1001-893X(2012)02-0241-04

2011-08-08;

2011-11-23

猜你喜歡
內(nèi)核應(yīng)用程序內(nèi)存
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
刪除Win10中自帶的應(yīng)用程序
“春夏秋冬”的內(nèi)存
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
谷歌禁止加密貨幣應(yīng)用程序
微生物內(nèi)核 生態(tài)型農(nóng)資
內(nèi)存搭配DDR4、DDR3L還是DDR3?
基于內(nèi)存的地理信息訪問技術(shù)
三星電子將開設(shè)應(yīng)用程序下載商店