日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]從分析重入堆棧的原理與不足出發(fā),通過(guò)把8051頁(yè)變量與重八問(wèn)題相聯(lián)系,提出基于頁(yè)的重入函數(shù),并設(shè)計(jì)一種實(shí)時(shí)性和安全性較好的基于頁(yè)的805l多任務(wù)模型。

摘要 從分析重入堆棧的原理與不足出發(fā),通過(guò)把8051頁(yè)變量與重八問(wèn)題相聯(lián)系,提出基于頁(yè)的重入函數(shù),并設(shè)計(jì)一種實(shí)時(shí)性和安全性較好的基于頁(yè)的805l多任務(wù)模型。從變量存取帶寬的角度,將該模型與重入堆棧方案進(jìn)行對(duì)比,確定新模型中變量存取速度可獲得最高為3.75倍的提升;最后列出一些設(shè)計(jì)上的限制及對(duì)策。
關(guān)鍵詞 805l 重入堆棧 多任務(wù)模型 實(shí)時(shí) 頁(yè)變量


    隨著8051微控制器性能的不斷提高,使用多任務(wù)操作系統(tǒng)對(duì)單片機(jī)進(jìn)行資源管理已成為當(dāng)代開(kāi)發(fā)的需要。由于受靜態(tài)鏈接的限制,8051系統(tǒng)的多任務(wù)開(kāi)發(fā)需要處理代碼重入(reentrance)的問(wèn)題。
    為了實(shí)現(xiàn)重入,通??梢岳肒eil C51的關(guān)鍵字reentrant,將函數(shù)聲明為重人類型。通過(guò)在重入堆棧分配局部變量,使函數(shù)具有可重入性;但該重入方案的實(shí)時(shí)性較差。
    為提高多任務(wù)系統(tǒng)的實(shí)時(shí)性,本文介紹一種新方案——基于頁(yè)的多任務(wù)模型。


1 重入函數(shù)的原理與不足
   
當(dāng)使用Kcil C51的關(guān)鍵字reentrant來(lái)指定函數(shù)屆性時(shí),即得重入函數(shù)(reentrant function)。
1.1 重入函數(shù)的原理
   
重入函數(shù)的原理是Keil C編譯器建立一個(gè)軟件操作的重入堆棧。重入函數(shù)能自動(dòng)為不同的調(diào)用者在重入堆棧中分配獨(dú)立局部變量,使函數(shù)具備重入性。
    變量分配過(guò)程如圖l所示,函數(shù)人口首先申請(qǐng)存儲(chǔ)空間。函數(shù)返回前,必須將所申請(qǐng)的存儲(chǔ)空間歸還。變量分配和回收的位置都是重入堆棧的棧頂。
1.2 重入函數(shù)的不足
   
重入堆棧的最大缺點(diǎn)為效率低,Keil C51用戶手冊(cè)中已有明確記載。
    由圖l可作以下分析:首先,每次使用局部變量都需要計(jì)算變量地址,大大降低了變量存取速度,也消耗了處理器時(shí)間;其次,因?yàn)橹厝攵褩J羌冘浖?shí)現(xiàn)的,因此反復(fù)進(jìn)行的堆棧操作使重入函數(shù)的實(shí)時(shí)性進(jìn)一步惡化。

2 基于頁(yè)的多任務(wù)模型原理與實(shí)現(xiàn)
2.1 原理
   
解決函數(shù)重入的關(guān)鍵在于局部變量的分配,可以從8051存儲(chǔ)器類型的分析和選擇入手。
    8051控制器能直接尋址的存儲(chǔ)器類型很豐富。在這些類型中,我們注意到了頁(yè)變量(pdata)及其與眾不同的特性。
(1)頁(yè)變量pdata
    根據(jù)Intel公司的用戶手冊(cè),805l的頁(yè)存儲(chǔ)器就是指單字節(jié)地址方式操作的外部存儲(chǔ)器。使用單字節(jié)地址方式時(shí),允許使用P2對(duì)外部數(shù)據(jù)來(lái)分頁(yè),該方式的操作指令為“MOVX@Ri”。指令中R0或R1提供頁(yè)內(nèi)地址(低8位地址),P2寄存器隱藏地提供頁(yè)地址(高8位地址)。
    單字節(jié)地址方式將8051的64 KB外部存儲(chǔ)器分成256個(gè)頁(yè)面,如圖2所示。其硬件特征如下:①系統(tǒng)的256個(gè)頁(yè)面的存儲(chǔ)結(jié)構(gòu)完全一致;②工作頁(yè)面可以被指定為這256頁(yè)中的任意一頁(yè);③頁(yè)地址由P2隱式提供給地址總線,且頁(yè)地址可以由程序修改。

    工具方面,Keil C51專用關(guān)鍵字pdata表示單字節(jié)方式尋址的外部數(shù)據(jù)類型,pdata變量即頁(yè)變量。編譯后的頁(yè)變量具有以下特性:①頁(yè)變量操作嚴(yán)格對(duì)應(yīng)單字節(jié)地址方式;②頁(yè)變量全部轉(zhuǎn)換成了靜態(tài)頁(yè)內(nèi)地址。
