在ARMSYS上進行uClinux核心移植的總結(轉)
在ARMSYS上進行uClinux核心移植的總結(轉)[@more@] 1. 簡述
針對“如何在以S3C44B0X為核心的ARMSYS開發板上建立uClinux核心移植”的一個總結,其內容包括對Bootloader的功能分析和uClinux2.4.24發行版核心基礎上針對S3C44B0X開發板進行修改的重點內容的逐一列舉。
2. Bootloader
2.1 Bootloader概述
Boot Loader 就是在作業系統核心執行之前執行的一段程式。透過這段程式,我們可以初始化硬體裝置、建立記憶體空間的對映圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終呼叫作業系統核心準備好正確的環境。因此,正確建立uClinux的移植的前提條件是具備一個與uClinux配套、易於使用的 Bootloader。
ARMSYS開發板提供了這樣一個uClinux專用的Bootloader,該Bootloader程式燒錄在系統的地址0x0處,每次上電即執行,能夠正確完成硬體系統的初始化和uClinux的引導。
理論上,uClinux引導時並非一定需要一個獨立於核心的Bootloader。然而,將Bootloader與核心分開設計能夠使軟體架構更加清晰,也有助於靈活地支援多種引導方式,實現一些有用的輔助功能。
ARMSYS提供的Bootloader的主要任務可以概括如下:
1.硬體初始化;
2.從主機下載新的核心映像和檔案系統映像;
3.燒寫NorFlash和Nandflash;
4.載入uClinux 核心映像並啟動執行;
5.提供序列超級終端上的人機操作介面。
2.2 儲存空間分佈
Bootloader採用預設的儲存空間分佈地址來載入uClinux核心、檔案系統,並按照正確引導uClinux的執行。在ARMSYS的Bootloader中,預設的儲存空間分佈如下表:
針對“如何在以S3C44B0X為核心的ARMSYS開發板上建立uClinux核心移植”的一個總結,其內容包括對Bootloader的功能分析和uClinux2.4.24發行版核心基礎上針對S3C44B0X開發板進行修改的重點內容的逐一列舉。
2. Bootloader
2.1 Bootloader概述
Boot Loader 就是在作業系統核心執行之前執行的一段程式。透過這段程式,我們可以初始化硬體裝置、建立記憶體空間的對映圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終呼叫作業系統核心準備好正確的環境。因此,正確建立uClinux的移植的前提條件是具備一個與uClinux配套、易於使用的 Bootloader。
ARMSYS開發板提供了這樣一個uClinux專用的Bootloader,該Bootloader程式燒錄在系統的地址0x0處,每次上電即執行,能夠正確完成硬體系統的初始化和uClinux的引導。
理論上,uClinux引導時並非一定需要一個獨立於核心的Bootloader。然而,將Bootloader與核心分開設計能夠使軟體架構更加清晰,也有助於靈活地支援多種引導方式,實現一些有用的輔助功能。
ARMSYS提供的Bootloader的主要任務可以概括如下:
1.硬體初始化;
2.從主機下載新的核心映像和檔案系統映像;
3.燒寫NorFlash和Nandflash;
4.載入uClinux 核心映像並啟動執行;
5.提供序列超級終端上的人機操作介面。
2.2 儲存空間分佈
Bootloader採用預設的儲存空間分佈地址來載入uClinux核心、檔案系統,並按照正確引導uClinux的執行。在ARMSYS的Bootloader中,預設的儲存空間分佈如下表:
CODE:
內容 起始地址 儲存介質
Bootloader程式空間 0x00000000 Flash 壓縮核心映像 0x00010000 Flash ROM檔案系統映像 0x000e0000 Flash 核心執行地址 0x0c008000 SDRAM 壓縮核心解壓地址 0x0c100000 SDRAM 檔案系統載入 0x0c700000 SDRAM 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-960587/,如需轉載,請註明出處,否則將追究法律責任。
下一篇:
linux完整的啟動體系(轉)
![]()
請登入後發表評論
登入
全部評論
|
相關文章
- GPUImage移植總結GPUUI
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- 總結:在DB2中進行XML文件拆分JBDB2XML
- 轉:在Linux上執行WinFormLinuxORM
- 在 Linux 上如何得到一個段錯誤的核心轉儲Linux
- javaSE總結(轉+總結)Java
- laravel核心概念總結Laravel
- 利用Weblogic進行入侵的一些總結Web
- 在Linux行內直接進行大小寫轉換Linux
- 在尷尬中進行的數字化轉型
- 嵌入式linux應用程式移植方法總結Linux
- 進行一個字串演算法的總結字串演算法
- 關於git的基本核心操作總結Git
- 轉:Git 總結Git
- linux3.4.2核心-LCD驅動程式的移植Linux
- 使用 MediaCodec 在 Android 上進行硬解碼Android
- 使用 Eclipse 在 Fedora 上進行 PHP 開發EclipsePHP
- 轉變,是為了更好的前進|2021年度總結
- Dubbo是什麼?核心總結
- linux高通核心移植工具十教程Linux
- Redis總結(上)Redis
- 上架總結
- 在Rainbond上使用Locust進行壓力測試AI
- 搜狗輸入法在Linux Mint系統上的問題總結Linux
- 在Centos和Docker上安裝STF 遇到的若干問題總結CentOSDocker
- 在Linux命令列中進行大小寫字元轉換Linux命令列字元
- iOS RAC 的使用總結 (轉載)iOS
- 在Linux中,如何獲取CPU的總核心數?Linux
- 編譯了wasm版本的OpenCC,在瀏覽器上也可以直接進行簡繁體轉換了編譯ASM瀏覽器
- ES6核心知識總結
- MR核心程式設計思想總結程式設計
- mysql之常用函式(核心總結)MySql函式
- 11月2號(對Javaweb進行所學總結)JavaWeb
- 在 Ubuntu 22 的基礎上進行 Hadoop 偽分散式(HDFS)的搭建UbuntuHadoop分散式
- Django model總結(上)Django
- 最全java多執行緒總結2--如何進行執行緒同步Java執行緒
- h5頁面在不同ios裝置上的問題總結H5iOS
- 在 Android 中使用 JNI 的總結Android
- linux核心資料結構之kfifo【轉】Linux資料結構