999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于開放系統的測試軟件架構設計研究

2020-07-15 05:04:24張秀芳劉洲洲
計算機技術與發展 2020年7期
關鍵詞:嵌入式數據庫

張秀芳,劉洲洲

(1.西安歐亞學院,陜西 西安 710065;2.西安工程大學 電信學院,陜西 西安 710000;3.西北工業大學 計算機學院,陜西 西安 710072)

0 引 言

當前嵌入式開放系統已經廣泛應用在各行各業,比如通訊、電子、航空、過程控制、消費電子產品等領域[1-4]。當前嵌入式操作系統有數百種,比較流行的有蘋果iOS,谷歌的安卓系統,ATI的Nucleus Plus、VXWorks等。用戶可以根據自身的軟硬件環境的要求,選擇合適的操作系統。其中數據庫作為系統的關鍵模塊,有至關重要的作用,當前常見的數據庫存儲介質由連續的Flash組成,同時配合驅動和文件管理系統,且邏輯地址空間可逆且連續。文中以嵌入式Nucleus數據庫為例[5-9],設計一種測試軟件架構,采用直接面向Flash驅動的方法,相比傳統存取方法速度有較大提高,內存占用也隨之降低。

1 Nucleus開放系統

Nucleus是為實時嵌入式應用而設計的一個搶先式多任務操作系統[10-12]。Nucleus系統的各層通訊協議都提供了由ANSIC寫成的源碼,有利于系統的可移植性并支持大部分處理器。而且Nucleus系統針對不同的處理器的源碼大部分也是相同的且少部分跟CPU相關由匯編完成。該操作系統完全開源,可以通過修改開源代碼進行所需的配置,調試可以在中斷和寄存器級進行。核心函數API和程序代碼鏈接一起生成目標代碼,可以直接燒制到目標板卡中,整個核心代碼區內核規模非常小,方便調試。

2 數據庫測試架構

文中提出了面向Flash驅動的數據庫方法,該方法向上提供尋址空間,且空間為線性,將連續且可逆的邏輯地址空間用地址映射表的擦除塊來映射。數據庫相關設備和本身數據庫相互關聯,其中在連續的邏輯地址的基礎上,記錄需要寫在同一個擦除塊,數據庫設備則需要提供動態記錄空間。數據庫設備不能獨立完成整理擦除塊,需要依賴記錄索引,同時設備需要記錄擦除塊的工作情況,使得動態分配空間功能得以完善。擦除塊的掉電保護在底層設備獨立完成,記錄等操作的掉電保護由數據庫系統操作完成。記錄索引表和交換塊以及記錄區構成本數據庫系統,索引表占用首地址空間,而交換塊不占用地址空間且存儲索引表最后節點部分,記錄區占用其他地址空間,詳細記錄每個數據庫地址類別大小等屬性,且記錄唯一地址信息,ID號不沖突同時可區分數據庫類別[13-15]。

2.1 地址映射

文中假定數據庫相關設備存儲大小為2 M,且擦除塊大小占據64 K,擦除塊為32塊,其中一塊作為交換塊,其余為擦除塊,每個擦除塊前四字節寫入ID號和bank號,結構如圖1所示。

圖1 擦除塊結構

當嵌入式開發系統初始化時,數據庫相關設備則開始掃描32塊ID,并動態生成一個映射表且存儲在系統的內存中,由于保留一個交換塊,只可用31節點,定義最后節點地址,其余節點包括物理地址和擦除塊信息。文中映射表用C語言表述成:

struct tagDbDevTab{

long Addr;//物理地址

long Free;//剩余大小

long Dirty;//臟塊大小

}DbDevTab[DB_DEV_SIZE/0x10000];

2.2 分配記錄空間和臟塊回收

文中數據庫相關設備可為系統動態分配記錄空間,數據庫記錄表存儲在同一塊擦除塊,且不能夸塊存儲。將地址映射表的空閑字段進行優先分配,減少碎片和物聯塊充分使用,由于操作如刪除和修改等會產生臟塊,為有效利用,臟塊需要反復利用,回收記錄觸發后當設備空間無空余,臟塊回收則選中要回收的目標塊,根據地址映射表記錄字段的大小優先判斷,選定后記錄轉存其他空間同時刪除原記錄。空間所有記錄移除后,調用擦除函數寫入,同時修改地址映射表,如果臟塊太多,需要整塊回收,將有用記錄逐條轉存其他空間后擦除該空間,將保留空間作為邏輯空間寫入記錄,這樣將整個物理空間有效利用。

