基于嵌入式視頻存儲(chǔ)的專用文件系統(tǒng)設(shè)計(jì)
2.1 磁盤信息區(qū)
磁盤信息區(qū)的位置固定,用于保存當(dāng)前磁盤信息和文件系統(tǒng)基本信息,如記錄每個(gè)區(qū)域的具體位置和大小、信息區(qū)的使用情況、最后數(shù)據(jù)塊位置等。下面為典型的磁盤信息結(jié)構(gòu):
typedef STruct {
UInt32 Formatted;/*格式化標(biāo)志*/
UInt32 DBN_Num;/*總數(shù)據(jù)塊數(shù)*/
UInt32 DBN_Size;/*數(shù)據(jù)塊的大小*/
UInt32 DBN_Begin;/*當(dāng)前可用數(shù)據(jù)塊開始地址*/
UInt32 CurrentFAT;/*當(dāng)前所用的分區(qū)*/
UInt32 OtherInfoBlockAddr; /*保留信息區(qū)開始扇區(qū)*/
UInt32 OtherInfoBlockSize;/*保留信息區(qū)大小*/
UInt32 FileInfoBlockAddr[2][MAX_CHANNEL]; /*文件信息塊開始扇區(qū)*/
UInt32 FileInfoBlockSize;/*文件信息區(qū)大小*/
UInt32 IndexInfoBlockAddr[2][ MAX_CHANNEL];/*索引信息塊開始扇區(qū)*/
UInt32 IndexInfoBlockSize;/*索引信息區(qū)大小*/
} DiskInfo;
2.2 保留信息區(qū)
保留信息區(qū)用于保存其他系統(tǒng)信息,如操作日志信息、系統(tǒng)設(shè)置信息等,此區(qū)域大小可自由設(shè)定。
2.3 文件信息區(qū)
文件信息區(qū)用于保存錄像文件的文件信息,如錄像開始和結(jié)束時(shí)間,第一個(gè)數(shù)據(jù)塊和最后一個(gè)數(shù)據(jù)塊的位置,索引信息的位置和其他文件信息。每個(gè)文件的數(shù)據(jù)結(jié)構(gòu)和大小固定。通過文件序號(hào)就可以準(zhǔn)確定位文件信息的具體位置。
文件信息區(qū)分兩個(gè)部分,分別為分區(qū)一和分區(qū)二,用于描述覆蓋前的文件信息和覆蓋后的文件信息。每個(gè)分區(qū)根據(jù)最大文件數(shù)按錄像路數(shù)順序分配存儲(chǔ)空間。
每個(gè)文件信息包含以下信息:文件開始時(shí)間和結(jié)束時(shí)間,文件開始索引塊地址和結(jié)束索引塊地址,文件開始數(shù)據(jù)塊地址和結(jié)束數(shù)據(jù)塊地址等。下面為典型的文件信息結(jié)構(gòu):
typedef struct {
UInt32 FileID;/*文件序號(hào)*/
time_t FileStartTime;/*錄像開始時(shí)間*/
time_t FileEndTime;/*錄像結(jié)束時(shí)間*/
UInt32 FileStartDBN;/*文件開始DBN*/
UInt32 FileEndDBN;/*文件結(jié)束DBN*/
IndexInfoAddr IndexInfoStart;/*索引信息開始地址*/
IndexInfoAddr IndexInfoEnd;/*索引信息結(jié)束地址*/
} FileInfo;
2.4 索引信息區(qū)
索引信息區(qū)用于保存錄像文件所使用數(shù)據(jù)塊的索引信息。索引信息也分為兩部分,分別為分區(qū)一和分區(qū)二,用于描述覆蓋前和覆蓋后的索引信息。每個(gè)分區(qū)根據(jù)最大文件數(shù)按錄像路數(shù)順序分配存儲(chǔ)空間。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評(píng)論