基于UBOOT的小尺寸鏡像系統(tǒng)燒寫
此方案最簡單,所以放在最前面說。此方案實現(xiàn)的前提如下:
1、 系統(tǒng)鏡像尺寸小于電路板上的DDR3內(nèi)存大小。
2、 電路板上有SD卡槽。
除此之外,不需要再有其他要求了,不需要網(wǎng)口,不需要USB接口、Nand Flash等。考慮到電路板上的存儲空間一般都大于等于256MB,所以我們提供了一個尺寸為240MB的小尺寸系統(tǒng)鏡像。名為AC540-SoC-Console-240M.img。
燒寫步驟:
1、 準(zhǔn)備一張能正常啟動電路板的SD卡,例如燒錄了我們提供的“AC540-SoC-Console.img”鏡像的SD卡。
2、 將AC540-SoC-Console-240M.img這個小尺寸鏡像文件拷貝在制作好鏡像的SD卡的FAT分區(qū)。
3、 使用SD卡啟動開發(fā)板,在串口終端中連續(xù)按鍵盤任意鍵,讓開發(fā)板停在UBOOT階段。
4、 使用mmc list命令查看當(dāng)前的MMC設(shè)備情況,可以看到,MMC設(shè)備只有一個,編號為0,如下圖所示:
5、 使用fatls mmc 0命令查看該MMC設(shè)備中的FAT分區(qū)的內(nèi)容,可以看到,分區(qū)中就有我們存放的AC540-SoC-Console-240M.img這個文件,如下圖所示
6、 使用fatload mmc 0 0x1000000 AC540-SoC-Console-240M.img命令將AC540-SoC-Console-240M.img文件內(nèi)容讀取到內(nèi)存的0x1000000地址,如下圖所示:
7、 拔出SD卡!
8、 拔出SD卡!
9、 拔出SD卡!
10、 使用mmc rescan命令重新掃描MMC設(shè)備,以讓EMMC掛載上,此命令無返回提示信息。
11、 使用mmc write 0x10000000x0 0x78700命令將內(nèi)存中從0x1000000地址開始的數(shù)據(jù)寫入到MMC的第0號塊起始的493312(0x78700)個塊中,如下圖所示。MMC寫入是以塊為單位的,每個塊的容量是512字節(jié),而上述讀取到的img文件的長度為252575744字節(jié),所以換算成塊就是252575744/512 = 493312,十六進(jìn)制值也就是0x787000。
12、 在不插入SD卡的情況下,重啟開發(fā)板,就能發(fā)現(xiàn)開發(fā)板正常開始運行了。此時就是運行的存儲在EMMC中的系統(tǒng)。
13、 進(jìn)入系統(tǒng)之后,輸入fdisk –l命令,查看磁盤的分區(qū)情況,如下圖所示。
14、 輸入df –h命令查看系統(tǒng)分區(qū)的磁盤使用情況,可以看到,當(dāng)前系統(tǒng)空間為139.1MB,已經(jīng)使用了110.5MB,還剩余21.3MB可以使用。
通過上述第14步的結(jié)果可以看出,該方案確實完成了EMMC的燒寫,只不過對EMMC的存儲空間利用率非常低,8GB的EMMC存儲器,總共只使用了240MB,還有非常大的存儲空間完全沒有規(guī)劃使用,浪費掉了。所以,這個方案比較適合那類對Linux系統(tǒng)空間容量要求不高的應(yīng)用。