浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 單 片 機(jī)

基于頁的8051多任務(wù)模型

發(fā)布時(shí)間:2008/8/16 0:00:00 訪問次數(shù):564

  從分析重入堆棧的原理與不足出發(fā),通過把8051頁變量與重八問題相聯(lián)系,提出基于頁的重入函數(shù),并設(shè)計(jì)一種實(shí)時(shí)性和安全性較好的基于頁的805l多任務(wù)模型。

  從變量存取帶寬的角度,將該模型與重入堆棧方案進(jìn)行對比,確定新模型中變量存取速度可獲得最高為3.75倍的提升;最后列出一些設(shè)計(jì)上的限制及對策。
  
  隨著8051微控制器性能的不斷提高,使用多任務(wù)操作系統(tǒng)對單片機(jī)進(jìn)行資源管理已成為當(dāng)代開發(fā)的需要。由于受靜態(tài)鏈接的限制,8051系統(tǒng)的多任務(wù)開發(fā)需要處理代碼重入(reentrance)的問題。

  為了實(shí)現(xiàn)重入,通?梢岳胟eil c51的關(guān)鍵字reentrant,將函數(shù)聲明為重人類型。通過在重入堆棧分配局部變量,使函數(shù)具有可重入性;但該重入方案的實(shí)時(shí)性較差。

  為提高多任務(wù)系統(tǒng)的實(shí)時(shí)性,本文介紹一種新方案——基于頁的多任務(wù)模型。

  1 重入函數(shù)的原理與不足
  
  當(dāng)使用kcil c51的關(guān)鍵字reentrant來指定函數(shù)屆性時(shí),即得重入函數(shù)(reentrant function)。

  1.1 重入函數(shù)的原理
  
  重入函數(shù)的原理是keil c編譯器建立一個(gè)軟件操作的重入堆棧。重入函數(shù)能自動(dòng)為不同的調(diào)用者在重入堆棧中分配獨(dú)立局部變量,使函數(shù)具備重入性。
  
  變量分配過程如圖l所示,函數(shù)人口首先申請存儲(chǔ)空間。函數(shù)返回前,必須將所申請的存儲(chǔ)空間歸還。變量分配和回收的位置都是重入堆棧的棧頂。

  1.2 重入函數(shù)的不足
 
  重入堆棧的最大缺點(diǎn)為效率低,keil c51用戶手冊中已有明確記載。
  
  由圖l可作以下分析:首先,每次使用局部變量都需要計(jì)算變量地址,大大降低了變量存取速度,也消耗了處理器時(shí)間;其次,因?yàn)橹厝攵褩J羌冘浖䦟?shí)現(xiàn)的,因此反復(fù)進(jìn)行的堆棧操作使重入函數(shù)的實(shí)時(shí)性進(jìn)一步惡化。
        


  2 基于頁的多任務(wù)模型原理與實(shí)現(xiàn)

  2.1 原理
  

  解決函數(shù)重入的關(guān)鍵在于局部變量的分配,可以從8051存儲(chǔ)器類型的分析和選擇入手。
  
  8051控制器能直接尋址的存儲(chǔ)器類型很豐富。在這些類型中,我們注意到了頁變量(pdata)及其與眾不同的特性。

  (1)頁變量pdata
 
  根據(jù)intel公司的用戶手冊,805l的頁存儲(chǔ)器就是指單字節(jié)地址方式操作的外部存儲(chǔ)器。使用單字節(jié)地址方式時(shí),允許使用p2對外部數(shù)據(jù)來分頁,該方式的操作指令。指令中r0或r1提供頁內(nèi)地址(低8位地址),p2寄存器隱藏地提供頁地址(高8位地址)。
  
  單字節(jié)地址方式將8051的64 kb外部存儲(chǔ)器分成256個(gè)頁面,如圖2所示。其硬件特征如下:①系統(tǒng)的256個(gè)頁面的存儲(chǔ)結(jié)構(gòu)完全一致;②工作頁面可以被指定為這256頁中的任意一頁;③頁地址由p2隱式提供給地址總線,且頁地址可以由程序修改。
     

           

  工具方面,keil c51專用關(guān)鍵字pdata表示單字節(jié)方式尋址的外部數(shù)據(jù)類型,pdata變量即頁變量。編譯后的頁變量具有以下特性:①頁變量操作嚴(yán)格對應(yīng)單字節(jié)地址方式;②頁變量全部轉(zhuǎn)換成了靜態(tài)頁內(nèi)地址。

  (2)頁函數(shù)
  
  根據(jù)頁變量性質(zhì),只要函數(shù)的所有局部變量都被指定為頁變量類型,那么,函數(shù)所生成的代碼就可以工作于系統(tǒng)任一頁面上。
  
  當(dāng)操作系統(tǒng)為一個(gè)函數(shù)分配多個(gè)頁面時(shí),該函數(shù)與每一個(gè)頁面上的局部變量均構(gòu)成一個(gè)進(jìn)程。
  
  與重入函數(shù)不同,這類函數(shù)本身不能自動(dòng)分配變量,因此沒有重入性。只有在操作系統(tǒng)的協(xié)助下,為其分配工作頁后,頁函數(shù)才是可重入的。頁函數(shù)中變量使用靜態(tài)地址,因此其存取速度得到大幅提升,改善了系統(tǒng)的實(shí)時(shí)性。
  
  為區(qū)別keil c51定義的重入函數(shù)(reentrant func-tion),我們稱這種只使用頁變量的函數(shù)為“基于頁的重入函數(shù)(page-based reentrant function)”,簡稱為“頁函數(shù)”。

  2.2 實(shí)現(xiàn)
  
  根據(jù)原理分析中的可行性,筆者設(shè)計(jì)了名為celia的基于頁的占先式8051多任務(wù)調(diào)度內(nèi)核。沿用μc/os-ii的結(jié)構(gòu)框圖與處理流程,在tcb(task control block,任務(wù)控制塊)中增加一個(gè)字節(jié)的頁面字段,并改寫了部分程序。有μc/os-ii為參照,使該調(diào)度內(nèi)核的設(shè)計(jì)可以很快完成。經(jīng)過在以w78p438為核心的平臺(tái)上實(shí)測,該系統(tǒng)調(diào)度正常,程序運(yùn)行正確。這證明該重入方案可行。

  3 基于頁的多任務(wù)模型性能分析
  
  基于頁的多任務(wù)模型的程序結(jié)構(gòu)與μc/os-ii基本一致,其區(qū)別主要是頁函數(shù)與重入函數(shù)的區(qū)別,因此,這里主要分析頁變量存取與重入堆棧變量存取的性能對比。

  3.1 優(yōu)點(diǎn)

  (1)更高的變量存取

  從分析重入堆棧的原理與不足出發(fā),通過把8051頁變量與重八問題相聯(lián)系,提出基于頁的重入函數(shù),并設(shè)計(jì)一種實(shí)時(shí)性和安全性較好的基于頁的805l多任務(wù)模型。

  從變量存取帶寬的角度,將該模型與重入堆棧方案進(jìn)行對比,確定新模型中變量存取速度可獲得最高為3.75倍的提升;最后列出一些設(shè)計(jì)上的限制及對策。
  
  隨著8051微控制器性能的不斷提高,使用多任務(wù)操作系統(tǒng)對單片機(jī)進(jìn)行資源管理已成為當(dāng)代開發(fā)的需要。由于受靜態(tài)鏈接的限制,8051系統(tǒng)的多任務(wù)開發(fā)需要處理代碼重入(reentrance)的問題。

  為了實(shí)現(xiàn)重入,通?梢岳胟eil c51的關(guān)鍵字reentrant,將函數(shù)聲明為重人類型。通過在重入堆棧分配局部變量,使函數(shù)具有可重入性;但該重入方案的實(shí)時(shí)性較差。

  為提高多任務(wù)系統(tǒng)的實(shí)時(shí)性,本文介紹一種新方案——基于頁的多任務(wù)模型。

  1 重入函數(shù)的原理與不足
  
  當(dāng)使用kcil c51的關(guān)鍵字reentrant來指定函數(shù)屆性時(shí),即得重入函數(shù)(reentrant function)。

  1.1 重入函數(shù)的原理
  
  重入函數(shù)的原理是keil c編譯器建立一個(gè)軟件操作的重入堆棧。重入函數(shù)能自動(dòng)為不同的調(diào)用者在重入堆棧中分配獨(dú)立局部變量,使函數(shù)具備重入性。
  
  變量分配過程如圖l所示,函數(shù)人口首先申請存儲(chǔ)空間。函數(shù)返回前,必須將所申請的存儲(chǔ)空間歸還。變量分配和回收的位置都是重入堆棧的棧頂。

  1.2 重入函數(shù)的不足
 
  重入堆棧的最大缺點(diǎn)為效率低,keil c51用戶手冊中已有明確記載。
  
  由圖l可作以下分析:首先,每次使用局部變量都需要計(jì)算變量地址,大大降低了變量存取速度,也消耗了處理器時(shí)間;其次,因?yàn)橹厝攵褩J羌冘浖䦟?shí)現(xiàn)的,因此反復(fù)進(jìn)行的堆棧操作使重入函數(shù)的實(shí)時(shí)性進(jìn)一步惡化。
        


  2 基于頁的多任務(wù)模型原理與實(shí)現(xiàn)

  2.1 原理
  

  解決函數(shù)重入的關(guān)鍵在于局部變量的分配,可以從8051存儲(chǔ)器類型的分析和選擇入手。
  
  8051控制器能直接尋址的存儲(chǔ)器類型很豐富。在這些類型中,我們注意到了頁變量(pdata)及其與眾不同的特性。

  (1)頁變量pdata
 
  根據(jù)intel公司的用戶手冊,805l的頁存儲(chǔ)器就是指單字節(jié)地址方式操作的外部存儲(chǔ)器。使用單字節(jié)地址方式時(shí),允許使用p2對外部數(shù)據(jù)來分頁,該方式的操作指令。指令中r0或r1提供頁內(nèi)地址(低8位地址),p2寄存器隱藏地提供頁地址(高8位地址)。
  
  單字節(jié)地址方式將8051的64 kb外部存儲(chǔ)器分成256個(gè)頁面,如圖2所示。其硬件特征如下:①系統(tǒng)的256個(gè)頁面的存儲(chǔ)結(jié)構(gòu)完全一致;②工作頁面可以被指定為這256頁中的任意一頁;③頁地址由p2隱式提供給地址總線,且頁地址可以由程序修改。
     

           

  工具方面,keil c51專用關(guān)鍵字pdata表示單字節(jié)方式尋址的外部數(shù)據(jù)類型,pdata變量即頁變量。編譯后的頁變量具有以下特性:①頁變量操作嚴(yán)格對應(yīng)單字節(jié)地址方式;②頁變量全部轉(zhuǎn)換成了靜態(tài)頁內(nèi)地址。

  (2)頁函數(shù)
  
  根據(jù)頁變量性質(zhì),只要函數(shù)的所有局部變量都被指定為頁變量類型,那么,函數(shù)所生成的代碼就可以工作于系統(tǒng)任一頁面上。
  
  當(dāng)操作系統(tǒng)為一個(gè)函數(shù)分配多個(gè)頁面時(shí),該函數(shù)與每一個(gè)頁面上的局部變量均構(gòu)成一個(gè)進(jìn)程。
  
  與重入函數(shù)不同,這類函數(shù)本身不能自動(dòng)分配變量,因此沒有重入性。只有在操作系統(tǒng)的協(xié)助下,為其分配工作頁后,頁函數(shù)才是可重入的。頁函數(shù)中變量使用靜態(tài)地址,因此其存取速度得到大幅提升,改善了系統(tǒng)的實(shí)時(shí)性。
  
  為區(qū)別keil c51定義的重入函數(shù)(reentrant func-tion),我們稱這種只使用頁變量的函數(shù)為“基于頁的重入函數(shù)(page-based reentrant function)”,簡稱為“頁函數(shù)”。

  2.2 實(shí)現(xiàn)
  
  根據(jù)原理分析中的可行性,筆者設(shè)計(jì)了名為celia的基于頁的占先式8051多任務(wù)調(diào)度內(nèi)核。沿用μc/os-ii的結(jié)構(gòu)框圖與處理流程,在tcb(task control block,任務(wù)控制塊)中增加一個(gè)字節(jié)的頁面字段,并改寫了部分程序。有μc/os-ii為參照,使該調(diào)度內(nèi)核的設(shè)計(jì)可以很快完成。經(jīng)過在以w78p438為核心的平臺(tái)上實(shí)測,該系統(tǒng)調(diào)度正常,程序運(yùn)行正確。這證明該重入方案可行。

  3 基于頁的多任務(wù)模型性能分析
  
  基于頁的多任務(wù)模型的程序結(jié)構(gòu)與μc/os-ii基本一致,其區(qū)別主要是頁函數(shù)與重入函數(shù)的區(qū)別,因此,這里主要分析頁變量存取與重入堆棧變量存取的性能對比。

  3.1 優(yōu)點(diǎn)

  (1)更高的變量存取

相關(guān)IC型號

熱門點(diǎn)擊

 

推薦技術(shù)資料

硬盤式MP3播放器終級改
    一次偶然的機(jī)會(huì)我結(jié)識了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!