1. 程式人生 > >關於UBOOT,LINUX核心編譯,根檔案系統的15個弱智問題

關於UBOOT,LINUX核心編譯,根檔案系統的15個弱智問題

(1)核心預設執行地址和載入地址在哪裡設定?

(2)從FLASH什麼地址找核心和根檔案系統,UBOOT在哪裡設定?

(3)啟動時UBOOT將根檔案系統和核心拷貝到RAM中何處在哪裡設定?

(4)UBOOT 如何知道核心與根檔案系統的格式和大小?

(5)核心啟動引數在編譯UBOOT時候哪裡指定?

(6)核心啟動後如何知道在SDRAM中何處找到根檔案系統來掛載?如何知道根檔案系統大小和格式?

(7)核心如何知道UBOOT欲傳遞給核心的引數放在SDRAM中何處?

(8)核心編譯時候的執行地址在哪裡指定?核心是位置無關碼嗎?

(9)友善之臂MINI2440的說明書寫道:
由於本系統採用了可讀寫檔案系統 yaffs(在嵌入式系統中,專門管理 Flash 儲存器的
一種檔案系統),因此可以很方便的動態儲存資料,掉電後不會丟失。開機後在串列埠終端執行
以下命令: #cp / shanghaitan.mp3 /home/plg 此時將在/home/fa目錄下複製一個同樣的檔案,然後關機,重新開啟系統,可以檢視
到/home/plg 目錄下的檔案依然存在。

----- 根檔案系統不是已經搬運到在RAM中了?COPY檔案是在RAM中啊怎麼會寫到FLASH裡呢?


(10)核心啟動引數在配置核心時候可以選。BOOTLOADER也可以傳引數。這兩種引數是互補的關係還是誰優先的關係(如果有衝突的話)?

(11) 友善的板子SUPERVIVI/UBOOT從NOR啟動然後可以燒寫檔案到NAND,但是不能從NAND啟動然後燒寫檔案到NOR ----燒檔案到NOR需要HJTAG或者

JLINK,BOOTLOADER,如UBOOT有支援燒寫NOR的嗎?



(12) 配置核心(或VIVI)執行MAKE MENUCONFIG 時是否頂層如果已經有專門配好的設定.config,make就會自動調入.config的配置,但是如果沒有.config按照哪個預設值顯示呢?

(13)LINUX核心和根檔案系統映像在NAND中的起始地址和大小的資訊,是不是要UBOOT在程式中寫死,這樣的話,對某一個特定版本的UBOOT,LINUX內

核和根檔案系統就不能在NAND中任意位置燒寫了。還是,核心和根檔案系統在NAND中的位置和大小都是可變的,同一個版本的UBOOT可以智慧地檢測

出這些資訊從而正常啟動linux?

(14) 修改UBOOT程式碼讓UBOOT支援“JFFS2/CRAMFS/YAFFS” -------- 這句話是什麼意思? uboot的作用不就是把FLASH裡的根檔案系統搬運到SDRAM裡嗎?管它是什麼格式能COPY到SDRAM不久行了嗎?

(15)據說lINUX核心可以在FLASH本地也可以載入到記憶體中執行,UBOOT是哪種方式?編譯UBOOT可以選擇用哪種方式嗎?

1. 看《嵌入式LINUX應用開發完全手冊》302頁
2. UBOOT裡有環境變數,UBOOT啟動後,會根據bootcmd這個環境變數來執行命令。就是在這個環境變數裡寫明:從哪裡讀出核心;
檔案系統在哪裡,是由核心來確定的,建議你先按順序好好看書。
3. 啟動時UBOOT不拷貝根檔案系統,把核心拷貝到哪裡,請看bootcmd環境變數
4. UBOOT不管檔案系統,核心就是一個可以直接執行的映象,沒什麼特殊格式
5. 自己看UBOOT那章
6. 核心啟動後,不是在SDRAM中找檔案系統,而是在FLASH上找,你看核心移植、根檔案系統那2章
7. 看UBOOT那章
8. 看核心那章,核心開始一小部分的程式碼是位置無關的
9. 跟RAM沒有關係
10. 傳遞的引數優先
11. 有,本論壇的UBOOT就可以直接燒寫NOR
12. 試試就知道
13. UBOOT只管核心在哪,這個地址可以通過命令設定,不是寫死;
檔案系統由核心來找,這個地址一般是寫死在核心中
14. 支援燒寫這些檔案系統型別的映象檔案
15. 核心可以在NOR上直接執行,這跟UBOOT沒關係,UBOOT只是負責初始化一下硬體,然後可能的話把核心複製到SDRAM中,然後啟動核心;
如果是NOR上執行核心,那麼UBOOT初始化完硬體後,直接啟動核心