a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM9上linux系統的bootloader設計

基于ARM9上linux系統的bootloader設計

作者: 時間:2012-04-11 來源:網絡 收藏

映射關系代碼如下:
void mem_mapping_linear(void)
{ unsigned long descriptor_index, section_base, sdram_base, sdram_size;
sdram_base=0x30000000;
sdram_size=0x 4000000;
for(section_base=sdram_base,descriptor_index=section_base>>
20;Ssection_basesdram_base+sdram_size; rdescriptor_index+=1;section_base +=0x100000)
{*(mmu_tlb_base+(descriptor_index))=(section_base>>20)| MMU_OTHER_SECDESC;}
}

4.3.裝載內核映像和根文件映像

像ARM這樣的嵌入式CPU通常都是在統一的內存地址空間中尋址 Flash 等固態存儲設備的,因此從Flash上讀取數據與從 RAM單元中讀取數據用一個簡單的循環就可以完成從Flash 設備上拷貝映像的工作:

其中count為根文件映像的大小或內核映像的大小。
While(count){
*dest++=*src++;//src為fash中的地址,dest為RAM中的地址
count-=4;}

4.4.置內核的啟動參數

內核啟動可以從Nand Flash或Nor Flash中啟動運行,需要修改啟動命令如下:
#ifdef CONFIG_S3C2410_NAND_BOOT
Char Linux_cmd[]=“noinit root=/dev/bon/2 init =/Linuxrc console=tty0 console=ttys0”;
#else
CharLinux_cmd[]=“CharLinux_cmd[]=”noinit root=/dev/bon/3 init =/Linuxrc console=tty0 console=ttys0”;

其中noinitrd不使用ramdisk。
root根文件所在MTD分區。
Init內核運行入口命令文件。
console 內核信息控制臺,ttyS0表示串行口0。
ttys0表示虛擬終端LCD啟動參數一般都包括root、init和console。

5.結論

是一項很復雜的工作,需要對硬件資源和所用的操作系統有很深的理解,在實際開發中可以根據需要簡化,去除不必要的系統功能,這樣可以大大提高程序執行的效率和穩定性。

本文作者創新點:隨硬件不同也盡相同,但本質的原理是一樣的,本文給出了一種層次分明設計簡練較之通用的設計方法,使嵌入式工作者可以快速的了解的實現從而寫出符合需要的啟動程序。

參考文獻
[1] 萬永波 張根寶 田澤 楊峰,ARM的嵌入式系統Bootloader啟動流程分析, 微計算機信息, 2005年,第21卷11-2期,90頁.
[2] 嵌入式設計與應用.鄒思軼. 北京:清華大學出版社 2002.
[3] SUMSUANG ELECTRONICS. S3C2410X User’s Manual[Z].Republic of Korea: Sumsang,2003.
[4] 馬學文, 朱明日, 程小輝.嵌入式系統中 Bootloader的設計與實現.計算機工程,2005年,第31卷7期,96頁.

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