两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于nand閃存的文件系統(tǒng)的自編程方法及裝置的制作方法

文檔序號:6335589閱讀:294來源:國知局
專利名稱:一種基于nand閃存的文件系統(tǒng)的自編程方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及文件系統(tǒng)的自編程技術(shù),特別是指一種基于NAND閃存(FLASH)的文件系統(tǒng)的自編程方法及裝置。
背景技術(shù)
NAND FLASH是FLASH的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實(shí)現(xiàn)提供了廉價有效的解決方案。由于NAND FLASH具有容量較大及改寫速度快等優(yōu)點(diǎn), 適用于大量數(shù)據(jù)的存儲,因此,在業(yè)界得到了廣泛應(yīng)用。在嵌入式系統(tǒng)中,通常用NAND FLASH作為程序和數(shù)據(jù)的存儲器,并利用文件系統(tǒng)對NAND FLASH進(jìn)行管理,所述文件系統(tǒng)可以是文件配置表(FAT,F(xiàn)ile Allocation Table)、 閃存設(shè)備日志型文件系統(tǒng)(JFFS,Journalling Flash File System), YAFFS(YetAnother Flash Filing System)等。文件系統(tǒng)中記錄了存儲在NAND FLASH上的文件和目錄信息,文件系統(tǒng)通過不同的數(shù)據(jù)標(biāo)識識別文件、目錄及其他信息。還有一些文件及目錄,文件系統(tǒng)通過寫在NAND FLASH的spare區(qū)的數(shù)據(jù),也叫OOB區(qū)的數(shù)據(jù),對其進(jìn)行標(biāo)識。同時,文件系統(tǒng)也以二進(jìn)制的形式保存在NAND FLASH中。目前,使用較為廣泛的基于NAND FLASH的編程是利用NAND FLASH編程器、嵌入式中央處理器(CPU,Central Processing Unit)自帶的NAND FLASH編程接口、網(wǎng)絡(luò)文件系統(tǒng)結(jié)合嵌入式系統(tǒng)的Boot Loader程序、或一些專用的編程設(shè)備實(shí)現(xiàn)的。其中,NAND FLASH編程器對NAND FLASH的編程較快但是價格昂貴,并且編程器所支持的NAND FLASH的型號有限;嵌入式CPU自帶的NAND FLASH編程接口雖然編程方便,但是不能對所有的文件系統(tǒng)進(jìn)行編程,并且速度較慢;使用網(wǎng)絡(luò)文件系統(tǒng)結(jié)合嵌入式系統(tǒng)的Boot Loader程序的方法進(jìn)行文件系統(tǒng)編程時,需要依賴Boot Loader程序、網(wǎng)絡(luò)文件系統(tǒng)服務(wù)器及網(wǎng)絡(luò)的功能,使用過程中需要多次的人為設(shè)定Boot Loader程序或操作系統(tǒng)的啟動參數(shù)和使用不同的系統(tǒng)命令,如此,才能將文件系統(tǒng)正確編程。整個過程不但非常耗時,而且對人員要求很高,不適用于大規(guī)模生產(chǎn);專用的編程設(shè)備的價格比較昂貴,且一般需要使用網(wǎng)絡(luò),如此,會造成數(shù)據(jù)的泄露。綜上所述,現(xiàn)有的編程過程中存在耗時、對設(shè)備及技術(shù)要求過高的缺陷。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于NAND FLASH的文件系統(tǒng)的自編程方法及裝置,以解決現(xiàn)有的自編程過程耗時、對設(shè)備及技術(shù)要求過高的問題。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種基于NAND FLASH的文件系統(tǒng)的自編程方法,該方法包括解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;上電后,Boot Loader程序從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程。 上述方案中,所述解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件,為根據(jù)預(yù)先配置的文件系統(tǒng)信息文件配置信息,設(shè)置魔數(shù)和/或唯一標(biāo)識碼;利用魔數(shù)和/或唯一標(biāo)識碼,計算文件系統(tǒng)信息文件的校驗碼。上述方案中,所述解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件,進(jìn)一步包括利用文件系統(tǒng)的二進(jìn)制文件中的數(shù)據(jù),計算文件系統(tǒng)數(shù)據(jù)校驗碼;和/或,分析文件系統(tǒng)的二進(jìn)制文件中的數(shù)據(jù),得到文件系統(tǒng)信息文件。上述方案中,在解析文件系統(tǒng)的二進(jìn)制文件之前,該方法進(jìn)一步包括將根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換成文件系統(tǒng)的二進(jìn)制文件。上述方案中,在上電之前,該方法進(jìn)一步包括Boot Loader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件通過CPU自帶的NANDFLASH編程接口寫入NAND FLASH 中。上述方案中,所述進(jìn)行文件系統(tǒng)的編程,為Boot Loader程序根據(jù)文件系統(tǒng)信息文件中指定的、或固定的NAND FLASH指定的地址中讀取文件系統(tǒng)數(shù)據(jù);之后將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除;根據(jù)文件系統(tǒng)信息文件中記錄的、或已約定的文件系統(tǒng)類型和編程方法將系統(tǒng)文件數(shù)據(jù)從文件系統(tǒng)信息文件中指定的起始位置、或固定NAND FLASH指定的起始位置寫入 NAND FLASH,直到讀取到的文件系統(tǒng)數(shù)據(jù)全部寫入;修改所述文件系統(tǒng)信息文件的數(shù)據(jù)為已改寫的標(biāo)識。上述方案中,當(dāng)文件系統(tǒng)信息文件中包含文件系統(tǒng)數(shù)據(jù)校驗碼時,在將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除之前,該方法進(jìn)一步包括根據(jù)讀取的文件系統(tǒng)數(shù)據(jù),計算文件系統(tǒng)數(shù)據(jù)校驗碼;將計算得到的文件系統(tǒng)數(shù)據(jù)校驗碼與文件系統(tǒng)信息文件中的文件系統(tǒng)數(shù)據(jù)校驗碼進(jìn)行比較,確定相同后,則將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除。上述方案中,在從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù)之前,該方法進(jìn)一步包括Boot Loader程序啟動后,對設(shè)備進(jìn)行初始化操作。本發(fā)明還提供了一種基于NAND FLASH的文件系統(tǒng)的自編程裝置,該裝置包括解析單元、NAND FLASH;其中,NAND FLASH 包括 Boot Loader 程序單元;解析單元,用于解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;
NAND FLASH,用于存儲文件系統(tǒng)信息文件;Boot Loader程序單元,用于上電后,從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程。上述方案中,該裝置進(jìn)一步包括二進(jìn)制轉(zhuǎn)換單元,用于將根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換成文件系統(tǒng)的二進(jìn)制文件。上述方案中,該裝置進(jìn)一步包括CPU自帶的NAND FLASH編程接口,用于將BootLoader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件寫入NAND FLASH中。本發(fā)明提供的基于NAND FLASH的文件系統(tǒng)的自編程方案,Boot Loader程序從 NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程,如此,能快速實(shí)現(xiàn)文件系統(tǒng)的編程,而且,還能降低對編程設(shè)備及技術(shù)人員的要求,進(jìn)而能降低研發(fā)和生產(chǎn)成本。另外,Boot Loader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件通過CPU自帶的NAND FLASH編程接口寫入NAND FLASH中,不需要再額外使用外界設(shè)備進(jìn)行寫入,如此,能保證寫入NAND FLASH中的數(shù)據(jù)的安全性。


