基于VxWorks移植的YAFFS文件系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及YAFFS文件系統(tǒng),特別是涉及一種基于VxWorks移植的YAFFS文件系統(tǒng)。
【背景技術(shù)】
[0002]在VxWorks5.5系統(tǒng)中,原始的FLASH文件系統(tǒng)只有TFFS文件系統(tǒng),但它是32位的文件系統(tǒng),不具備N(xiāo)AND FLASH進(jìn)行文件管理所需的壞塊管理,內(nèi)部管理模式是按照硬盤(pán)的文件方式進(jìn)行管理的(512B為單元進(jìn)行管理),工作效率很低,不適合大容量(大于2GB)和讀寫(xiě)速率要求快的NAND FLASH管理。
[0003]當(dāng)NAND FLASH出現(xiàn)新的壞塊時(shí),TFFS是無(wú)法恢復(fù)只能重新格式化,這樣導(dǎo)致以前存入的文件丟失,文件系統(tǒng)的穩(wěn)定性很低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于VxWorks移植的YAFFS文件系統(tǒng),解決了 VxWorks下無(wú)法使用大容量NAND FLASH進(jìn)行文件管理、穩(wěn)定性低和效率低的問(wèn)題。
[0005]本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:基于VxWorks移植的YAFFS文件系統(tǒng),包括I/o驅(qū)動(dòng)注冊(cè)模塊、YAFFS設(shè)備創(chuàng)建模塊、FLASH驅(qū)動(dòng)模塊和I/O接口模塊。
[0006]所述FLASH驅(qū)動(dòng)模塊包括:
讀出子模塊,用于FLASH的讀出;
寫(xiě)入子模塊,用于FLASH的寫(xiě)入;
擦除子模塊,用于FLASH的擦除;
壞塊識(shí)別子模塊,用于識(shí)別FLASH的壞塊;
壞塊標(biāo)識(shí)子模塊,用于標(biāo)識(shí)FLASH的壞塊。
[0007]所述I/O接口模塊包括:
文件創(chuàng)建子模塊,用于打開(kāi)和創(chuàng)建FLASH文件系統(tǒng);
數(shù)據(jù)寫(xiě)入子模塊,用于寫(xiě)入FLASH文件系統(tǒng)數(shù)據(jù);
數(shù)據(jù)讀出子模塊,用于讀出FLASH文件系統(tǒng)數(shù)據(jù);
關(guān)閉子模塊,用于關(guān)閉FLASH文件系統(tǒng);
I/O控制子模塊,用于改變文件句柄的偏移量,獲取文件句柄的偏移量、創(chuàng)建文件路徑、刪除文件路徑、獲取文件路徑信息以及文件系統(tǒng)檢測(cè)。
[0008]所述YAFFS文件系統(tǒng)為64位位寬的文件系統(tǒng)。
[0009]所述FLASH驅(qū)動(dòng)模塊包括NAND FLASH驅(qū)動(dòng)模塊和NOR FLASH驅(qū)動(dòng)模塊中的至少一種。
[0010]本發(fā)明的有益效果是:
1、本發(fā)明支持大容量(大于2BG)的NAND FLAS文件管理,因此能夠支持更多的NANDFLASH ;
2、本發(fā)明包含壞塊識(shí)別模塊和壞塊標(biāo)識(shí)模塊,能夠進(jìn)行壞塊管理,防止因NANDFLASH塊損壞導(dǎo)致文件系統(tǒng)丟失,從而提高了文件系統(tǒng)的穩(wěn)定性;
3、本發(fā)明是按照NANDFLASH的存儲(chǔ)格式為單位進(jìn)行管理,提高了文件系統(tǒng)的操作效率,從而提升文件的寫(xiě)入速率;
4、本發(fā)明可以使用VxWorks的標(biāo)準(zhǔn)文件操作函數(shù)進(jìn)行文件操作;
5、本發(fā)明可以使用VxWorks的FTPSERVER組件,通過(guò)遠(yuǎn)程的FTP Client登陸進(jìn)行操作;
6、本發(fā)明為64位位寬的文件系統(tǒng),支持大于4GB的NANDFLASH,按照NAND FLASH的存儲(chǔ)結(jié)構(gòu)進(jìn)行操作。
【附圖說(shuō)明】
[0011]圖1為本發(fā)明基于VxWorks移植的YAFFS文件系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為圖1中I/O控制子模塊yaff2_1ctl包含的功能的示意圖。
【具體實(shí)施方式】
[0012]下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
[0013]如圖1和圖2所示,基于VxWorks移植的YAFFS文件系統(tǒng),包括I/O驅(qū)動(dòng)注冊(cè)模塊、YAFFS設(shè)備創(chuàng)建模塊、NAND FLASH驅(qū)動(dòng)模塊和I/O接口模塊。
[0014]所述NAND FLASH驅(qū)動(dòng)模塊包括:
讀出子模塊yflash2_ReadChunk,用于NAND FLASH的讀出;
寫(xiě)入子模塊yf lash2_WriteChunk,用于NAND FLASH的寫(xiě)入;
擦除子模塊yflash2_EraseBlock,用于NAND FLASH的擦除;
壞塊識(shí)別子模塊yflaSh2_CheckBad,用于識(shí)別NAND FLASH的壞塊;壞塊識(shí)別子模塊進(jìn)行壞塊識(shí)別的方法為:擦除NAND FLASH,第一頁(yè)的SPARE空間的第一個(gè)字節(jié)不為OXFF的為壞塊。
[0015]壞塊標(biāo)識(shí)子模塊yflash2_MarkBad,用于標(biāo)識(shí)NAND FLASH的壞塊。壞塊標(biāo)識(shí)子模塊進(jìn)行壞塊標(biāo)識(shí)的方法為:在壞塊的第一頁(yè)的SPARE空間的第一個(gè)字節(jié)寫(xiě)入非OXFF的值。
[0016]所述I/O接口模塊包括:
文件創(chuàng)建子模塊yafTS2_0pen,用于打開(kāi)和創(chuàng)建NAND FLASH文件系統(tǒng);
數(shù)據(jù)寫(xiě)入子模塊yaffs2_write,用于寫(xiě)入NAND FLASH文件系統(tǒng)數(shù)據(jù);
數(shù)據(jù)讀出子模塊yaffs2_read,用于讀出NAND FLASH文件系統(tǒng)數(shù)據(jù);
關(guān)閉子模塊yaffs2_close,用于關(guān)閉NAND FLASH文件系統(tǒng);
I/O控制子模塊yafTs2_i0Ctl,用于改變文件句柄的偏移量,獲取文件句柄的偏移量、創(chuàng)建文件路徑、刪除文件路徑、獲取文件路徑信息以及文件系統(tǒng)檢測(cè)。
[0017]所述YAFFS文件系統(tǒng)為64位位寬的文件系統(tǒng)。
[0018]本發(fā)明公開(kāi)了基于VxWorks移植的YAFFS文件系統(tǒng),它支持64位位寬的文件系統(tǒng),能夠支持容量很大的NAND FLASH,讀寫(xiě)是按照NAND FLASH的基本單位(page)進(jìn)行操作,存儲(chǔ)效率高,能夠有效支持NAND FLASH的壞塊管理,穩(wěn)定性高,從而解決了 VxWorks下使用NAND FLASH作為文件系統(tǒng)存儲(chǔ)介質(zhì)不支持大容量、無(wú)壞塊管理、執(zhí)行效率低的問(wèn)題。
[0019]本發(fā)明中YAFFS文件系統(tǒng)的核心模塊是NAND FLASH驅(qū)動(dòng)模塊,但是該NAND FLASH驅(qū)動(dòng)模塊不能直接在VxWorks系統(tǒng)下使用,因此,本發(fā)明中添加了 I/O接口模塊,I/O接口模塊包括VxWorks系統(tǒng)的標(biāo)準(zhǔn)I/O接口函數(shù),通過(guò)VxWorks系統(tǒng)的標(biāo)準(zhǔn)I/O接口函數(shù)去調(diào)用NAND FLASH驅(qū)動(dòng)模塊的接口函數(shù)。
[0020]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構(gòu)想范圍內(nèi),通過(guò)上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.基于VxWorks移植的YAFFS文件系統(tǒng),其特征在于:包括I/O驅(qū)動(dòng)注冊(cè)模塊、YAFFS設(shè)備創(chuàng)建模塊、FLASH驅(qū)動(dòng)模塊和I/O接口模塊; 所述FLASH驅(qū)動(dòng)模塊包括: 讀出子模塊,用于FLASH的讀出; 寫(xiě)入子模塊,用于FLASH的寫(xiě)入; 擦除子模塊,用于FLASH的擦除; 壞塊識(shí)別子模塊,用于識(shí)別FLASH的壞塊; 壞塊標(biāo)識(shí)子模塊,用于標(biāo)識(shí)FLASH的壞塊; 所述I/O接口模塊包括: 文件創(chuàng)建子模塊,用于打開(kāi)和創(chuàng)建FLASH文件系統(tǒng); 數(shù)據(jù)寫(xiě)入子模塊,用于寫(xiě)入FLASH文件系統(tǒng)數(shù)據(jù); 數(shù)據(jù)讀出子模塊,用于讀出FLASH文件系統(tǒng)數(shù)據(jù); 關(guān)閉子模塊,用于關(guān)閉FLASH文件系統(tǒng); I/O控制子模塊,用于改變文件句柄的偏移量,獲取文件句柄的偏移量、創(chuàng)建文件路徑、刪除文件路徑、獲取文件路徑信息以及文件系統(tǒng)檢測(cè)。2.根據(jù)權(quán)利要求1所述的基于VxWorks移植的YAFFS文件系統(tǒng),其特征在于:所述YAFFS文件系統(tǒng)為64位位寬的文件系統(tǒng)。3.根據(jù)權(quán)利要求1所述的基于VxWorks移植的YAFFS文件系統(tǒng),其特征在于:所述FLASH驅(qū)動(dòng)模塊包括NAND FLASH驅(qū)動(dòng)模塊和NOR FLASH驅(qū)動(dòng)模塊中的至少一種。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于VxWorks移植的YAFFS文件系統(tǒng),包括I/O驅(qū)動(dòng)注冊(cè)模塊、YAFFS設(shè)備創(chuàng)建模塊、FLASH驅(qū)動(dòng)模塊和I/O接口模塊;FLASH驅(qū)動(dòng)模塊包括:讀出子模塊,用于FLASH的讀出;寫(xiě)入子模塊,用于FLASH的寫(xiě)入;擦除子模塊,用于FLASH的擦除;壞塊識(shí)別子模塊,用于識(shí)別FLASH的壞塊;壞塊標(biāo)識(shí)子模塊,用于標(biāo)識(shí)FLASH的壞塊;I/O接口模塊包括:文件創(chuàng)建子模塊,用于打開(kāi)和創(chuàng)建FLASH文件系統(tǒng);數(shù)據(jù)寫(xiě)入子模塊,用于寫(xiě)入FLASH文件系統(tǒng)數(shù)據(jù);數(shù)據(jù)讀出子模塊,用于讀出FLASH文件系統(tǒng)數(shù)據(jù);關(guān)閉子模塊,用于關(guān)閉FLASH文件系統(tǒng);I/O控制子模塊,用于改變文件句柄的偏移量。本發(fā)明解決了VxWorks下無(wú)法使用大容量FLASH進(jìn)行文件管理、穩(wěn)定性低和效率低的問(wèn)題。
【IPC分類(lèi)】G06F17/30
【公開(kāi)號(hào)】CN105354218
【申請(qǐng)?zhí)枴緾N201510630629
【發(fā)明人】李永軍, 楊松, 楊磊, 邱禮勝, 曾偉軍, 李慈航, 唐棋
【申請(qǐng)人】成都嘉泰華力科技有限責(zé)任公司
【公開(kāi)日】2016年2月24日
【申請(qǐng)日】2015年9月29日