(2)頁(yè)函數(shù)
   
根據(jù)頁(yè)變量性質(zhì),只要函數(shù)的所有局部變量都被指定為頁(yè)變量類型,那么,函數(shù)所生成的代碼就可以工作于系統(tǒng)任一頁(yè)面上。
    當(dāng)操作系統(tǒng)為一個(gè)函數(shù)分配多個(gè)頁(yè)面時(shí),該函數(shù)與每一個(gè)頁(yè)面上的局部變量均構(gòu)成一個(gè)進(jìn)程。
    與重入函數(shù)不同,這類函數(shù)本身不能自動(dòng)分配變量,因此沒(méi)有重入性。只有在操作系統(tǒng)的協(xié)助下,為其分配工作頁(yè)后,頁(yè)函數(shù)才是可重入的。頁(yè)函數(shù)中變量使用靜態(tài)地址,因此其存取速度得到大幅提升,改善了系統(tǒng)的實(shí)時(shí)性。
    為區(qū)別Keil C51定義的重入函數(shù)(reentrant func-tion),我們稱這種只使用頁(yè)變量的函數(shù)為“基于頁(yè)的重入函數(shù)(page-based reentrant function)”,簡(jiǎn)稱為“頁(yè)函數(shù)”。
2.2 實(shí)現(xiàn)
   
根據(jù)原理分析中的可行性,筆者設(shè)計(jì)了名為Celia的基于頁(yè)的占先式8051多任務(wù)調(diào)度內(nèi)核。沿用μC/OS-II的結(jié)構(gòu)框圖與處理流程,在TCB(Task Control Block,任務(wù)控制塊)中增加一個(gè)字節(jié)的頁(yè)面字段,并改寫了部分程序。有μC/OS-II為參照,使該調(diào)度內(nèi)核的設(shè)計(jì)可以很快完成。經(jīng)過(guò)在以W78P438為核心的平臺(tái)上實(shí)測(cè),該系統(tǒng)調(diào)度正常,程序運(yùn)行正確。這證明該重入方案可行。

3 基于頁(yè)的多任務(wù)模型性能分析
   
基于頁(yè)的多任務(wù)模型的程序結(jié)構(gòu)與μC/OS-II基本一致,其區(qū)別主要是頁(yè)函數(shù)與重入函數(shù)的區(qū)別,因此,這里主要分析頁(yè)變量存取與重入堆棧變量存取的性能對(duì)比。
3.1 優(yōu)點(diǎn)
(1)更高的變量存取帶寬
    8051為8位總線接口,單字節(jié)存取是其基本操作。研究單字節(jié)變量的存取帶寬可以從根本上說(shuō)明頁(yè)變量的優(yōu)點(diǎn)。
    805l系統(tǒng)操作外部存儲(chǔ)器使用的是MOVX指令。執(zhí)行該指令需要2個(gè)機(jī)器周期。在標(biāo)準(zhǔn)8051中,1個(gè)機(jī)器周期為12/fOSC,則總線帶寬如式(1)所示。其中fOSC為晶振頻率。

   
    如圖l,重入函數(shù)操作單字節(jié)變量i=0xaa,共需要15個(gè)機(jī)器周期。其中僅計(jì)算變量地址就需要12個(gè)機(jī)器周期。因此,重入堆棧的實(shí)際存取帶寬如式(2)所示。

   

    相對(duì)地,頁(yè)函數(shù)中變量地址是確定的。因?yàn)椴恍枰?jì)算地址的額外操作,其變量操作速度比重入堆棧有大幅提高。如圖3所示,頁(yè)函數(shù)中操作單字節(jié)變量只需要4個(gè)機(jī)器周期。頁(yè)變最的實(shí)際存取帶寬如式(3):

   

    各種帶寬的對(duì)比如下:

   
    進(jìn)一步分析可知,操作多字節(jié)變量時(shí),重入函數(shù)也只需要計(jì)算一次變量地址。故進(jìn)行單字節(jié)變量存取時(shí),重入堆棧的存取帶寬就是最低值。
    綜上所述,相對(duì)重入堆棧,存取單字節(jié)變量過(guò)程中,頁(yè)函數(shù)的帶寬加速比達(dá)到最大值Rmax=3.75,如式(4)所示。這表示相對(duì)于過(guò)去的重入函數(shù),頁(yè)函數(shù)具有更高的執(zhí)行效率和實(shí)時(shí)性。

   
    另外,如果頁(yè)函數(shù)不需要計(jì)算和操作重入堆棧指針,則不需要圖1中函數(shù)入口和出口處的指針操作(C?ADDXBP),可再次節(jié)省22個(gè)(首尾各11)指令周期。
