利用OS任務調度來實現(xiàn)嵌入式數(shù)據(jù)管理[4]

互聯(lián)網(wǎng)技術 責任編輯:skysear 2012-03-19

摘要:2.3.2數(shù)據(jù)存儲數(shù)據(jù)存儲前先要找到優(yōu)先級較高的空記錄,其流程為先找到含空記錄的頁號,然后在該頁中查找空記錄號,最后根據(jù)頁號和空記錄號計算出當前可用于存儲且優(yōu)先級較高的存儲空間的序號。詳細程序如下:High3=OSUnMapTbl[OSRdyPageGrp];//高3位Low3=OSUnMapTbl[OSRdyPageTbl][High3]];//低3位PrioPage=(High3《3)+Low3;//


2.3.2  數(shù)據(jù)存儲

數(shù)據(jù)存儲前先要找到優(yōu)先級較高的空記錄,其流程為先找到含空記錄的頁號,然后在該頁中查找空記錄號,最后根據(jù)頁號和空記錄號計算出當前可用于存儲且優(yōu)先級較高的存儲空間的序號。詳細程序如下:

High3=OSUnMapTbl[OSRdyPageGrp];//高3位

Low3=OSUnMapTbl[OSRdyPageTbl][High3]];//低3位

PrioPage=(High3《3)+Low3;//先找到含空記錄的頁號

High3=OSUnMapTbl[OSRdyGrp[PrioPage]];

Low3=OSUnMapTbl[OSRdyTbl[PrioPage][High3]];

prio=(High3《3)+Low3;//獲得頁中的空記錄號

RecordNo=PrioPage*64+prio;//獲得空記錄在整個存儲空間中的序號

根據(jù)以上程序得到序號后,就可以將數(shù)據(jù)存儲到相應存儲空間了,存儲完成后需將該序號的存儲空間設置為“滿”狀態(tài),具體流程為:先將該頁中的記錄號置為“滿”狀態(tài)(即清零相應位),然后判斷本頁中是否所有記錄均為“滿”,若是則置該頁的狀態(tài)為“滿”.詳細程序如下:

PrioPage=RecordNo / 64;//頁號

prio=RecordNo % 64;//記錄號

if ((OSRdyTbl[PrioPage][prio》3] &=~OSMapTbl[prio & 0x07])==0)

OSRdyGrp[PrioPage] &=~OSMapTbl[prio》3]; //置頁中的記錄號為“滿”狀態(tài)

if(OSRdyGrp[PrioPage]==0){//若該頁中的所有記錄均為“滿”則置該頁為“滿”狀態(tài)

if ((OSRdyPageTbl[PrioPage》3] &=~OSMapTbl[PrioPage & 0x07])==0)

OSRdyPage &= ~OSMapTbl[PrioPage》3];

}

2.3.3  數(shù)據(jù)刪除

數(shù)據(jù)刪除即將存儲序號RecordNo對應的頁號和記錄號的存儲狀態(tài)設置為“空”(則該記錄可用于后續(xù)的存儲),具體流程為:先設置頁號為“空”(因為只要該頁中任意一個記錄為“空”,則頁的狀態(tài)即為“空”),然后設置記錄號的狀態(tài)為“空”,詳細程序如下:

PrioPage=RecordNo / 64;//頁號

prio=RecordNo % 64;//記錄號

OSRdyPage |=OSMapTbl[PrioPage》3];

OSRdyPageTbl[PrioPage》3] |=OSMapTbl[PrioPage & 0x07];//設置該頁的存儲狀態(tài)為“空”

OSRdyGrp[PrioPage] |=OSMapTbl[prio》3];

OSRdyTbl[PrioPage][prio》3] |=OSMapTbl[prio & 0x07];)//設置頁中的記錄為“空”狀態(tài)

按以上方法將相應序號的存儲空間設置為空狀態(tài),則在后續(xù)操作中該存儲空間可用于存儲。

結語

本文利用μC/OS嵌入式操作系統(tǒng)的任務調度算法并加以改進,巧妙地實現(xiàn)了簡易的嵌入式數(shù)據(jù)管理,與傳統(tǒng)方法比較,該方法具備不出現(xiàn)存儲空間碎片、數(shù)據(jù)管理操作效率高等優(yōu)點,可廣泛應用于低端嵌入式應用中的數(shù)據(jù)管理。該方法已在筆者所開發(fā)的SF6電氣設備分解產物檢測儀及智能抄表終端中應用,運行穩(wěn)定可靠。

[1]  [2]  [3]  [4]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

距離2025 通信工程師考試

還有
  • 3
  • 1
  • 2
專注在線職業(yè)教育23年

項目管理

信息系統(tǒng)項目管理師

廠商認證

信息系統(tǒng)項目管理師

信息系統(tǒng)項目管理師

!
咨詢在線老師!