2.3 數據庫設備初始化

數據庫系統初始化先由設備初始化再進行數據本身初始化。初始化不但要對調電保護做出檢測和數據修復,還要初始化許多全局變量,它們包括:地址映射表、保留Bank的物理基地址、記錄索引表的最大節點、索引表中已經刪除的節點個數、系統索引的記錄個數等,另外還要打開系統索引。

初始化過程為掃描各個Bank ID,填寫地址映射表的addr字段,如果發現Bank ID的Flag是0xF,則擦掉該Bank,如果發現Bank0 ID是0xE0000000,則改寫為0xC0000000。如果注冊表沒有填寫滿,也就是有的邏輯Bank找不到,則找到一個ID為0xFFFFFFFF的塊,擦除后寫入ID為0xC*******,并作為這個邏輯Bank。找到保留Bank并把基地址寫入地址映射表的最后一個節點。掃描Bank0的記錄索引表的addr字段,如果某個節點的Flag是0xF,改寫為0x8,如果Flag是0xE,讀出該節點id,找出該記錄舊的節點并刪除,同時改寫Flag為0xC。最后統計出記錄索引表的最大節點以及索引表中已經刪除的節點個數。還要統計出各個Bank的已經用掉的空間、剩余空間、臟記錄的空間,其中剩余空間是根據該Bank的最后一條記錄再加上這個記錄的大小算出來一個初始值,然后再從該Bank的最后向前搜索到初始值,遇到不是0xFFFFFFFF的時候退出,該地址就是該Bank的剩余起始地址。

3 掉電保護

嵌入式開放數據庫設備必須使用掉電保護,目的是嵌入式系統在突發掉電情況,資料完整性得以保存,要求在寫操作步驟進行。首先系統啟動后初始化過程中需要記錄之前掉電現象是正常模式下掉電還是異常模式下掉電,當突發掉電可以還原掉電前資料信息,數據庫的空間地址分別由四個字節信息組成,相關記錄含義目錄名的相關性不得沖突、同時依靠數據庫的魯棒性。

數據庫的掉電保護是指在用戶打開數據庫后,在數據庫的操作期間(關閉數據庫之前)發生低電壓或者突然掉電時應保證數據庫資料的完整性。在這個過程中允許且只允許丟失用戶最后一次的操作。在這個數據庫的實現中,利用了兩套數據文件來保證這一點,每個數據庫打開后同時存在兩套文件:一是(*.dat,*.def.*,*.ida,*.idb,*.idc,...),另一套是(*.dat,*.bef,*.bda,*.bdb.*.bdc,...),其中*.dat是同一個文件。其余的文件兩者一一對應。在數據庫打開時,根據兩套文件的完整性(文件個數)及其相互關系(記錄數的個數)來確定當前使用哪一套文件,并將另外一套文件全部置空(此時這套文件無效)。在對數據庫進行操作的過程中,先將當前這套文件的內容修改后寫入另一套文件中,全部完成后將當前使用的文件標志修改并將原來那套文件全部置空。這樣一來就可以保證在任何時候都有一套完整的數據,在關閉數據庫的時候將空的那一套文件刪除。對于數據庫的保護,在本數據庫系統里數據處理過程中采用備份的方式:兩份數據庫定義文件(*.def,*.bef),兩份索引文件(*.id*,*.bd*),但只有一份數據文件,因為數據塊的使用可以由文件系統保障。這兩份文件組在使用中互為備份:在第一組為當前使用時,執行操作前恢復當前文件組的數據,然后在備份組上進行修改,修改完成,在將當前組指向第二組。

4 系統實驗測試

通過上位機和下位機測試兩種方式:同時按下電源開關鍵(掛斷鍵)和退出鍵(右功能鍵)用傳輸線將小機同PC連接起來:在PC端啟動“數據庫測試程序”,小機端:按開關鍵開機連接成功后,在PC端選擇“系統自檢”。首先進行串口測試如圖2所示,同時分別測試串口0和串口1,并顯示測試結果。在測試夾具上,會將串口0和串口1短接,故各串口自發自收,自動判斷測試結果。

圖2 串口通訊

