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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WinCE文件目錄定制及內(nèi)存調(diào)整

          WinCE文件目錄定制及內(nèi)存調(diào)整

          作者: 時間:2010-04-07 來源:網(wǎng)絡(luò) 收藏

            本文介紹了的操作方法。結(jié)構(gòu)以及的位置都是在DAT文件中定義的。所有的dat文件會在編譯時合并成initobj.dat文件,WinCE會根據(jù)DAT中的描述生成相應(yīng)。

          本文引用地址:http://www.ex-cimer.com/article/151964.htm

            這個說起來比較簡單,WinCE的文件目錄結(jié)構(gòu)以及文件的位置都是在DAT文件中定義的。所有的dat文件會在WinCE編譯時合并成initobj.dat文件,WinCE會根據(jù)DAT中的描述生成相應(yīng)目錄。

            關(guān)于DAT的格式,可以參考我以前的一片文章:”WinCE BSP的DAT文件介紹”,看了就明白了。

            我一般在project.dat中自己想要的目錄結(jié)構(gòu),舉個例子如下:

            root:-Directory(Sounds)

            root:-Directory(Movies)

            Directory(Movies):-Directory(Chinese)

            Directory(Movies):-Directory(English)

            Directory(Sounds):-File(hello.wav, Windowshello.wav)

            應(yīng)該比較好理解,創(chuàng)建兩個根文件夾Sounds和Movies,在Movies中創(chuàng)建兩個子文件夾Chinese和English,將hello.wav拷貝到Sounds目錄下。

            編輯完project.dat以后,重新Makeimg就可以了。啟動WinCE就可以看到所創(chuàng)建的文件夾了。

            接下來說一下WinCE。WinCE系統(tǒng)可使用的被分為Storage Memory和Program Memory兩部分。Storage Memory用于Object Store,而Program Memory用于程序內(nèi)存。

            關(guān)于Object Store,在WinCE中是指一個可以永久保存數(shù)據(jù)的存儲空間,即使在掉電的情況下,數(shù)據(jù)可以在備份電源的支持下不丟失,達(dá)到永久保存的效果。其實(shí)就是一塊內(nèi)存,一般包括文件系統(tǒng),數(shù)據(jù)庫和系統(tǒng)注冊表。Object Store的最大空間不能超過256MB,其中所能包含的最大文件是32MB。Object Store中是由很多Object組成,這些Object可能是一個文件,一個數(shù)據(jù)庫,一條數(shù)據(jù)庫記錄,一個注冊表鍵,一個鍵值等。

            在Object Store中,WinCE系統(tǒng)會分配給每一個Object一個ID,被稱為CEOID。每個Object的CEOID在Volume中都是唯一的。同樣,在Object Store中的每一個Volume也有一個ID,被稱為CEGUID,這樣使用CEGUID和CEOID就可以在Object Store中找到相應(yīng)的Object了。

            順便介紹個函數(shù):

            BOOL CeOidGetInfoEx( PCEGUID pceguid, CEOID oid, CEOIDINFO* poidInfo) 調(diào)用該函數(shù)可以獲得Object Store中某個Object的信息,pceguid和oid是要查找對象的CEGUID和CEOID,poidInfo為Object的信息。

            那么如何獲得CEGUID和CEOID呢?對于不同的Object類型,有不同的函數(shù),如下:

            Directory or File:FindFirstFile(..) / FindNextFile(..) / GetFileInformationByHandler(..)

            Database:CeCreateDatabaseEx2(..) / CeFindNextDatabaseEx(..)

            Database record:CeSeekDatabaseEx(..) / CeReadRecordPropsEx(..) / CeWriteRecordPropsEx(..)

            Mounted Database volume:CeMountDBVol(..) / CeEnumDBVolumes(..)

            所以,在WinCE系統(tǒng)中,對內(nèi)存的調(diào)節(jié)就是在Object Store和程序內(nèi)存的大小。默認(rèn)情況下是Storage Memory/Program Memory各占一半。有三種方法可以實(shí)現(xiàn)對內(nèi)存的

            1. 在config.bib文件中調(diào)整FSRAMPERCENT,具體如何設(shè)置在BIB文件的介紹中解釋過,這里不多說了。

            2. 在OAL中調(diào)用pOEMCalcFSPages函數(shù)為Object Store分配內(nèi)存。

            3. 在WinCE啟動以后,進(jìn)入系統(tǒng)的control panel,然后打開System,選擇Memory在界面中進(jìn)行調(diào)整。

            4. 通過函數(shù)SetSystemMemoryDivision(..)來調(diào)整。多說一句,可以通過調(diào)用GetSystemMemoryDivision(..)來獲得當(dāng)前Object Store的內(nèi)存使用情況。

            關(guān)于Storage Memory和Program Memory的調(diào)整,主要還是看系統(tǒng)的需求,一般情況下Storage Memory不需要太大,可以根據(jù)自己的需要適當(dāng)?shù)恼{(diào)整。但是要注意,兩部分內(nèi)存都不能調(diào)整的太小,調(diào)整的太小會導(dǎo)致數(shù)據(jù)丟失,甚至是死機(jī),到時候只能重起系統(tǒ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); })();