1、uboot階段對flash的分割槽
(1)、所謂分割槽,就是對flash進行分塊管理。
(2)、pc機等產品中,因為大家都是在作業系統下使用硬碟的,整個硬碟由作業系統統一管理,作業系統會使用檔案系統幫助我們管理磁碟空間。(管理保證了檔案之間不會相互堆疊),於是乎使用者不用自己太多在意分割槽問題。
(3)、在uboot中是沒有作業系統的,因此我們對flash(相當於硬碟)的管理必須事先使用分割槽界定(實際上在uboot中和kernel中都有乙個分割槽表,分割槽表就是我們在做系統移植時對flash的整體管理分配方法)。有了這個界定之後,我們在部署系統時按照分割槽界定方法來部署,uboot和kernel的軟體中也是按照這個分割槽界定來工作,這樣就不會出錯。
(4)、分割槽方法不是一定的,不是固定的,是可以變動的。但是在乙個移植中必須事先設計好定死,一般在設計系統移植時就會定好,定的標準就是:
uboot:uboot必須從flash起始位址開始存放(也許是扇區0,也許是扇區1,也許是其他,這個主要取決於soc的啟動設計),uboot分割槽的大小必須保證uboot肯定能放下,一般設計為512kb或者是1mb(因為一般的uboot肯定不足512kb,給再大其實也可以工作,但是浪費);
kernel:kernel可以緊貼環境變數存放,大小一般為3mb或者5mb或者其他。
rootfs:rootfs可以緊貼kernel存放,大小看個人需求了。
剩下的就是自由分割槽了,一般kernel啟動後將自由分割槽掛載到rootfs下使用。
總結:一般規律如下:
(1)各分割槽彼此相連,前面乙個分割槽的結尾就是後乙個分割槽的開頭。
(2)整個flash充分利用,從開頭到結尾。
(3)uboot必須在flash開頭,其他分割槽相對位置是可變的。
(4)各分割槽的大小由系統移植工程師自己來定,一般定為合適大小(不能太小,太小了容易溢位;不能太大,太大了浪費空間)
(5)分割槽在系統移植前確定好,在uboot中和kernel中使用同乙個分割槽表,將來在系統部署時和系統**中的分割槽方法也必須一樣。
uboot階段對ddr的分割槽
(1)ddr的分割槽和flash的分割槽不同,主要是因為flash是掉電存在的,而ddr是掉電消失,因此可以說ddr是每次系統執行時才開始部署使用的。
(2)記憶體的分割槽主要是在linux核心啟動起來之前,linux核心啟動後記憶體的管理模組會接管整個記憶體空間,那時候就不用我們來管了。
(3)注意記憶體分割槽關鍵就在於記憶體中哪一塊用來幹什麼必須分配好,以避免各個不同功能使用了同一塊記憶體造成的相互踩踏。
uboot對Flash和DDR的管理
1 flash 分割槽管理 flash 分割槽如下 功能 自由分割槽 待用空間 一般做根檔案系統使用 rootfs 根檔案系統檔案 kernel 核心檔案 var環境變數 uboot bootlater 必須在最前面 有作業系統 有作業系統的時候,系統自動幫我們對硬碟 flash 進行管理 無作業系...
uboot移植 DDR初始化
配置 wind10,ubuntu16.04,mx6ul alpha開發板,ddr stress tester工具。內容 在編譯uboot之前初始化ddr。將linux的核心和裝置樹從emmc,或者網路中拷貝到ddr中,linux在ddr中執行。每個板子的ddr不同,所以要初始化。編譯uboot u ...
uboot與kernel的flash分割槽
1.我們可以在uboot中修改flash分割槽。2.我們也可以在kernel中修改flash分割槽,但是需要與uboot中的分割槽表一致。3.我們可以通過uboot用引數傳給kernel分割槽資訊,這樣只需要維護uboot的分割槽表即可。這要對bootloader對核心重新分割槽 這需要重新設定一下...