然后再通過SRAM測試和DATA/PROGRAM校驗,如圖3和圖4所示。測試過程中對于數據庫的保護,在本數據庫系統里數據處理過程中采用備份的方式:兩份數據庫定義文件(*.def,*.bef),兩份索引文件(*.id*,*.bd*),但只有一份數據文件,因為數據塊的使用可以由文件系統保障。這兩份文件組在使用中互為備份:在第一組為當前使用時,執行操作前恢復當前文件組的數據,然后在備份組上進行修改,修改完成,再將當前組指向第二組。存儲一條記錄時,首先存貯該記錄的數據,然后存入記錄的節點,最后對該記錄進行排序。針對上述流程,發生掉電時,如果發生在存數據過程,該記錄將完全不存在;如果發生在存節點過程中,該節點將不存在,但會浪費一塊數據文件空間;如果發生在排序過程中,由于記錄數目不一致,將會刪除失效的一套文件。數據庫保持原來的結構。

圖3 SDRAM測試

圖4 DATA/PROGRAM校驗

通過軟件測試,表明該方法便于移植且當其他模塊崩潰時不會直接影響數據庫系統同時存取速度有所提高,同時占用內存也會大大降低,由于有掉電保護,系統可靠性也得到了增強。

5 結束語

Nucleus作為開放嵌入式系統,具有實時性和多任務性,系統資源的調度都在其有效管理控制下可以使嵌入式多任務的開發變得省時省力,同時高效,文中分析了基于Nucleus的嵌入式數據庫測試軟件架構的機理,對于嵌入式實時操作系統的開發具有重要的意義。

猜你喜歡
嵌入式數據庫
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 中国特黄美女一级视频| 91麻豆国产视频| 久久精品国产精品国产一区| 99九九成人免费视频精品| 欧美日韩国产高清一区二区三区| 色有码无码视频| 91精品国产91久无码网站| 55夜色66夜色国产精品视频| 国产成人精品高清在线| 波多野结衣爽到高潮漏水大喷| 国产丝袜啪啪| 色悠久久综合| 精品91视频| 九九这里只有精品视频| 青青草国产一区二区三区| 亚洲第一区在线| 97综合久久| 亚洲高清资源| 日韩小视频在线播放| 在线观看国产精品日本不卡网| 色网在线视频| 五月天丁香婷婷综合久久| www.亚洲色图.com| 97av视频在线观看| 在线看片国产| 亚洲精品波多野结衣| 亚洲第一精品福利| 亚洲第一av网站| 国产精品污视频| 综合色在线| 国产午夜一级毛片| 成人福利在线看| 欧美成人免费午夜全| 免费又黄又爽又猛大片午夜| 2018日日摸夜夜添狠狠躁| 亚洲日韩精品综合在线一区二区| 国产成人1024精品| 欧美午夜在线观看| 日本人妻丰满熟妇区| 一区二区三区在线不卡免费| 国产欧美日韩综合在线第一| 美女内射视频WWW网站午夜 | 中文字幕无码电影| 成人一级免费视频| 亚洲男人的天堂视频| 精品国产Ⅴ无码大片在线观看81| 久一在线视频| 男人天堂伊人网| 亚洲精品国产日韩无码AV永久免费网| 日韩精品亚洲一区中文字幕| 亚洲精品国产日韩无码AV永久免费网 | 欧美一区二区人人喊爽| 国产一区二区三区在线观看视频| 久久激情影院| 国产自在线拍| 中文字幕乱码中文乱码51精品| 亚洲国产成人自拍| 成年免费在线观看| 日韩视频福利| 欧美精品成人| 国产欧美综合在线观看第七页 | 免费无码AV片在线观看国产| 激情综合婷婷丁香五月尤物| 一本无码在线观看| 亚洲人成影院在线观看| 免费无码AV片在线观看国产| 国产H片无码不卡在线视频| 国产成本人片免费a∨短片| 国产SUV精品一区二区| 国产福利免费在线观看| 曰AV在线无码| 中文无码毛片又爽又刺激| 成人福利视频网| 国产精品漂亮美女在线观看| 亚洲天堂成人在线观看| 亚洲天堂啪啪| 亚洲无码视频一区二区三区| 国产精品不卡片视频免费观看| 第一区免费在线观看| 国产丝袜91| 亚洲人精品亚洲人成在线| 超级碰免费视频91|