概述 本文的目的在於幫助AT91SAM9g20(以下簡稱爲SAM9g20)的軟件開發工程師從零開始,爲SAM9g20建立Linux運行環境。 在進行SAM9g20 Linux開發之前,需要建立開發環境。 本文選用的目標板爲:timll SBC6020上。 本文涉及到的一些linux基礎知識,若無相關介紹,則請自行至網絡搜索補充。 本文的部分內容來源於網絡。 SAM9g20 Linux的基本組成: · U-boot · Kernel · Rootfs · Bootstrap在Windows PC上編譯,其餘的在Linux PC上編譯。 各部分組成如下圖: 開發環境 · 一臺Linux PC(可以是虛擬機,以下簡稱爲Linux開發機) · 可以安裝主流的Linux發行版本,比如 ubuntu, Fedora等等。在此推薦用ubuntu-10.4。 · ubuntu-10.4標準的發行版本可能並沒有包括所有開發中需要的組件。開發過程中可以根據需要通過網絡安裝。 · 如果採用虛擬機方式,可以選擇虛擬機軟件如 Virtual PC, VMware, VirtualBox等。在此推薦用VMware v6.5.2 · 安裝完成後需要”打通”虛擬機與宿主機的共享通道,可以使用Linux的samba或者使用虛擬軟件提供的第三方工具。 · 可用的網絡 · 基於兩個原因: · 1. 開發初期使用NFS會比較方便。 · 2. Linux開發機安裝組件。 · 開發機上所需要的基本程序開發工具 · 比如gcc( GCC-HOWTO)等。 · 目標板所用的交叉編譯器 · 所謂交叉編譯器,就是指在開發機上運行,編譯結果在另外架構的平臺上運行。 · 這裏的交叉編譯器指的就是ARM交叉編譯器。編譯器在Linux x86上將源代碼編譯成ARM體系結構適用的可執行文件。 · Linux下可以使用的ARM交叉編譯器很多,經過測試,推薦使用arm-linux-gcc 4.3.2工具。 · 交叉編譯工具的搭建,詳見: (鏈接) · 目標燒寫工具 · 有了編譯的輸出,還需要編程工具將其固化到SAM9g20的板子上運行。這個過程就是編程的過程。 · 由於SAM9g20提供了SAM-BA工具,所以最基本的方式就是通過USB口利用SAM-BA軟件下載。 SAM9g20 Linux 啓動流程 本文主要講述從Data Flash上啓動的過程,NAND flash啓動,NOR Flash啓動請參考相關文檔。 1. BOOTROM - 檢查一個有效的Bootstrap是在FLASH中,如果Bootstrap存在,則將它加載到內部SRAM中,並將控制權交給Bootstrap。 2. AT91Bootstrap - 開始分管硬件配置,從FLASH當中加載U-Boot程序到SDRAM,並將控制權交給U-boot。 3. U-boot - 它是一個引導加載程序,在從FLASH,網絡,USB等設備中加載內核到SDRAM中,並將控制權交給內核。 4. Linux kernel - 操作系統內核。 5. Rootfs - 根文件系統。 1. 處理器復位,根據BMS引腳的設置,選擇從內部ROM啓動(NOR Flash啓動方式不在本文的討論範圍)。 2. BOOTROM開始運行,初始化CPU和內存控制器,比如DBGU,USB device port。它還建立了爲內核使用的格式是一致的跨平臺的內存映射,然後跳轉到Bootstrap運行。 3. 如果Bootstrap存在,ROMBOOT將其複製到內部SRAM並跳轉到Bootstrap運行。如果沒有,則等待DBGU或者USB口的連接,這部分內容請參考SAM-BA手冊。 4. Bootstrap將初始化一些設備,主要是Data Flash與SDRAM,然後從Data Flash特定位置(在Bootstrap源代碼中指定)將U-boot複製到SDRAM的指定位置,然後跳轉到U-boot開始位置運行。 5. U-boot根據環境變量(bootcmd)加載Linux Kernel的image。加載完成後跳轉到Kernel運行,並傳遞啓動參數(bootargs)。 6. Linux Kernel開始運行,init讀取/ etc / inittab文件,以執行相應的運行從/ etc / rc.d中,其中一開始就執行初始化腳本和其他網絡系統服務控制腳本,加載相關驅動,並加載rootfs。 Data Flash Boot Mem Map *內部集成FLASH的AT91系列,Bootstrap存儲於AT91內部FLASH當中,而不存儲於DATAFLASH或NANDFLASH中。 Nand Flash Boot Mem Map *內部集成FLASH的AT91系列,Bootstrap存儲於AT91內部FLASH當中,而不存儲於DATAFLASH或NANDFLASH中。
文件歷史記錄 版本 編制 日期 更改內容 ----------------------------------------------------------------------------------- V1.0 抵岸科技 2010-6-26 首發 V1.1 抵岸科技 2010-7-23 更改:*Bootstrap存儲於AT91內部FLASH當中... |
ARM AT91SAM9260 移植Linux-2.6.30流程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.