圖1為本發(fā)明基于NANDFLASH的文件系統(tǒng)的自編程方法流程示意圖;圖2為實(shí)施例基于NANDFLASH的文件系統(tǒng)的自編程方法流程示意圖;圖3為本發(fā)明基于NANDFLASH的文件系統(tǒng)的自編程裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。本發(fā)明基于NAND FLASH的文件系統(tǒng)的自編程方法,如圖1所示,包括以下步驟步驟101 解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;這里,所述文件系統(tǒng)信息文件包含文件系統(tǒng)信息文件的校驗碼和魔數(shù)、和/或唯一標(biāo)識碼,進(jìn)一步地,還可以包括文件系統(tǒng)數(shù)據(jù)校驗碼和/或文件系統(tǒng)信息;其中,魔數(shù)和 /或唯一標(biāo)識碼用于標(biāo)識文件系統(tǒng)信息文件的身份;所述文件系統(tǒng)信息可以進(jìn)一步包括 文件系統(tǒng)字節(jié)數(shù)、文件系統(tǒng)占用的塊數(shù)量、文件系統(tǒng)占用的頁數(shù)量、文件系統(tǒng)編程方式、文件系統(tǒng)起始位置及其它在編程過程需要的信息;所述文件系統(tǒng)數(shù)據(jù)校驗碼用于校驗文件系統(tǒng)數(shù)據(jù)的正確性;所述解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件,具體為根據(jù)預(yù)先配置的文件系統(tǒng)信息文件配置信息,設(shè)置魔數(shù)和/或唯一標(biāo)識碼;利用魔數(shù)和/或唯一標(biāo)識碼,計算文件系統(tǒng)信息文件的校驗碼;具體地,如果文件系統(tǒng)信息文件配置信息包含魔數(shù)時,則利用魔數(shù)計算文件系統(tǒng)信息文件的校驗碼,如果文件系統(tǒng)信息文件配置信息包含唯一標(biāo)識碼時,則利用唯一標(biāo)識碼計算文件系統(tǒng)信息文件的校驗碼,如果文件系統(tǒng)信息文件配置信息包含魔數(shù)和唯一標(biāo)識碼時,則利用魔數(shù)和唯一標(biāo)識碼計算文件系統(tǒng)信息文件的校驗碼;其中,計算所采用的方法可以是現(xiàn)有的所有的計算校驗碼的任一方法,比如循環(huán)冗余校驗(CRC,Cyclic Redundancy Check)法等;可以設(shè)置魔數(shù)、和/或唯一標(biāo)識碼為任意字符串;其中,依據(jù)用戶需要配置文件系統(tǒng)信息文件配置信息,所述文件系統(tǒng)信息文件配置信息包含文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼、和/或文件系統(tǒng)數(shù)據(jù)校驗碼、和/或文件系統(tǒng)信息,換句話說,由配置信息的內(nèi)容決定文件系統(tǒng)信息文件中的數(shù)據(jù);舉個例子來說,用戶要求較高的安全性,且在后續(xù)操作中根據(jù)文件系統(tǒng)信息文件中的文件系統(tǒng)信息,進(jìn)行自編程過程,則可以配置文件系統(tǒng)信息文件配置信息為文件系統(tǒng)信息文件的校驗碼、魔數(shù)、唯一標(biāo)識碼、文件系統(tǒng)數(shù)據(jù)校驗碼、文件系統(tǒng)信息;當(dāng)文件系統(tǒng)信息文件配置信息中包含文件系統(tǒng)數(shù)據(jù)校驗碼時,得到文件系統(tǒng)信息文件的過程還可以進(jìn)一步包括利用文件系統(tǒng)的二進(jìn)制文件中的數(shù)據(jù),計算文件系統(tǒng)數(shù)據(jù)校驗碼;當(dāng)文件系統(tǒng)信息文件配置信息中包含文件系統(tǒng)信息時,得到文件系統(tǒng)信息文件的過程還可以進(jìn)一步包括分析文件系統(tǒng)的二進(jìn)制文件中的數(shù)據(jù),得到文件系統(tǒng)信息;其中,計算所采用的方法可以是現(xiàn)有的所有的計算校驗碼的任一方法,比如CRC
法等;所述文件系統(tǒng)信息文件的內(nèi)容包括文件系統(tǒng)字節(jié)數(shù)、文件系統(tǒng)占用的塊數(shù)量、文件系統(tǒng)占用的頁數(shù)量、文件系統(tǒng)編程方式、文件系統(tǒng)起始位置及其它在編程過程需要的信息;在解析文件系統(tǒng)的二進(jìn)制文件之前,該方法還可以進(jìn)一步包括將根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換成文件系統(tǒng)的二進(jìn)制文件;轉(zhuǎn)換的具體處理過程與現(xiàn)有的轉(zhuǎn)化過程完全相同,轉(zhuǎn)化所使用的二進(jìn)制文件的工具可以是現(xiàn)有的所有的二進(jìn)制文件的工具,比如支持YAFFS的mkyaffsimage工具等。步驟102 上電后,Boot Loader程序從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程;具體地,Boot Loader程序會事先將魔數(shù)、和/或唯一標(biāo)識碼保存,在從NANDFLASH 中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù)后,將文件系統(tǒng)信息文件中的魔數(shù)、和/或唯一標(biāo)識碼與自身保存的魔數(shù)、和/或唯一標(biāo)識碼進(jìn)行比較,確定相同后,則認(rèn)為魔數(shù)、和/或唯一標(biāo)識碼正確;并且,Boot Loader程序利用文件系統(tǒng)信息文件中的魔數(shù)、和/或唯一標(biāo)識碼, 采用與解析過程相同的計算方法計算文件系統(tǒng)信息文件的校驗碼,之后將文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼與計算得到的文件系統(tǒng)信息文件的校驗碼相比較,確定相同后,則認(rèn)為文件系統(tǒng)信息文件的校驗碼正確;其中,Boot Loader程序已事先獲知計算校驗碼的方法;當(dāng)確定文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼不正確后,則不進(jìn)行任何操作;在上電之前,該方法還可以進(jìn)一步包括Boot Loader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件通過 CPU自帶的NAND FLASH編程接口寫入NAND FLASH中;在從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù)之前,該方法還可以進(jìn)一步包括Boot Loader程序啟動后,對設(shè)備進(jìn)行初始化操作;其中,設(shè)備主要是NANDFLASH 和內(nèi)存,具體處理過程與現(xiàn)有的處理過程完全相同,這里不再贅述;所述進(jìn)行文件系統(tǒng)的編程,具體為Boot Loader程序根據(jù)文件系統(tǒng)信息文件中指定的、或固定的NAND FLASH指定的地址中讀取文件系統(tǒng)數(shù)據(jù);之后將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除;根據(jù)文件系統(tǒng)信息文件中記錄的、或已約定的文件系統(tǒng)類型和編程方法將文件系統(tǒng)數(shù)據(jù)從文件系統(tǒng)信息文件中指定的起始位置、或固定NAND FLASH指定的起始位置寫入 NAND FLASH,直到讀取到的文件系統(tǒng)數(shù)據(jù)全部寫入;修改所述文件系統(tǒng)信息文件的數(shù)據(jù)為已改寫的標(biāo)識;其中,當(dāng)文件系統(tǒng)信息文件中包含文件系統(tǒng)信息時,則根據(jù)文件系統(tǒng)信息文件中指定的地址中讀取文件系統(tǒng)數(shù)據(jù),相應(yīng)的,根據(jù)文件系統(tǒng)信息文件中記錄的文件系統(tǒng)類型和編程方法將系統(tǒng)文件數(shù)據(jù)從文件系統(tǒng)信息文件中指定的起始位置寫入NAND FLASH,直到讀取到的文件系統(tǒng)數(shù)據(jù)全部寫入,即將文件系統(tǒng)信息文件中記錄的所有NAND FLASH的塊和頁的數(shù)據(jù)全部寫入;當(dāng)文件系統(tǒng)信息文件中包含不文件系統(tǒng)信息時,則根據(jù)固定的NANDFLASH指定的地址中讀取文件系統(tǒng)數(shù)據(jù),相應(yīng)的,根據(jù)已約定的文件系統(tǒng)類型和編程方法將系統(tǒng)文件數(shù)據(jù)從固定NAND FLASH指定的起始位置寫入NANDFLASH,直到讀取到的文件系統(tǒng)數(shù)據(jù)全部寫入;所述文件系統(tǒng)數(shù)據(jù)是指文件系統(tǒng)的二進(jìn)制文件的內(nèi)容;所述需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域就是存放讀取的文件系統(tǒng)數(shù)據(jù)的區(qū)域;當(dāng)文件系統(tǒng)信息文件中包含文件系統(tǒng)數(shù)據(jù)校驗碼時,在將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除之前,該方法還可以進(jìn)一步包括根據(jù)讀取的文件系統(tǒng)數(shù)據(jù),計算文件系統(tǒng)數(shù)據(jù)校驗碼;將計算得到的文件系統(tǒng)數(shù)據(jù)校驗碼與文件系統(tǒng)信息文件中的文件系統(tǒng)數(shù)據(jù)校驗碼進(jìn)行比較,確定相同后,則再將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除,否則,退出文件系統(tǒng)的編程過程;其中,Boot Loader程序已事先獲知計算校驗碼的方法;修改所述文件系統(tǒng)信息文件的數(shù)據(jù)為已改寫的標(biāo)識后,在下次啟動時,在讀取到所述文件系統(tǒng)信息文件的內(nèi)容為已改寫的標(biāo)識后,則不會進(jìn)入編程過程;文件系統(tǒng)的編程結(jié)束后,Boot Loader程序加載操作系統(tǒng),操作系統(tǒng)運(yùn)行后,文件系統(tǒng)即可被使用;其中,加載操作系統(tǒng)的具體處理過程與現(xiàn)有的處理過程完全相同,這里不再贅述。下面結(jié)合實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)描述。本實(shí)施例的應(yīng)用場景是嵌入式Linux平臺中的YAFFS2文件系統(tǒng)的編程過程; YAFFS2文件系統(tǒng)是一種能在大容量的NAND FLASH上使用的文件系統(tǒng),它能夠被Linux或 WinCE等操作系統(tǒng)所支持;Boot Loader程序采用U-B00T1. 3. 4版本,嵌入式CPU的核心為 ARM^6EJS,其主頻為180MHz ;采用mkYAFFS2image工具將YAFFS2根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換為YAFFS2文件系統(tǒng)的二進(jìn)制文件。本實(shí)施例基于NAND FLASH的文件系統(tǒng)的自編程方法,如圖2所示,包括以下步驟步驟201 將YAFFS2根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換為YAFFS2文件系統(tǒng)的二進(jìn)制文件。步驟202 根據(jù)預(yù)先配置的文件系統(tǒng)信息文件配置信息,解析YAFFS2文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;這里,預(yù)先配置的文件系統(tǒng)信息文件配置信息包含文件系統(tǒng)信息文件的校驗碼、 魔數(shù)、唯一標(biāo)識碼、文件系統(tǒng)數(shù)據(jù)校驗碼、文件系統(tǒng)信息;相應(yīng)的,得到的文件系統(tǒng)信息文件包含魔數(shù)、唯一標(biāo)識碼、文件系統(tǒng)信息文件的校驗碼、YAFFS2文件系統(tǒng)數(shù)據(jù)校驗碼及 YAFFS2文件系統(tǒng)信息的具體數(shù)據(jù);其中,所述文件系統(tǒng)信息包括文件系統(tǒng)字節(jié)數(shù)、文件系統(tǒng)占用的塊數(shù)量、文件系統(tǒng)占用的頁數(shù)量、文件系統(tǒng)編程方式、文件系統(tǒng)起始位置及其它在編程過程需要的信息。步驟203 =Boot Loader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及YAFFS2文件系統(tǒng)的二進(jìn)制文件通過CPU自帶的NAND FLASH編程接口寫入NANDFLASH中;這里,操作系統(tǒng)為Linux ;YAFFS2文件系統(tǒng)的二進(jìn)制文件以2048字節(jié)+64字節(jié)的方式保存的,在編程過程中需要將2048字節(jié)寫入NAND FLASH的一個頁中,64字節(jié)寫入該頁所對應(yīng)的spare區(qū)中。步驟204 上電后,Boot Loader程序啟動后,對NAND FLASH和內(nèi)存進(jìn)行初始化操作。步驟205 =Boot Loader程序從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,如果正確,則執(zhí)行步驟206,否則,執(zhí)行步驟210 ;這里,可以設(shè)置當(dāng)不正確時通過蜂鳴或液晶屏的顯示提示技術(shù)人員出錯。步驟206:Boot Loader程序根據(jù)文件系統(tǒng)信息文件中指定的地址中讀取文件系統(tǒng)數(shù)據(jù),根據(jù)讀取的YAFFS2文件系統(tǒng)數(shù)據(jù),計算YAFFS2文件系統(tǒng)數(shù)據(jù)校驗碼。步驟207 判斷計算得到的YAFFS2文件系統(tǒng)數(shù)據(jù)校驗碼與文件系統(tǒng)信息文件中的 YAFFS2文件系統(tǒng)數(shù)據(jù)校驗碼是否相同,如果相同,則執(zhí)行步驟208,否則,退出YAFFS2文件系統(tǒng)的編程過程,之后執(zhí)行步驟210 ;這里,可以設(shè)置當(dāng)不正確時通過蜂鳴或液晶屏的顯示提示技術(shù)人員出錯。步驟208 將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除,之后根據(jù)文件系統(tǒng)信息文件中記錄的文件系統(tǒng)類型和編程方法將系統(tǒng)文件數(shù)據(jù)從文件系統(tǒng)信息文件中指定的起始位置寫入NAND FLASH,直到文件系統(tǒng)信息文件中記錄的所有NAND FLASH的塊和頁的數(shù)據(jù)全部寫入。步驟209 完成后,修改所述文件系統(tǒng)信息文件的數(shù)據(jù)為已改寫的標(biāo)識,之后加載操作系統(tǒng),之后執(zhí)行步驟210。步驟210 結(jié)束當(dāng)前處理流程。采用上述方法,整個過程的時間為3如左右,編程完畢后且在操作系統(tǒng)加載后,就可以進(jìn)行應(yīng)用程序的執(zhí)行了。操作系統(tǒng)重新啟動后,則不需要進(jìn)入自編程過程而直接進(jìn)行加載操作系統(tǒng)的操作。如果采用現(xiàn)有的網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)結(jié)合U-B00T進(jìn)行 YAFFS2文件系統(tǒng)編程,則需要準(zhǔn)備一臺Linux服務(wù)器并啟動NFS服務(wù)器。U-B00T啟動后需要技術(shù)人員設(shè)置Linux內(nèi)核的啟動方式、設(shè)置NFS服務(wù)器網(wǎng)絡(luò)之間互連的協(xié)議(IP, Internet Protocol)地址、本機(jī)的媒體訪問控制(MAC,Media Access Control)、及 IP地址。 操作系統(tǒng)內(nèi)核啟動成功掛載NFS文件系統(tǒng)后,通過Linux的Shell命令將YAFFS2文件系統(tǒng)
9的目錄寫入NAND FLASH中,之后需要技術(shù)人員再復(fù)位操作系統(tǒng),之后修改U-BOOT參數(shù),使操作系統(tǒng)讀取NAND FLASH上的文件系統(tǒng)數(shù)據(jù),操作系統(tǒng)內(nèi)核再次啟動后才能正確識別NAND FLASH上的YAFFS2文件系統(tǒng)。整個過程大概需要10分鐘,并且需要技術(shù)人員多次的設(shè)定 Boot Loader程序或操作系統(tǒng)的啟動參數(shù)和使用不同的系統(tǒng)命令,才能完成整個編程。為實(shí)現(xiàn)上述方法,本發(fā)明還提供了一種基于NAND FLASH的文件系統(tǒng)的自編程裝置,如圖3所示,該裝置包括解析單元31、NAND FLASH 32 ;其中,NAND FLASH 32 包括 Boot Loader 程序單元 321 ;解析單元31,用于解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;NAND FLASH 32,用于存儲文件系統(tǒng)信息文件;Boot Loader程序單元321,用于上電后,從NAND FLASH 32中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程。其中,該裝置還可以進(jìn)一步包括二進(jìn)制轉(zhuǎn)換單元,用于將根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換成文件系統(tǒng)的二進(jìn)制文件;該裝置還可以進(jìn)一步包括CPU自帶的NAND FLASH編程接口,用于將操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件寫入NAND FLASH 32中;還用于將Boot Loader 程序?qū)懭隑oot Loader程序單元321。所述Boot Loader程序單元321,還用于啟動后,對設(shè)備進(jìn)行初始化操作。所述Boot Loader程序單元321,還用于當(dāng)確定文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼不正確后,不進(jìn)行任何操作。所述Boot Loader程序單元321,還用于文件系統(tǒng)的編程結(jié)束后,加載操作系統(tǒng)。這里,本發(fā)明的所述裝置中的Boot Loader程序單元的具體處理過程已在上文中詳述,不再贅述。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于NAND閃存(FLASH)的文件系統(tǒng)的自編程方法,其特征在于,該方法包括解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;上電后,Boot Loader程序從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確, 確定均正確后,進(jìn)行文件系統(tǒng)的編程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件,為根據(jù)預(yù)先配置的文件系統(tǒng)信息文件配置信息,設(shè)置魔數(shù)和/或唯一標(biāo)識碼;利用魔數(shù)和/或唯一標(biāo)識碼,計算文件系統(tǒng)信息文件的校驗碼。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件,進(jìn)一步包括利用文件系統(tǒng)的二進(jìn)制文件中的數(shù)據(jù),計算文件系統(tǒng)數(shù)據(jù)校驗碼;和/或,分析文件系統(tǒng)的二進(jìn)制文件中的數(shù)據(jù),得到文件系統(tǒng)信息文件。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,在解析文件系統(tǒng)的二進(jìn)制文件之前,該方法進(jìn)一步包括將根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換成文件系統(tǒng)的二進(jìn)制文件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在上電之前,該方法進(jìn)一步包括Boot Loader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件通過中央處理器(CPU)自帶的NAND FLASH編程接口寫入NAND FLASH中。
6.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述進(jìn)行文件系統(tǒng)的編程,為Boot Loader程序根據(jù)文件系統(tǒng)信息文件中指定的、或固定的NAND FLASH指定的地址中讀取文件系統(tǒng)數(shù)據(jù);之后將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除;根據(jù)文件系統(tǒng)信息文件中記錄的、或已約定的文件系統(tǒng)類型和編程方法將系統(tǒng)文件數(shù)據(jù)從文件系統(tǒng)信息文件中指定的起始位置、或固定NAND FLASH指定的起始位置寫入NAND FLASH,直到讀取到的文件系統(tǒng)數(shù)據(jù)全部寫入;修改所述文件系統(tǒng)信息文件的數(shù)據(jù)為已改寫的標(biāo)識。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,當(dāng)文件系統(tǒng)信息文件中包含文件系統(tǒng)數(shù)據(jù)校驗碼時,在將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除之前,該方法進(jìn)一步包括根據(jù)讀取的文件系統(tǒng)數(shù)據(jù),計算文件系統(tǒng)數(shù)據(jù)校驗碼;將計算得到的文件系統(tǒng)數(shù)據(jù)校驗碼與文件系統(tǒng)信息文件中的文件系統(tǒng)數(shù)據(jù)校驗碼進(jìn)行比較,確定相同后,則將需要寫入文件系統(tǒng)數(shù)據(jù)的區(qū)域擦除。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,在從NANDFLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù)之前,該方法進(jìn)一步包括Boot Loader程序啟動后,對設(shè)備進(jìn)行初始化操作。
9.一種基于NAND FLASH的文件系統(tǒng)的自編程裝置,其特征在于,該裝置包括解析單元、NAND FLASH;其中,NAND FLASH 包括 Boot Loader 程序單元;解析單元,用于解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;NAND FLASH,用于存儲文件系統(tǒng)信息文件;Boot Loader程序單元,用于上電后,從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,該裝置進(jìn)一步包括二進(jìn)制轉(zhuǎn)換單元,用于將根文件系統(tǒng)的目錄結(jié)構(gòu)轉(zhuǎn)換成文件系統(tǒng)的二進(jìn)制文件。
11.根據(jù)權(quán)利要求9或10所述的裝置,其特征在于,該裝置進(jìn)一步包括CPU自帶的NAND FLASH編程接口,用于將Boot Loader程序、操作系統(tǒng)、文件系統(tǒng)信息文件及文件系統(tǒng)的二進(jìn)制文件寫入NAND FLASH中。
全文摘要
本發(fā)明公開了一種基于NAND閃存(FLASH)的文件系統(tǒng)的自編程方法,包括解析文件系統(tǒng)的二進(jìn)制文件,得到文件系統(tǒng)信息文件;上電后,Boot Loader程序從NAND FLASH中讀取并保存文件系統(tǒng)信息文件的數(shù)據(jù),檢驗文件系統(tǒng)信息文件中的文件系統(tǒng)信息文件的校驗碼、魔數(shù)、和/或唯一標(biāo)識碼是否均正確,確定均正確后,進(jìn)行文件系統(tǒng)的編程。本發(fā)明同時公開了一種基于NANDFLASH的文件系統(tǒng)的自編程裝置,采用本發(fā)明的方法及裝置,能快速實(shí)現(xiàn)文件系統(tǒng)的編程,而且,還能降低編程設(shè)備及技術(shù)人員的要求,進(jìn)而能降低研發(fā)和生產(chǎn)成本。
文檔編號G06F17/30GK102467522SQ20101053843
公開日2012年5月23日 申請日期2010年11月10日 優(yōu)先權(quán)日2010年11月10日
發(fā)明者陳亮 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
富平县| 东乡族自治县| 双流县| 梓潼县| 永年县| 米脂县| 永善县| 漾濞| 余干县| 定兴县| 阜南县| 大冶市| 沂源县| 惠东县| 泸州市| 偃师市| 竹溪县| 内江市| 曲靖市| 边坝县| 铜梁县| 台湾省| 永济市| 安国市| 罗山县| 张家港市| 绍兴市| 香港| 滨州市| 盐城市| 新闻| 合川市| 凤台县| 高尔夫| 德阳市| 青铜峡市| 青海省| 盐山县| 南江县| 抚松县| 那曲县|