男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
基于頁的8051多任務模型
基于頁的8051多任務模型
 更新時間:2008-8-19 11:30:03  點擊數:58
【字體: 字體顏色
  摘要 從分析重入堆棧的原理與不足出發,通過把8051頁變量與重八問題相聯系,提出基于頁的重入函數,并設計一種實時性和安全性較好的基于頁的805l多任務模型。從變量存取帶寬的角度,將該模型與重入堆棧方案進行對比,確定新模型中變量存取速度可獲得最高為3.75倍的提升;最后列出一些設計上的限制及對策。
  關鍵詞 805l 重入堆棧 多任務模型 實時 頁變量


  隨著8051微控制器性能的不斷提高,使用多任務操作系統對單片機進行資源管理已成為當代開發的需要。由于受靜態鏈接的限制,8051系統的多任務開發需要處理代碼重入(reentrance)的問題。
為了實現重入,通常可以利用Keil C51的關鍵字reentrant,將函數聲明為重人類型。通過在重入堆棧分配局部變量,使函數具有可重入性;但該重入方案的實時性較差。
為提高多任務系統的實時性,本文介紹一種新方案——基于頁的多任務模型。


1 重入函數的原理與不足
  當使用Kcil C51的關鍵字reentrant來指定函數屆性時,即得重入函數(reentrant function)。
1.1 重入函數的原理
  重入函數的原理是Keil C編譯器建立一個軟件操作的重入堆棧。重入函數能自動為不同的調用者在重入堆棧中分配獨立局部變量,使函數具備重入性。
  變量分配過程如圖l所示,函數人口首先申請存儲空間。函數返回前,必須將所申請的存儲空間歸還。變量分配和回收的位置都是重入堆棧的棧頂。
1.2 重入函數的不足
  重入堆棧的最大缺點為效率低,Keil C51用戶手冊中已有明確記載。
  由圖l可作以下分析:首先,每次使用局部變量都需要計算變量地址,大大降低了變量存取速度,也消耗了處理器時間;其次,因為重入堆棧是純軟件實現的,因此反復進行的堆棧操作使重入函數的實時性進一步惡化。
        


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


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


3 基于頁的多任務模型性能分析
  基于頁的多任務模型的程序結構與μC/OS-II基本一致,其區別主要是頁函數與重入函數的區別,因此,這里主要分析頁變量存取與重入堆棧變量存取的性能對比。
3.1 優點
(1)更高的變量存取帶寬
  8051為8位總線接口,單字節存取是其基本操作。研究單字節變量的存取帶寬可以從根本上說明頁變量的優點。
  805l系統操作外部存儲器使用的是MOVX指令。執行該指令需要2個機器周期。在標準8051中,1個機器周期為12/fOSC,則總線帶寬如式(1)所示。其中fOSC為晶振頻率。
         

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


  相對地,頁函數中變量地址是確定的。因為不需要計算地址的額外操作,其變量操作速度比重入堆棧有大幅提高。如圖3所示,頁函數中操作單字節變量只需要4個機器周期。頁變最的實際存取帶寬如式(3):

        

                       
[1] [2]  下一頁
  • 上一篇: HT46R65的預付費熱能表設計
  • 下一篇: 串行及并行A/D轉換器在高速數據采集中的采樣差別性分析
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 两当县| 宜州市| 岑巩县| 温宿县| 宕昌县| 大兴区| 西藏| 沅江市| 榆林市| 石林| 兴城市| 皮山县| 历史| 南乐县| 霞浦县| 梨树县| 永福县| 苗栗市| 郧西县| 南江县| 石嘴山市| 石阡县| 通山县| 泊头市| 德兴市| 通州市| 平武县| 错那县| 申扎县| 乐安县| 博兴县| 八宿县| 饶河县| 清苑县| 彭山县| 佛冈县| 田阳县| 清丰县| 天镇县| 乌拉特前旗| 镇原县|