專利名稱:一種在手持信息設(shè)備上存儲(chǔ)系統(tǒng)及應(yīng)用程序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件存儲(chǔ)技術(shù),尤指一種在手持信息設(shè)備上存儲(chǔ)系統(tǒng)及應(yīng)用程序的方法。
通常,手持信息設(shè)備采用半導(dǎo)體存儲(chǔ)器閃存(Flash)、動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)來(lái)存儲(chǔ)系統(tǒng)信息、應(yīng)用程序和用戶數(shù)據(jù),但在實(shí)際使用時(shí)采用的結(jié)構(gòu)有所不同。
傳統(tǒng)掌上電腦設(shè)備中Flash的存儲(chǔ)結(jié)構(gòu)如
圖1所示,包括存儲(chǔ)區(qū)域10和存儲(chǔ)區(qū)域11兩部分,其中,存儲(chǔ)區(qū)域10用于存放自舉程序(Boot Loader),該自舉程序的主要功能是作為操作系統(tǒng)(OS)升級(jí)時(shí)的工具。當(dāng)設(shè)備重新復(fù)位時(shí),系統(tǒng)從復(fù)位(Reset)陷阱進(jìn)入自舉程序,即復(fù)位后CPU直接從這里取指令執(zhí)行。如圖2所示,CPU首先判斷是否需要更新OS?如果需要,則轉(zhuǎn)入自舉程序的更新OS功能,否則直接跳轉(zhuǎn)到OS起始地址處。存儲(chǔ)區(qū)域11則用于存儲(chǔ)操作系統(tǒng)(OS)軟件及應(yīng)用(AP)軟件,在傳統(tǒng)的掌上電腦設(shè)備中,內(nèi)置于只讀存儲(chǔ)器(ROM)的系統(tǒng)軟件和應(yīng)用軟件是通過(guò)一次性編譯連接成一個(gè)大的代碼塊,然后以二進(jìn)制機(jī)器碼格式連續(xù)存放于Flash中的,即存放于存儲(chǔ)區(qū)域11中。
另外一些手持信息設(shè)備,如使用掩膜只讀存儲(chǔ)器(MaskROM)作為OS存儲(chǔ)器的PDA設(shè)備,由于其代碼不可能更新,不需要自舉程序,而直接將OS的起始代碼放在CPU的復(fù)位陷阱處,如圖3所示。該P(yáng)DA中的系統(tǒng)軟件和應(yīng)用軟件同樣是通過(guò)一次性編譯連接成一個(gè)大的代碼塊后,以二進(jìn)制格式連續(xù)存放在MaskROM中。
由于上述手持信息設(shè)備對(duì)系統(tǒng)及應(yīng)用軟件的處理都是先編譯為一個(gè)代碼塊,再連續(xù)存儲(chǔ)于存儲(chǔ)介質(zhì),如Flash中。如此,使得文件注冊(cè)表在編譯連接時(shí)就固定了,且不可更改。如果其中某個(gè)應(yīng)用程序或某個(gè)驅(qū)動(dòng)程序被發(fā)現(xiàn)有錯(cuò)誤(BUG)需要更新,或是某些程序需要升級(jí)時(shí),就必須將整個(gè)系統(tǒng)加應(yīng)用軟件重新編譯連接,形成新的代碼塊,然后還要將Flash中的內(nèi)容全部擦除,重新寫入。這樣不僅缺乏靈活性、增加操作復(fù)雜度、降低工作效率,而且該過(guò)程一般須由專業(yè)人員和專門工具才能完成,給用戶的使用帶來(lái)很多不便。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種在手持信息設(shè)備上存儲(chǔ)系統(tǒng)及應(yīng)用程序的方法,其將系統(tǒng)程序和每個(gè)應(yīng)用程序分別編譯,所生成的系統(tǒng)文件和應(yīng)用文件以標(biāo)準(zhǔn)文件格式存放于閃存(Flash)的指定存儲(chǔ)空間中。
該方法進(jìn)一步包括預(yù)先將閃存(Flash)的存儲(chǔ)空間劃分為自舉程序區(qū)和文件存儲(chǔ)區(qū),并將該文件存儲(chǔ)區(qū)格式化為標(biāo)準(zhǔn)文件格式。因此,所有系統(tǒng)文件和應(yīng)用文件以標(biāo)準(zhǔn)文件格式存儲(chǔ)于Flash的文件存儲(chǔ)區(qū)中。操作系統(tǒng)程序或每個(gè)應(yīng)用程序可分為一個(gè)以上文件存放。而且,所有系統(tǒng)文件和應(yīng)用文件的文件代碼存放位置是連續(xù)的或不連續(xù)的。
該方法進(jìn)一步包括將自舉程序以二進(jìn)制格式,操作系統(tǒng)程序和應(yīng)用程序以標(biāo)準(zhǔn)文件格式順序存儲(chǔ)于同一片或一片以上或非閃存(NOR Flash)中。或者,將自舉程序以二進(jìn)制格式存儲(chǔ)于或非閃存(NOR Flash)中,同時(shí)將操作系統(tǒng)程序和應(yīng)用程序以標(biāo)準(zhǔn)文件方式存儲(chǔ)于與非閃存(NANDFlash)中。
上面所述的標(biāo)準(zhǔn)文件格式為FAT16格式。
該方法進(jìn)一步包括設(shè)置一資源管理器,將與OS相關(guān)的系統(tǒng)文件隱藏;或是在程序進(jìn)行更新時(shí),將相同名的文件拷貝至原文件的地址,覆蓋原文件。
本發(fā)明的方法還可進(jìn)一步通過(guò)進(jìn)入自舉程序選擇對(duì)Flash進(jìn)行格式化。
因此,本發(fā)明所提供的在手持信息設(shè)備上存儲(chǔ)系統(tǒng)及應(yīng)用程序的方法,預(yù)先將存放OS和AP的Flash區(qū)域格式化為標(biāo)準(zhǔn)的FAT16格式,為以文件方式存儲(chǔ)提供了條件,進(jìn)而使得OS程序和每個(gè)AP程序能夠分別單獨(dú)編譯成不同的文件,并以FAT16文件格式存放于指定的區(qū)域,如此,在某些軟件需要更新或升級(jí)時(shí),只需將相應(yīng)的文件重新編譯成標(biāo)準(zhǔn)格式,并以相同文件名存放在原有地址,替換原文件即可。這樣可避免大量的編譯、擦除和更新過(guò)程,簡(jiǎn)化了存儲(chǔ)操作,而且使系統(tǒng)及應(yīng)用文件的操作更靈活,更符合用戶的使用習(xí)慣。
圖4為本發(fā)明中系統(tǒng)及應(yīng)用軟件的存儲(chǔ)結(jié)構(gòu)示意圖;圖5為本發(fā)明一應(yīng)用實(shí)例的硬件環(huán)境示意圖;圖6為本發(fā)明另一應(yīng)用實(shí)例的硬件環(huán)境示意圖。
如圖4所示,為了能以文件方式存儲(chǔ)系統(tǒng)程序和應(yīng)用程序,本發(fā)明在存放結(jié)構(gòu)上,將Flash分為自舉程序區(qū)40和文件存儲(chǔ)區(qū)41兩部分,自舉程序區(qū)40仍然用于以二進(jìn)制格式存儲(chǔ)自舉程序,而文件存儲(chǔ)區(qū)41則預(yù)先格式化為標(biāo)準(zhǔn)的文件格式,用來(lái)以文件方式存儲(chǔ)編譯好的OS文件和每個(gè)應(yīng)用程序文件。圖4中的DRAM區(qū)用于臨時(shí)存放當(dāng)前執(zhí)行的OS文件或應(yīng)用文件,比如啟動(dòng)時(shí),自舉程序通過(guò)文件讀取方式訪問(wèn)文件存儲(chǔ)區(qū)41,將特定的OS文件拷貝到DRAM中執(zhí)行;或是,當(dāng)要運(yùn)行某個(gè)應(yīng)用程序時(shí),OS將該應(yīng)用程序文件拷貝到DRAM中執(zhí)行,以提高運(yùn)行速度。
本發(fā)明在編譯時(shí)就將OS程序和每個(gè)應(yīng)用程序分開編譯,形成不同的文件,其中特定的OS文件可定義一個(gè)特殊的名稱,比如NK.bin等。該OS程序可分成若干個(gè)文件單獨(dú)存放,每個(gè)應(yīng)用程序也可以分成若干個(gè)文件存放。之后,將OS文件以及應(yīng)用程序文件寫入文件存儲(chǔ)區(qū)41中,由于是采用文件方式存放,代碼的存放位置可以是連續(xù)的或不連續(xù)的,由文件分配表決定。
所提到的文件分配表(FAT,F(xiàn)ile Allocation Table)是用來(lái)記錄文件所在位置的表格,是一個(gè)記錄磁盤上頭文件大小及其所對(duì)應(yīng)簇的數(shù)據(jù)庫(kù),它對(duì)每一個(gè)簇都有一個(gè)相對(duì)的記錄點(diǎn)(Entry Point)。如果文件分配表丟失,硬盤上的數(shù)據(jù)將因無(wú)法定位而不能使用。文件分配表的構(gòu)成與所采用的文件系統(tǒng)有關(guān),在實(shí)際應(yīng)用中,可采用的文件系統(tǒng)有很多,比如FAT16、FAT32、NTFS等等。結(jié)合手持信息設(shè)備的特點(diǎn),本發(fā)明目前采用FAT16文件系統(tǒng),其是用16位比特的空間來(lái)表示每個(gè)扇區(qū)(Sector)配置文件的情況,該扇區(qū)就是指一塊512字節(jié)的區(qū)域,F(xiàn)AT文件系統(tǒng)將數(shù)個(gè)扇區(qū)合并成一個(gè)簇(Cluster),作為文件分配存儲(chǔ)空間時(shí)的基本配置單位,每個(gè)簇中的扇區(qū)數(shù)目必須是2的次方,每個(gè)文件存儲(chǔ)于硬盤中時(shí)必須配置足夠數(shù)量的簇。
在本發(fā)明的文件存儲(chǔ)方式下,當(dāng)某個(gè)程序需要修改或升級(jí)時(shí),可將與該程序相關(guān)的文件單獨(dú)編譯,然后象拷貝文件一樣簡(jiǎn)單地以同名覆蓋方式完成相應(yīng)文件的更新,然后重新啟動(dòng)即可。
本發(fā)明中還進(jìn)一步提供有一個(gè)資源管理器,在資源管理器中用戶看到的文件存儲(chǔ)區(qū)顯示為一個(gè)文件夾。另外,該資源管理器將與OS有關(guān)的系統(tǒng)文件隱藏,以免被用戶誤刪。
在本發(fā)明中,自舉程序的功能發(fā)生了變化,包括三個(gè)部分格式化Flash、下載OS和AP文件、引導(dǎo)系統(tǒng)。在正常啟動(dòng)時(shí),自舉程序的功能就是引導(dǎo)系統(tǒng),其實(shí)現(xiàn)過(guò)程是這樣的自舉程序初始化系統(tǒng),在文件存儲(chǔ)區(qū)中找到OS中涉及啟動(dòng)的相應(yīng)文件,將其拷貝到預(yù)定地址的DRAM中連續(xù)存放;然后跳轉(zhuǎn)到DRAM中OS啟動(dòng)文件的開始地址,執(zhí)行OS啟動(dòng)代碼;OS啟動(dòng)后,存放OS和AP的文件存儲(chǔ)區(qū)相當(dāng)于一個(gè)內(nèi)置的磁盤。
對(duì)于Flash中文件存儲(chǔ)區(qū)的格式化,有兩種情況一種是在生產(chǎn)時(shí),采用專用工具,比如Ghost 6.0將Flash格式化為FAT16文件格式,并將編譯好的OS和AP文件拷貝到該文件存儲(chǔ)區(qū)中;另一種是用戶可在任意時(shí)刻對(duì)其進(jìn)行格式化,用于對(duì)文件存儲(chǔ)區(qū)損壞后的重建。具體實(shí)現(xiàn)是用戶通過(guò)按組合功能鍵的方式進(jìn)入自舉程序界面,該界面會(huì)顯示三個(gè)選項(xiàng)a.拷貝文件到Flash;b.格式化Flash;c.清除DRAM并重新啟動(dòng)。當(dāng)選擇第2項(xiàng)后,自舉程序便會(huì)進(jìn)入格式化流程首先將Flash中的文件存儲(chǔ)區(qū)全部擦寫一次,標(biāo)記出壞塊;然后自動(dòng)調(diào)用預(yù)先設(shè)置于自舉程序啟動(dòng)代碼中的標(biāo)準(zhǔn)格式化函數(shù)將該文件存儲(chǔ)區(qū)格式化為標(biāo)準(zhǔn)FAT16格式。
本發(fā)明以文件方式存儲(chǔ)OS和AP的方法可應(yīng)用于不同的硬件環(huán)境中,圖5、圖6分別給出了兩種硬件應(yīng)用環(huán)境。通常,手持信息設(shè)備采用或非(NOR)Flash或者與非(NAND)Flash作為存儲(chǔ)器,NOR Flash是線性尋址的,即可以尋址到每個(gè)字節(jié),其可以直接連接在系統(tǒng)的某段地址空間上,由CPU直接讀出指令來(lái)執(zhí)行,實(shí)現(xiàn)就地執(zhí)行(XIP),如圖5所示。而NAND Flash是頁(yè)面尋址方式,每個(gè)存儲(chǔ)單元不能直接映射為系統(tǒng)地址空間的某個(gè)單元,CPU也不能通過(guò)直接取指令的方式來(lái)讀取NAND Flash中的數(shù)據(jù),必須經(jīng)過(guò)接口邏輯完成頁(yè)地址轉(zhuǎn)換后才能讀出NAND Flash中的內(nèi)容,即CPU通過(guò)接口邏輯將NAND Flash連接到自身的系統(tǒng)空間上,映射為IO端口,然后通過(guò)訪問(wèn)設(shè)備的方式對(duì)NAND Flash操作,如圖6所示,NAND Flash無(wú)法實(shí)現(xiàn)XIP。而且,NOR Flash的成本比NAND Flash的成本高很多。
當(dāng)采用NOR Flash為OS和AP的存儲(chǔ)介質(zhì)時(shí),如圖5所示,可將NORFlash的存儲(chǔ)空間分為兩部分一部分是從CPU復(fù)位陷阱的地址開始約幾百K的空間,用于以二進(jìn)制連續(xù)存放自舉程序(Boot Loader),系統(tǒng)復(fù)位后,CPU直接從這里取指令執(zhí)行;另一部分是該NOR Flash其余的空間用于存儲(chǔ)OS和AP,對(duì)該部分進(jìn)行格式化形成文件存儲(chǔ)區(qū),該存儲(chǔ)結(jié)構(gòu)如圖4所示。
當(dāng)采用NAND Flash作為OS和AP的存儲(chǔ)介質(zhì)時(shí),如圖6所示,該硬件環(huán)境是同時(shí)采用NOR Flash和NAND Flash作為存儲(chǔ)器,但NOR Flash只用于存儲(chǔ)自舉程序,如此可選用容量小的NOR Flash,從而既降低產(chǎn)品成本,又可保證自舉程序的就地執(zhí)行。對(duì)于OS、AP和用戶數(shù)據(jù),可選用容量較大的NAND Flash來(lái)存儲(chǔ),并且在格式化時(shí),直接將整塊NAND Flash格式化為標(biāo)準(zhǔn)的FAT16文件存儲(chǔ)格式,OS和每個(gè)AP被分別編譯為一個(gè)或多個(gè)文件單獨(dú)存放。
在圖6所示的硬件環(huán)境下,當(dāng)系統(tǒng)初次啟動(dòng)時(shí),CPU的指針指向復(fù)位陷阱,開始執(zhí)行NOR Flash中的自舉程序;自舉程序通過(guò)訪問(wèn)設(shè)備的方式將存放于NAND Flash中的OS文件拷貝到DRAM中,然后將CPU的指針指向DRAM中的OS入口,開始執(zhí)行OS代碼,啟動(dòng)OS。當(dāng)要運(yùn)行某個(gè)應(yīng)用程序時(shí),OS將NAND Flash中的應(yīng)用程序代碼拷貝到DRAM中執(zhí)行。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種在手持信息設(shè)備上存儲(chǔ)系統(tǒng)及應(yīng)用程序的方法,其特征在于將系統(tǒng)程序和每個(gè)應(yīng)用程序分別編譯,所生成的系統(tǒng)文件和應(yīng)用文件以標(biāo)準(zhǔn)文件格式存放于閃存(Flash)的指定存儲(chǔ)空間中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進(jìn)一步包括預(yù)先將閃存(Flash)的存儲(chǔ)空間劃分為自舉程序區(qū)和文件存儲(chǔ)區(qū),并將該文件存儲(chǔ)區(qū)格式化為標(biāo)準(zhǔn)文件格式。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所有系統(tǒng)文件和應(yīng)用文件以標(biāo)準(zhǔn)文件格式存儲(chǔ)于Flash的文件存儲(chǔ)區(qū)中。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進(jìn)一步包括將自舉程序以二進(jìn)制格式,操作系統(tǒng)程序和應(yīng)用程序以標(biāo)準(zhǔn)文件格式順序存儲(chǔ)于同一片或一片以上或非閃存(NOR Flash)中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進(jìn)一步包括將自舉程序以二進(jìn)制格式存儲(chǔ)于或非閃存(NOR Flash)中,同時(shí)將操作系統(tǒng)程序和應(yīng)用程序以標(biāo)準(zhǔn)文件方式存儲(chǔ)于與非閃存(NAND Flash)中。
6.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的方法,其特征在于所述的標(biāo)準(zhǔn)文件格式為FAT16格式。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于操作系統(tǒng)程序和每個(gè)應(yīng)用程序分別以一個(gè)文件或一個(gè)以上文件形式連續(xù)的或不連續(xù)的存放。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進(jìn)一步包括設(shè)置一資源管理器,將與OS相關(guān)的系統(tǒng)文件隱藏。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進(jìn)一步包括設(shè)置一資源管理器,當(dāng)程序進(jìn)行更新時(shí),將相同名的文件拷貝至原文件的地址,覆蓋原文件。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進(jìn)一步包括通過(guò)進(jìn)入自舉程序選擇對(duì)Flash進(jìn)行格式化。
全文摘要
本發(fā)明公開了一種在手持信息設(shè)備上存儲(chǔ)系統(tǒng)及應(yīng)用程序的方法,其將系統(tǒng)程序和每個(gè)應(yīng)用程序分別編譯,所生成的系統(tǒng)文件和應(yīng)用文件以標(biāo)準(zhǔn)文件格式存放于閃存(Flash)的指定存儲(chǔ)空間中。該方法使手持設(shè)備中的系統(tǒng)或應(yīng)用文件能夠單獨(dú)更新,使得系統(tǒng)及應(yīng)用軟件的操作更簡(jiǎn)單、方便、靈活,效率更高,進(jìn)而為用戶提供更便利的使用環(huán)境。
文檔編號(hào)G06F12/06GK1470995SQ02125340
公開日2004年1月28日 申請(qǐng)日期2002年7月25日 優(yōu)先權(quán)日2002年7月25日
發(fā)明者吳志橋, 肖堃, 李建鄴 申請(qǐng)人:聯(lián)想(北京)有限公司