System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及通信,具體涉及一種基于yaffs文件系統對硬盤的訪問方法。
技術介紹
1、yaffs文件系統是一種針對nand?flash(閃存)設計的嵌入式日志型文件系統,具有占用內存少、啟動速度快等優點。而針對硬盤,雖然有許多常用的文件系統,如fat32、dosfs、ext3、ext4等,但不具備這些優點。而有些應用場景中,硬件架構中就只有硬盤,并沒有配置閃存。此時如果能夠基于yaffs文件系統對硬盤進行訪問,則也能讓這樣硬件架構的系統利用上上述優勢。
技術實現思路
1、本專利技術的目的在于提供一種基于yaffs文件系統對硬盤的訪問方法,能夠基于yaffs文件系統對硬盤進行訪問。
2、為達上述目的,本專利技術提供如下技術方案:
3、本專利技術提供一種基于yaffs文件系統對硬盤的訪問方法,所述yaffs文件系統包括鉤子函數和驅動函數;所述鉤子函數接收所述yaffs文件系統下發的訪問指令,調用所述驅動函數;所述鉤子函數具有針對nand?flash的訪問參數,所述驅動函數將所述針對nandflash的訪問參數轉換為針對硬盤的訪問參數,從而將硬盤模擬為nand?flash進行訪問。
4、在一實施方式中,所述驅動函數將所述針對nand?flash的訪問參數轉換為針對硬盤的訪問參數,包括將針對nand?flash的訪問nand?flash的第幾個block的第幾個page的多少字節轉換為針對硬盤的訪問硬盤的第幾個sector的多少字節。
5、
6、startsector?=?n1,以硬盤中第n1個sector作為所述yaffs文件系統對應的模擬的nand?flash的起始位置,n1為大于等于0的整數,根據需要任意設置;
7、blocknum?=?n2,模擬的nand?flash中block的數量,n2為大于等于1的整數,根據需要任意設置;
8、pagenum?=?n3,模擬的nand?flash中每個block中page的數量,n3為大于等于1的整數,根據需要任意設置;
9、datahassectornum?=?datasize?/?sectorsize?=?n4,模擬的nand?flash中每個page的data區占用硬盤的sector數量,且向上取整,datasize為模擬的nand?flash中每個page的data區的大小,sectorsize為硬盤每個sector的大?。?/p>
10、oobhassectornum?=?oobsize?/?sectorsize?=?n5,模擬的nand?flash中每個page的oob區占用硬盤的sector數量,且向上取整,oobsize為模擬的nand?flash中每個page的oob區的大?。?/p>
11、block[i].page[j].data?=?startsector?+?i?*?n3?*?(n4?+?n5)?+?j?*?(n4?+n5),模擬的nand?flash中編號為i的block中編號為j的page的data區對應的所在硬盤的起始sector編號,i和j均為大于等于0的整數,且i小于n2,j小于n3;
12、block[i].page[j].oob?=?startsector?+?i?*?n3?*?(n4?+?n5)?+?j?*?(n4?+n5)?+?n4,模擬的nand?flash中編號為i的block中編號為j的page的oob區對應的所在硬盤的起始sector編號。
13、在一實施方式中,n1?=?100,n2?=?1024,n3?=?64,n4?=?4,n5?=?1,datasize?=2kbyte,oobsize?=?64byte,sectorsize?=?512?byte。
14、在一實施方式中,所述驅動函數將所述針對nand?flash的訪問參數轉換為針對硬盤的訪問參數是根據以下公式進行轉換:
15、startsector?=?n1,以硬盤中第n1個sector作為所述yaffs文件系統對應的模擬的nand?flash的起始位置,n1為大于等于0的整數,根據需要任意設置;
16、blocknum?=?n2,模擬的nand?flash中block的數量,n2為大于等于1的整數,根據需要任意設置;
17、pagenum?=?n3,模擬的nand?flash中每個block中page的數量,n3為大于等于1的整數,根據需要任意設置;
18、datahassectornum?=?datasize?/?sectorsize?=?n4,模擬的nand?flash中每個page的data區占用硬盤的sector數量,且向上取整,datasize為模擬的nand?flash中每個page的data區的大小,sectorsize為硬盤每個sector的大??;
19、oobhassectornum?=?oobsize?/?sectorsize?=?n5,模擬的nand?flash中每個page的oob區占用硬盤的sector數量,且向上取整,oobsize為模擬的nand?flash中每個page的oob區的大??;
20、block[i].page[j].data?=?startsector?+?i?*?n3?*?n4?+?j?*?n4,模擬的nandflash中編號為i的block中編號為j的page的data區對應的所在硬盤的起始sector編號,i和j均為大于等于0的整數,且i小于n2,j小于n3;
21、block[i].page[j].oob?=?startsector?+?n2?*?n3?*?n4?+?reservedsector?+i?*?n3?+?j?*?n5,模擬的nand?flash中編號為i的block中編號為j的page的oob區對應的所在硬盤的起始sector編號;reservedsector是全部的data區與全部的oob區之間的空閑區,為大于等于0的整數,可根據需要任意設置。
22、在一實施方式中,所述驅動函數還調用驅動硬盤的操作函數。
23、在一實施方式中,所述鉤子函數包括讀函數、寫函數、擦除函數、壞塊管理函數。
24、與現有技術相比,本專利技術的技術方案具有以下有益效果:
25、本專利技術所述基于yaffs文件系統對硬盤的訪問方法,通過驅動函數將針對nandflash的訪問參數轉換為針對硬盤的訪問參數,實現了將硬盤模擬為nand?flash進行訪問。
本文檔來自技高網...【技術保護點】
1.一種基于YAFFS文件系統對硬盤的訪問方法,其特征在于,所述YAFFS文件系統包括鉤子函數和驅動函數;所述鉤子函數接收所述YAFFS文件系統下發的訪問指令,調用所述驅動函數;所述鉤子函數具有針對nand?flash的訪問參數,所述驅動函數將所述針對nandflash的訪問參數轉換為針對硬盤的訪問參數,從而將硬盤模擬為nand?flash進行訪問;
2.根據權利要求1所述的基于YAFFS文件系統對硬盤的訪問方法,其特征在于,n1?=100,n2?=?1024,n3?=?64,n4?=?4,n5?=?1,dataSize?=?2KByte,oobSize?=?64byte,sectorSize?=?512?byte。
3.根據權利要求1所述的基于YAFFS文件系統對硬盤的訪問方法,其特征在于,所述驅動函數將所述針對nand?flash的訪問參數轉換為針對硬盤的訪問參數,包括將針對nandflash的訪問nand?flash的第幾個block的第幾個page的多少字節轉換為針對硬盤的訪問硬盤的第幾個sector的多少字節。
4.根據權利要求1所述
5.根據權利要求1所述的基于YAFFS文件系統對硬盤的訪問方法,其特征在于,所述驅動函數還調用驅動硬盤的操作函數。
6.根據權利要求1所述的基于YAFFS文件系統對硬盤的訪問方法,其特征在于,所述鉤子函數包括讀函數、寫函數、擦除函數、壞塊管理函數。
...【技術特征摘要】
1.一種基于yaffs文件系統對硬盤的訪問方法,其特征在于,所述yaffs文件系統包括鉤子函數和驅動函數;所述鉤子函數接收所述yaffs文件系統下發的訪問指令,調用所述驅動函數;所述鉤子函數具有針對nand?flash的訪問參數,所述驅動函數將所述針對nandflash的訪問參數轉換為針對硬盤的訪問參數,從而將硬盤模擬為nand?flash進行訪問;
2.根據權利要求1所述的基于yaffs文件系統對硬盤的訪問方法,其特征在于,n1?=100,n2?=?1024,n3?=?64,n4?=?4,n5?=?1,datasize?=?2kbyte,oobsize?=?64byte,sectorsize?=?512?byte。
3.根據權利要求1所述的基于yaffs文件系統對硬盤的訪問方法,...
【專利技術屬性】
技術研發人員:陳應強,
申請(專利權)人:蘇州藍博控制技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。