<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式操作系統(tǒng)的控制系統(tǒng)平臺(tái)設(shè)計(jì)

          基于嵌入式操作系統(tǒng)的控制系統(tǒng)平臺(tái)設(shè)計(jì)

          作者: 時(shí)間:2010-11-15 來(lái)源:網(wǎng)絡(luò) 收藏

            3.2.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

            實(shí)時(shí)數(shù)據(jù)庫(kù)與其他一般數(shù)據(jù)庫(kù)一樣,包含一組對(duì)象及其結(jié)構(gòu),由于目前對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)還沒(méi)有提出統(tǒng)一的數(shù)據(jù)模型,所以不同廠家開(kāi)發(fā)的數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)都有很大差別。本系統(tǒng)的實(shí)時(shí)數(shù)據(jù)庫(kù),一個(gè)基本的數(shù)據(jù)對(duì)象為“數(shù)據(jù)”,一個(gè)數(shù)據(jù)包含若干信息,如數(shù)據(jù)名稱、數(shù)據(jù)類型、數(shù)據(jù)位置、數(shù)據(jù)長(zhǎng)度等。

            考慮到數(shù)據(jù)的存取效率,程序運(yùn)行一開(kāi)始,我們將在內(nèi)存區(qū)開(kāi)辟一段緩沖區(qū),緩沖區(qū)中只存放數(shù)據(jù),如果緩沖區(qū)大小不夠,即緩沖區(qū)的數(shù)據(jù)較多,可以自動(dòng)擴(kuò)展緩沖區(qū)大小。實(shí)時(shí)數(shù)據(jù)存放在緩沖區(qū)時(shí),我們采取這種思想:如果不是bit型數(shù)據(jù),由于數(shù)據(jù)長(zhǎng)度都是字節(jié)的整數(shù)倍,存入緩沖區(qū)中以字節(jié)來(lái)進(jìn)行存儲(chǔ),該數(shù)據(jù)的長(zhǎng)度length是以字節(jié)來(lái)計(jì)算。如果是bit型數(shù)據(jù),存入緩沖區(qū)中,該數(shù)據(jù)的長(zhǎng)度length是以位來(lái)計(jì)算,接著再存儲(chǔ)一個(gè)實(shí)時(shí)數(shù)據(jù),若為非bit型數(shù)據(jù),則從下一個(gè)字節(jié)開(kāi)始存放,即原來(lái)的bit型數(shù)據(jù)占用一個(gè)字節(jié),若為bit型數(shù)據(jù),根據(jù)此數(shù)據(jù)的長(zhǎng)度來(lái)判斷其存放位置,這里又分兩種情況,如果這兩個(gè)bit型數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)8位,則緊接著前一個(gè)bit型數(shù)據(jù)后存儲(chǔ)這個(gè)bit型數(shù)據(jù),如果兩個(gè)bit型數(shù)據(jù)的長(zhǎng)度超過(guò)8位,則從下一個(gè)字節(jié)開(kāi)始存放,即原來(lái)的bit型數(shù)據(jù)占用一個(gè)字節(jié)。

            3.2.2數(shù)據(jù)存取設(shè)計(jì)

            為了存取方便,我們將所有的實(shí)時(shí)數(shù)據(jù)組成一個(gè)鏈表,鏈表的節(jié)點(diǎn)類型為上述的rtdb_data_t結(jié)構(gòu)。當(dāng)向?qū)崟r(shí)緩沖區(qū)中加入一條數(shù)據(jù)時(shí),就自動(dòng)會(huì)計(jì)算出數(shù)據(jù)存儲(chǔ)位置、長(zhǎng)度等信息,并在實(shí)時(shí)數(shù)據(jù)庫(kù)鏈表中加上一個(gè)節(jié)點(diǎn)。這樣,取實(shí)時(shí)數(shù)據(jù)就非常靈活和方便,如果知道實(shí)時(shí)數(shù)據(jù)的名稱,則可以遍歷鏈表得到數(shù)據(jù),如果知道數(shù)據(jù)的存儲(chǔ)位置和長(zhǎng)度,則可以利用實(shí)時(shí)數(shù)據(jù)庫(kù)提供的接口直接從緩沖區(qū)中獲得數(shù)據(jù),而不必遍歷鏈表,因?yàn)楸闅v鏈表需要花費(fèi)一些時(shí)間,這在實(shí)時(shí)性要求較高的本系統(tǒng)中不太適合,所以本系統(tǒng)常常采用后一種方法存取數(shù)據(jù)。實(shí)時(shí)數(shù)據(jù)庫(kù)鏈表結(jié)構(gòu)如圖3所示。


            圖3實(shí)時(shí)數(shù)據(jù)庫(kù)鏈表結(jié)構(gòu)

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


          關(guān)鍵詞: I/O數(shù)據(jù) 嵌入式

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();