Tuesday, March 22, 2011

Embedded System 修課紀錄(2)

認識 Bootloader

開機管理程式,而我們所熟悉的開機管理程式又有那些呢? Grub, LILO, 甚至是 spfdisk。
開機流程為,BIOS 初始化硬體資訊並且到第一個可開機裝置上面讀取 MBR 的 Bootloader。 根據開機管理程式載入作業系統以及硬體偵測並且載入驅動程式。

甚麼是 U-Boot

U-Boot為通用的 BootLoader 其中一種,它支援多種架構的CPU,可以方便各種平台移植。其為開放源始程式碼,目前已支援PowerPC, ARM, X86, MIPS 等平台。

燒板子
  • 準備環境
與第一次實驗課程相同,將 Cygwin 以及 Domingo 安裝完畢。這次多安裝一個 TFTP Server,使得 Windows 端的 PC 成為資料提供站給 ARM 板子下載支用。接著將硬體部分安裝好,可以參考第一次實驗的圖片(Creator-Xscale-PXA270, Non-OS Programming environment)。
  • 操作流程
1. Setting UART: [View] > [UART View]
2. Com Post Setting
3. Connect
4. Load U-Boot Image Module: [Debug] > [Load Module]
5. Load Module Dialog Options: Load Binary > Start Address "A3F80000"
6. Go To Main/Address: Choice
7. Change: Reg All > Watch List, [PC Address] start from "A3F80000"
8. Run: Hit any key to stop autoboot: click any key to stop
9. Set u-boot environment
// Client IP Address, Target board
setenv ipaddr 192.168.1.10 
// TFTP Server IP Address, PC
setenv serverip 192.168.1.100
10. Save environment
saveenv 
11. Saving Environment to Flash: Erasing Flash, Erasing Sector, Erased Sector, Writing Flash, Protected Flash
12. Get TFTP Server Ready
13. Open TFTP Server
14. Setting TFTP Server: [File] > [Properity]
15. Transport ubootimage to target board
tftpa2000000 u-boot.bin
16. Burn ubootimage into Flash
protect off 0 3ffff
erase 0 3ffff
17. Copy ubootimage into Flash
cp.ba2000000 0 40000
  • 驗證燒錄
  1. 移除 JTAG
  2. 重新開機看輸出

Reference

[1.] 童志偉 & 李智惟
[2.] 鳥哥的 Linux 私房菜:開機流程、模組管理與 Loader

No comments:

Post a Comment