基于A(yíng)RM系統硬盤(pán)接口的使用和文件管理
對硬盤(pán)內部數據的操作需要了解它的物理存儲方式。磁頭、柱面和扇區是硬盤(pán)的基本結構, 而扇區是對硬盤(pán)讀寫(xiě)的最小單位。硬盤(pán)內部的尋址方式有兩種, 一種是物理尋址的CHS 方式, 另一種是邏輯尋址的LBA 方式。物理尋址CHS 方式是通過(guò)柱面、磁頭和扇區號來(lái)確定唯一的存儲單位, 較為繁瑣。而邏輯尋址方式是采用線(xiàn)性映射方法, 從物理結構到邏輯塊編號的映射關(guān)系如下:
LBA = (柱面編號×磁頭數+ 磁頭號) ×扇區數+ 扇區編號- 1
采用這種方法, 主機不用知道硬盤(pán)的物理結構, 就能直接對目標扇區進(jìn)行尋址。
根據前面的闡述, 編制I/O 控制層的控制程序, 可對IDE 控制寄器進(jìn)行查詢(xún)、設置和邏輯尋址,實(shí)現對指定扇區的讀寫(xiě)。圖2 是讀一個(gè)扇區數據的流程圖, 寫(xiě)扇區的方法和它類(lèi)似, 區別只是在于傳送指令和數據流動(dòng)方向不同。此外, 在檢測狀態(tài)寄存器的時(shí)候, 最好加上超時(shí)判斷, 防止程序陷入死循環(huán)。
3 邏輯映射層控制標準及實(shí)現
3.1 關(guān)于FAT 標準
由于希望ARM 系統對硬盤(pán)的讀寫(xiě)操作能與主流操作系統共享, 該部分軟件是根據與W indow s 相兼容的FA T 標準進(jìn)行編制。用戶(hù)也可以根據實(shí)際情況, 把該設計思路推廣到如L inux 下的EX2 等其它工作平臺。
FA T 標準對硬盤(pán)邏輯結構作了劃分, 主要有分區表、BPB 表、FA T 表、數據區等幾部分。在硬盤(pán)格式化和分區后, 會(huì )在0 柱面0 磁頭1 扇區建立分區表, 此表記載了硬盤(pán)在各分區起始和結束所使用的磁頭、柱面、扇區號。對于每個(gè)分區, 邏輯0 扇區存放了一個(gè)BPB 表, 該表儲存了整個(gè)文件系統關(guān)鍵的數據, 包括文件系統的類(lèi)型, 每個(gè)扇區的字節數(Byte2PerSec ) , 每簇的扇區數(SecPerClu s) , 保留扇區數(R svdSecCn t) , FA T 表數目(N umFA T s) , 根目錄起始簇(Roo tClu s) , 以及盤(pán)符和卷標等。其中簇(Clu STer) 是文件系統在效率原則下管理的最小單位, FA T 32 標準意味著(zhù)每簇有8 扇區, 簇內存貯單元采用32 位二進(jìn)制數。文件系統類(lèi)型還可以使用FA T 12 和FA T 16 標準, 表示簇內存貯單元分別采用12 位和16 位二進(jìn)制數。在格式化硬盤(pán)時(shí), 依據硬盤(pán)簇的數目判斷選用哪種文件系統標準, 若簇數小于4085 則是FA T 12, 若在4085 和65525 之間則是FA T 16, 大于65525 則是FA T 32。由于本文所述的系統使用大容量硬盤(pán), 因而采用FA T 32 文件系統。
在原理上, FA T 32 和其它兩種方式是相同的, 完全可以移植過(guò)去。保留扇區是為BPB 表以后擴展保留一段區間, 暫且未被使用。
評論