(2)較好的安全性
    配置頁(yè)面的工作是由操作系統(tǒng)完成的。在使用基于頁(yè)的多任務(wù)開(kāi)發(fā)中,任務(wù)本身不能更換頁(yè)面;因此,私有變量的操作只在當(dāng)前頁(yè)進(jìn)行,不會(huì)影響到其他頁(yè)或其他任務(wù)。這樣的程序封裝體現(xiàn)了較好的安全性。
3.2 存在問(wèn)題與解決方法
(1)容量的限制
    8051的硬件決定了頁(yè)面大小為256字節(jié),不可變更。這使得“頁(yè)面容量限制”成為基于頁(yè)的多任務(wù)開(kāi)發(fā)中最需要考慮的問(wèn)題。
    存儲(chǔ)器的一頁(yè)為256字節(jié),與最小模式下8051的內(nèi)部數(shù)據(jù)空間(IDATA空間)大小相同。因此,筆者認(rèn)為頁(yè)變量的256字節(jié)能滿足最小模式任務(wù)的需要。
    對(duì)于需求超過(guò)256字節(jié)的任務(wù),可在頁(yè)面外的外部存儲(chǔ)器中申請(qǐng)后備空間。只要指向后備空間的指針在頁(yè)面內(nèi),則該后備空間仍是私有的,滿足重入條件,其結(jié)構(gòu)示意圖如圖4所示。雖然后備存取區(qū)使用指針操作,但不需要計(jì)算變量地址,因此后備存儲(chǔ)區(qū)存取速度優(yōu)于重入堆棧。

(2)工具的限制
   
目前,Keil C51開(kāi)發(fā)工具不提供多任務(wù)以及多頁(yè)面支持。這主要體現(xiàn)在兩點(diǎn):
    ①需要新的函數(shù)庫(kù)?,F(xiàn)有的大量函數(shù)庫(kù)不支持頁(yè)函數(shù)方式重入。準(zhǔn)確地說(shuō),大部分函數(shù)庫(kù)不支持任何方式的重入——即使使用重入堆棧,函數(shù)庫(kù)問(wèn)題也依然存在。目前的解決方法只有程序員根據(jù)需要編寫新的頁(yè)函數(shù)庫(kù)。
    ②一個(gè)項(xiàng)目中只允許存在一個(gè)pdata頁(yè)面,不能按任務(wù)將變量安排在不同的邏輯頁(yè)面上。其后果是,多任務(wù)開(kāi)發(fā)中,編譯鏈接工具只在同一個(gè)頁(yè)面中分配所有任務(wù)的頁(yè)變量,導(dǎo)致存儲(chǔ)器迅速溢出。
    問(wèn)題②的解決方案是:為使每個(gè)任務(wù)具有自己的工作頁(yè),為每個(gè)任務(wù)單獨(dú)建立工程,并使用COMPACT方式進(jìn)行編譯。各個(gè)任務(wù)工程之間和操作系統(tǒng)之間使用絕對(duì)地址表傳遞系統(tǒng)調(diào)用和任務(wù)入口地址。絕對(duì)地址表是對(duì)一些系統(tǒng)調(diào)用的約定地址。
    這些不便之處是暫時(shí)的、可克服的。


結(jié)語(yǔ)
    8051主要應(yīng)用領(lǐng)域?yàn)閷?shí)時(shí)控制,因此努力提高系統(tǒng)實(shí)時(shí)性是開(kāi)發(fā)者不斷追求的目標(biāo)。筆者從提高實(shí)時(shí)性的角度出發(fā),提出了一種基于頁(yè)的多任務(wù)模型。相對(duì)于目前重入堆棧多任務(wù)模型,它具有較好的實(shí)時(shí)性,也是處理重入問(wèn)題的一種新思路。
    本模型已經(jīng)過(guò)Keil C5l仿真工具的一般性測(cè)試,并在W78P438芯片上實(shí)測(cè)成功,相信其結(jié)果適用于全部8051及兼容系列??紤]到8051依然廣泛應(yīng)用在多任務(wù)開(kāi)發(fā)中,本文中的新模型值得推廣。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

相比國(guó)內(nèi)視頻平臺(tái)的偽4K超高清視頻,谷歌油管提供的4K視頻質(zhì)量很好,帶寬不是問(wèn)題的話,看4K視頻很爽,而且谷歌現(xiàn)在又恢復(fù)良心政策,4K影視內(nèi)容不再局限高級(jí)會(huì)員,每年能省近千元費(fèi)用。情況是這樣的,雖然谷歌提供了4K視頻畫質(zhì)...

關(guān)鍵字: PREMIUM 帶寬 超高清視頻

要問(wèn)機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來(lái)年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開(kāi)發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

單片機(jī)

21600 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