新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式操作系統的控制系統平臺設計

        基于嵌入式操作系統的控制系統平臺設計

        作者: 時間:2010-11-15 來源:網絡 收藏

          3.2.1數據結構設計

          實時數據庫與其他一般數據庫一樣,包含一組對象及其結構,由于目前對實時數據庫還沒有提出統一的數據模型,所以不同廠家開發的數據庫的數據結構都有很大差別。本系統的實時數據庫,一個基本的數據對象為“數據”,一個數據包含若干信息,如數據名稱、數據類型、數據位置、數據長度等。

          考慮到數據的存取效率,程序運行一開始,我們將在內存區開辟一段緩沖區,緩沖區中只存放數據,如果緩沖區大小不夠,即緩沖區的數據較多,可以自動擴展緩沖區大小。實時數據存放在緩沖區時,我們采取這種思想:如果不是bit型數據,由于數據長度都是字節的整數倍,存入緩沖區中以字節來進行存儲,該數據的長度length是以字節來計算。如果是bit型數據,存入緩沖區中,該數據的長度length是以位來計算,接著再存儲一個實時數據,若為非bit型數據,則從下一個字節開始存放,即原來的bit型數據占用一個字節,若為bit型數據,根據此數據的長度來判斷其存放位置,這里又分兩種情況,如果這兩個bit型數據的長度沒有超過8位,則緊接著前一個bit型數據后存儲這個bit型數據,如果兩個bit型數據的長度超過8位,則從下一個字節開始存放,即原來的bit型數據占用一個字節。

          3.2.2數據存取設計

          為了存取方便,我們將所有的實時數據組成一個鏈表,鏈表的節點類型為上述的rtdb_data_t結構。當向實時緩沖區中加入一條數據時,就自動會計算出數據存儲位置、長度等信息,并在實時數據庫鏈表中加上一個節點。這樣,取實時數據就非常靈活和方便,如果知道實時數據的名稱,則可以遍歷鏈表得到數據,如果知道數據的存儲位置和長度,則可以利用實時數據庫提供的接口直接從緩沖區中獲得數據,而不必遍歷鏈表,因為遍歷鏈表需要花費一些時間,這在實時性要求較高的本系統中不太適合,所以本系統常常采用后一種方法存取數據。實時數據庫鏈表結構如圖3所示。


          圖3實時數據庫鏈表結構

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        關鍵詞: I/O數據 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永兴县| 汉阴县| 滦平县| 若尔盖县| 郯城县| 班戈县| 三河市| 山西省| 新闻| 景东| 洛南县| 中牟县| 巴林右旗| 巢湖市| 高台县| 凉山| 孟州市| 苗栗市| 南靖县| 蓝田县| 尤溪县| 阆中市| 油尖旺区| 商城县| 广东省| 灵寿县| 浦江县| 鄢陵县| 大新县| 雷山县| 宾川县| 昭觉县| 越西县| 常德市| 蒙山县| 余干县| 瑞昌市| 高雄市| 宁远县| 凤城市| 北流市|