分析三星的uboot中的fdisk功能

2021-06-21 02:29:24 字數 1305 閱讀 1894

mbr的分割槽表有4個,每個分割槽表長度為16個位元組。

chs mode表示cylinder/ head/sector,由於硬碟可能有多塊碟片組成,每個碟片正面和反面都可以存資料,所以每個碟片正面和反面各有乙個磁頭,每個碟片的一面都是有一些同心圓組成,這些同心圓就是磁軌,不同碟片上的相同位置的同心圓(磁軌)應該在乙個圓柱體的表面,稱為柱面,同時每個磁軌又會切分成多個扇區,一般扇區的大小為512個位元組。所以容量 = cylinder數*head數*sector數*512。定址過程,比如知道某個塊的偏移量,則先計算在哪個柱面,c = block_offset/ head數*sector數,然後再計算在哪個磁頭(盤面),當然落在前面的柱面內部了,就是餘數部分了,temp = block_offset%head數*sector數,  h = temp / section數, s = temp % section數。

注意:柱面(10bit)是從0開始編號的,磁頭(8bit)也是從0開始編號的,而扇區(6bit)則從1開始編號。所以按照chs模式訪問最大1024x256x63 x512 = 8.4gb。

分割槽表的第2,3,4位元組表示的是起始的磁頭號,扇區號,柱面號,

分割槽表中的第9~12個位元組表示該分割槽之前已經使用的扇區,也就是本分割槽的相對第1個扇區的偏移。注意是小端格式,轉成32為b12 b11 b10 b9。

分割槽表中的第13~16個位元組表示該分割槽扇區總數,即本分割槽的容量。小端格式的,b16 b15 b14 b13。

pbr(partition boot record)表示分割槽引導(boot)記錄。bootloader--->mbr(分割槽總管)--->dpt(disk partition table)共最多4個主分割槽表--->pbr(各具體分割槽引導記錄)。主分割槽一般是0磁頭1柱面1扇區,也稱為邏輯扇區1,絕對扇區為63(0x3f)扇區,注意柱面是從0編碼的,所以跳過1個柱面就是63個扇區。

pbr後面一般緊跟著是fat表。

pbr構成:

1)跳轉指令 偏移 0x0

2)作業系統廠商和版本資訊  偏移 0x3

3)bpb(bios parameter block 偏移 0xb) 以及擴充套件bpb 偏移 0x40

4)  引導程式**

5)有效結束標誌0x55 0xaa

fat16的根目錄直接跟在fat2後面,簇0,簇1保留,簇2開始放data。fat16根目錄大小一般512,即512個目錄,大小512*32/512(扇區大小) = 32 個扇區。data區得跳過這個根目錄區域。這樣fat16根目錄可能會占用幾個簇。

fat32的根目錄可以指定簇,一般放在簇2,簇0,簇1仍然保留。而fat32固定使用簇2存放。所以一般fat32根目錄和data是在同乙個地方。

移植三星uboot

注 為學習朱有鵬嵌入式課程的筆記 三星uboot移植 在source insight裡改,複製到ubuntu中,可以寫個cp.sh,把複製命令都寫進來,再source cp,sh 解決問題首先要定位,細心查詢,總是有效的方法加列印資訊 1.遮蔽pmic模組 uboot執行起來了,但是很多配置錯誤 2...

三星6818基於uboot的流水燈程式

檢視文件目錄查詢到gpio功能相應模組 找到配置gpio的方法 找到對應的暫存器配置位址 1 這個是我們要用到的暫存器圖表 2 這個是gpio復用功能暫存器,由兩位位元位還選擇不同的復用功能,至於功能0 3分別是什麼還需查相關資料這裡就不多解釋了 3 這是我們的輸出輸入使能暫存器 4 這是我們要輸出...

三星的發展歷史

今天簡單了解了三星的發展歷史,這個近百年屹立不倒的偉大企業,真的值得好好研究。這是一步一步耕耘的結果,不浮躁,不斷創新 隨著世界步入第二個千年,三星集團也邁向了她的第二個世紀。數字時代為全球業務帶來了革命性的機遇和革新。三星集團一直緊隨這些變革,並不斷地更新自己的業務結構 經營理念以及公司文化,以滿...