基于DSP視頻系統的CF卡FAT文件系統設計與實現
(1)讀取文件的目錄項信息,獲得其長度,起始簇號等信息,通過簇鏈找到文件已寫到的最后一個簇號。并利用文件長度信息,計算出最后一簇已寫的扇區數。若writen_seetnum為0,則需要尋找下一個未占用的簇。
(2)利用SCOM通信獲取編碼線程發送過來的幀頭信息和幀數據,將其寫入CF卡,按照圖2所示的4種情況進行處理。與讀文件不同的是,在更新簇號時需要尋找未占用簇。
(3)寫完此幀數據后,通過SCOM通信向解碼線程發送數據消息,并更新目錄項和FAT表及FAT2表。
(4)重復以上步驟。寫完所有的圖像幀后,將更新后的目錄項FAT表及FAT2表寫入CF卡相應位置。
若要實現文件覆蓋,在寫文件之前調用FAT_delete函數將文件刪除,然后再重新創建寫入即可。
FAT_delete函數首先調用FAT_getfileinfo函數判斷文件是否存在,若存在則獲取文件的目錄項及其索引位置。將FAT表中的簇鏈清除,并將目錄項中文件名的第一個字符值置為0xe5,表示已刪除。
2 實驗結果與結論
CF卡FAT文件系統的設計功能分別在DM642平臺和Windows操作系統中得到了驗證。在DM642視頻處理平臺上,可對文件進行各種操作,包括格式化CF卡,創建新的空文件,寫入視頻文件,包括以拼接方式寫文件和以覆蓋方式寫文件,刪除文件。
在DM642平臺上寫入4個視頻文件到CF卡,視頻文件經過H.264格式壓縮,每個文件寫入200幀。將CF卡通過讀卡器與PC機連接,可在PC機中查看到文件并進行各種操作,如刪除、移動、復制等。
圖3是CF卡在Windows系統中視頻文件的查看。本文引用地址:http://www.104case.com/article/150359.htm
圖4為WinHex工具下查看的CF文件系統信息內容,可以查看到CF卡中的內容存放形式以及各個部分的起始位置以及占用空間大小。
實驗結果表明,本文設計的FAT文件系統能成功地運用在DSP視頻處理平臺上。通過該系統,可對視頻數據進行FAT文件格式的實時存儲。此系統設計方案還可應用于一相關存儲設備(如SD卡)和實時系統。
評論