嵌入式Linux之Linux內核的裝載

嵌入式Linux之Linux內核的裝載


上一篇文檔中,講述了嵌入式Linux開發過程中宿主機的配置過程。宿主機配置完成後,就可以對目標板進行操作。本文檔記錄Linux內核裝載流程。
在PC機的Linux下,有兩個很著名的Bootloader:LILO和GRUB,它們的作用是引導Linux操作系統。在嵌入式操作系統中,同樣也有bootloader,其被固化在CPU上電後能夠引導啓動的ROM中,系統上電後Bootloader開始運行,對系統硬件進行必要的初始化,同時爲Linux系統運行建立合適的軟件環境,引導Linux啓動。
在系統的Boot ROM中,通常應該裝有Bootloader,內核啓動參數,Linux內核映象和根文件系統,典型的空間分佈如下所示:
Linux空間分佈
由於嵌入式系統的差異性,嵌入式Linux不可能像PC的Linux那樣具有統一的,標準的Bootloader。常見的嵌入式Linux的Bootloader包括ARMboot,U-Boot,Bootldr和vivi。不論哪種bootloader,都必須具有以下功能:

  • 對系統硬件進行必要的初始化
  • 爲Linux操作系統的運行進行環境的準備
  • 向Linux內核傳遞啓動參數
  • 引導Linux啓動

在開發板SMART3250上安裝Linux操作系統,分爲4個步驟,依次爲固化Kickstart和S1L,固化U-Boot,固化Linux內核以及固化Linux文件系統。
Smart3250板載256M的NAND FLASH,扇區大小爲128KB,bootloader、linux內核以及文件系統都安裝在其中,NAND FLASH 的分區情況如下表所示:
NAND FLASH 的分區

1.固化Kickstart和S1L

Kickstart和S1L是用於初始化並引導LPC3250的Loder,可以採用串口的方式進行下載。
將Smart3250的UART5口與PC機相連,給開發板上電。在隨開發板附贈的CDROM中,拷貝UpdateBootloader文件夾,確認其中有bootloader.bin,kickstart.bin,stage1.bin這三個二進制文件,運行Updatebootloader.exe程序,得到下圖界面:
程序運行畫面
根據軟件的提示,先更新bootloader.bin,之後再將kickstart.bin寫入扇區0,將stage1.bin寫入扇區1。復位開發板即可。

2.固化U-boot

固化Uboot需要使用Tera Term軟件,使用window環境下的超級終端或者Linux環境下
的minicom亦可。打開軟件後,設置正確的串口參數:115200-8N1,無流控制,系統即進入S1L的命令提示符界面:如下所示:
命令提示符界面
在其命令行中輸入指令:

erase 2 10 1 //擦除分配給Uboot的NAND FLASH
load term raw 0x93fc0000

接着,打開Tera term的file->send file,選擇U-boot.bin,即可開始燒寫。燒寫完成之後,通過指令固化,重啓。

nsave
aboot flash raw 0x83fc0000

固化Linux內核

固化文件系統

這兩個部分尚未有文檔記錄,後期補上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章