資料介紹
摘要
我們?cè)谶@里討論的是對(duì)嵌入式linux系統(tǒng)的啟動(dòng)過程的輸出信息的注釋,通過我們的討論,大家會(huì)對(duì)嵌入式linux啟動(dòng)過程中出現(xiàn)的、以前感覺熟悉的、但卻又似是而非的東西有一個(gè)確切的了解,并且能了解到這些輸出信息的來龍去脈。
嵌入式linux的啟動(dòng)信息是一個(gè)很值得我們?nèi)ズ煤醚芯康臇|西,它能將一幅縮影圖呈現(xiàn)在我們面前,來指導(dǎo)我們更加深入地理解linux內(nèi)核。
關(guān)鍵字:linux,嵌入式,啟動(dòng),bootloader
正文
作為一名嵌入系統(tǒng)開發(fā)者,你一定遇到過下面的情景:
在某論壇上看到一篇帖子,上面貼著嵌入式linux開發(fā)板啟動(dòng)時(shí)的有關(guān)信息,然后大家在帖子里討論著這個(gè)啟動(dòng)過程中出現(xiàn)的問題,隨機(jī)舉例如下:
Linux version 2.4.20-uc0 (root@Local) (gcc version 2.95.3
20010315 (release)(ColdFire patches - 20010318 from http://f
?。╱Clinux XIP and shared lib patches from http://www.snapgear.com/)) #20 三 6月 1
8 00:58:31 CST 2003
Processor: Samsung S3C4510B revision 6
Architecture: SNDS100
On node 0 totalpages: 4096
zone(0): 0 pages.
zone(1): 4096 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
Calibrating delay loop.。. 49.76 BogoMIPS
Memory: 16MB = 16MB total
Memory: 14348KB available (1615K code, 156K data, 40K init)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1,
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en
abled
ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B
ttyS01 at 0x3ffe000 (irq = 7) is a S3C451
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: BE558-1A5D57 [VIRTUAL BE558-1A5D57] (RO)
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) 《[email protected]》
eth0: 00:40:95:36:35:34
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 1024)
VFS: Mounted root (romfs
Freeing init memory: 40K
上面的這些輸出信息,也可能包括你自己正在做的嵌入式linux開發(fā)板的輸出信息,其中的每一行,每一個(gè)字的含義,你是否深究過,或者說大部分的含義你能確切地知道的?本人想在這里結(jié)合本人在實(shí)踐中一些體會(huì)來和廣大嵌入式linux的開發(fā)者一起讀懂這些信息。
我們?cè)谶@里將以一個(gè)真實(shí)的嵌入式linux系統(tǒng)的啟動(dòng)過程為例,來分析這些輸出信息。啟動(dòng)信息的原始內(nèi)容將用標(biāo)記標(biāo)出,以區(qū)別與注釋。
嵌入式linux的啟動(dòng)主要分為兩個(gè)階段:
① 第一部分bootloader啟動(dòng)階段
?、?第二部分linux 內(nèi)核初始化和啟動(dòng)階段
第一節(jié):start_kernel
第二節(jié):用戶模式( user_mode )開始,start_kernel結(jié)束
第三節(jié):加載linux內(nèi)核完畢,轉(zhuǎn)入cpu_idle進(jìn)程
第一部分 : bootloader啟動(dòng)
Boot loader v0.12
NOTE: this boot loader is designed to boot kernels made with the
2.4.xx releases
bootloader for XV
Built at Nov 20 2005 10:12:35
Bootloader頭信息,版本,編譯時(shí)間等,這個(gè)因不同的bootloader的設(shè)計(jì)而有所不同,由此你能看出bootloader的版本信息,有很多使用的是通用的bootloader,如u-boot,redboot等。
Loaded to 0x90060000
將bootloader加載到內(nèi)存ram中的0x90060000處,即將bootloader加載到內(nèi)存的高端地址處。
Linux內(nèi)核將被bootloader加載到0x90090000處。
Found boot configuration
查找到了啟動(dòng)boot的配置信息
Booted from parallel flash
從flash中啟動(dòng)代碼,此處的flash為并行閃存。Flash的分類列舉如下:
閃存分三類:并行,串行,不可擦除。
?、俨⑿蠵arallel flash
?。燦OR Flash,Intel于1988年發(fā)明.隨機(jī)讀取的速度比較快,隨機(jī)按字節(jié)寫,每次可以傳輸8Bit。一般適合應(yīng)用于數(shù)據(jù)/程序的存貯應(yīng)用中.NOR還可以片內(nèi)執(zhí)行(execute-in-place)XIP.寫入和擦除速度很低。
NAND Flash,1989年,東芝公司發(fā)明.是以塊和頁(yè)為單位來讀寫的,不能隨機(jī)訪問某個(gè)指定的點(diǎn)。因而相對(duì)來說讀取速度較慢,而擦除和寫入的速度則比較快,每次可以傳輸16Bit,一般適用在大容量的多媒體應(yīng)用中,容量大。如:CF,SM.
?、诖蠸erial Flash 是以字節(jié)進(jìn)行傳輸?shù)?,每次可以傳?-2Bit.如:MMC,SD,MS卡.串行閃存器件體積小,引腳也少,成本相對(duì)也更低廉。
?、鄄豢刹脸齅ask Rom Flash的特點(diǎn)是一次性錄入數(shù)據(jù),具有不可更改性,經(jīng)常運(yùn)用于游戲和需版權(quán)保護(hù)文件等的錄入。其顯著特點(diǎn)是成本低。
注意:任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。
我們?cè)谶@里討論的是對(duì)嵌入式linux系統(tǒng)的啟動(dòng)過程的輸出信息的注釋,通過我們的討論,大家會(huì)對(duì)嵌入式linux啟動(dòng)過程中出現(xiàn)的、以前感覺熟悉的、但卻又似是而非的東西有一個(gè)確切的了解,并且能了解到這些輸出信息的來龍去脈。
嵌入式linux的啟動(dòng)信息是一個(gè)很值得我們?nèi)ズ煤醚芯康臇|西,它能將一幅縮影圖呈現(xiàn)在我們面前,來指導(dǎo)我們更加深入地理解linux內(nèi)核。
關(guān)鍵字:linux,嵌入式,啟動(dòng),bootloader
正文
作為一名嵌入系統(tǒng)開發(fā)者,你一定遇到過下面的情景:
在某論壇上看到一篇帖子,上面貼著嵌入式linux開發(fā)板啟動(dòng)時(shí)的有關(guān)信息,然后大家在帖子里討論著這個(gè)啟動(dòng)過程中出現(xiàn)的問題,隨機(jī)舉例如下:
Linux version 2.4.20-uc0 (root@Local) (gcc version 2.95.3
20010315 (release)(ColdFire patches - 20010318 from http://f
?。╱Clinux XIP and shared lib patches from http://www.snapgear.com/)) #20 三 6月 1
8 00:58:31 CST 2003
Processor: Samsung S3C4510B revision 6
Architecture: SNDS100
On node 0 totalpages: 4096
zone(0): 0 pages.
zone(1): 4096 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
Calibrating delay loop.。. 49.76 BogoMIPS
Memory: 16MB = 16MB total
Memory: 14348KB available (1615K code, 156K data, 40K init)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1,
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en
abled
ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B
ttyS01 at 0x3ffe000 (irq = 7) is a S3C451
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: BE558-1A5D57 [VIRTUAL BE558-1A5D57] (RO)
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) 《[email protected]》
eth0: 00:40:95:36:35:34
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 1024)
VFS: Mounted root (romfs
Freeing init memory: 40K
上面的這些輸出信息,也可能包括你自己正在做的嵌入式linux開發(fā)板的輸出信息,其中的每一行,每一個(gè)字的含義,你是否深究過,或者說大部分的含義你能確切地知道的?本人想在這里結(jié)合本人在實(shí)踐中一些體會(huì)來和廣大嵌入式linux的開發(fā)者一起讀懂這些信息。
我們?cè)谶@里將以一個(gè)真實(shí)的嵌入式linux系統(tǒng)的啟動(dòng)過程為例,來分析這些輸出信息。啟動(dòng)信息的原始內(nèi)容將用標(biāo)記標(biāo)出,以區(qū)別與注釋。
嵌入式linux的啟動(dòng)主要分為兩個(gè)階段:
① 第一部分bootloader啟動(dòng)階段
?、?第二部分linux 內(nèi)核初始化和啟動(dòng)階段
第一節(jié):start_kernel
第二節(jié):用戶模式( user_mode )開始,start_kernel結(jié)束
第三節(jié):加載linux內(nèi)核完畢,轉(zhuǎn)入cpu_idle進(jìn)程
第一部分 : bootloader啟動(dòng)
Boot loader v0.12
NOTE: this boot loader is designed to boot kernels made with the
2.4.xx releases
bootloader for XV
Built at Nov 20 2005 10:12:35
Bootloader頭信息,版本,編譯時(shí)間等,這個(gè)因不同的bootloader的設(shè)計(jì)而有所不同,由此你能看出bootloader的版本信息,有很多使用的是通用的bootloader,如u-boot,redboot等。
Loaded to 0x90060000
將bootloader加載到內(nèi)存ram中的0x90060000處,即將bootloader加載到內(nèi)存的高端地址處。
Linux內(nèi)核將被bootloader加載到0x90090000處。
Found boot configuration
查找到了啟動(dòng)boot的配置信息
Booted from parallel flash
從flash中啟動(dòng)代碼,此處的flash為并行閃存。Flash的分類列舉如下:
閃存分三類:并行,串行,不可擦除。
?、俨⑿蠵arallel flash
?。燦OR Flash,Intel于1988年發(fā)明.隨機(jī)讀取的速度比較快,隨機(jī)按字節(jié)寫,每次可以傳輸8Bit。一般適合應(yīng)用于數(shù)據(jù)/程序的存貯應(yīng)用中.NOR還可以片內(nèi)執(zhí)行(execute-in-place)XIP.寫入和擦除速度很低。
NAND Flash,1989年,東芝公司發(fā)明.是以塊和頁(yè)為單位來讀寫的,不能隨機(jī)訪問某個(gè)指定的點(diǎn)。因而相對(duì)來說讀取速度較慢,而擦除和寫入的速度則比較快,每次可以傳輸16Bit,一般適用在大容量的多媒體應(yīng)用中,容量大。如:CF,SM.
?、诖蠸erial Flash 是以字節(jié)進(jìn)行傳輸?shù)?,每次可以傳?-2Bit.如:MMC,SD,MS卡.串行閃存器件體積小,引腳也少,成本相對(duì)也更低廉。
?、鄄豢刹脸齅ask Rom Flash的特點(diǎn)是一次性錄入數(shù)據(jù),具有不可更改性,經(jīng)常運(yùn)用于游戲和需版權(quán)保護(hù)文件等的錄入。其顯著特點(diǎn)是成本低。
注意:任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 視頻教程-嵌入式Linux開發(fā)基礎(chǔ)-嵌入式
- 嵌入式Linux專題(一)——嵌入式Linux系統(tǒng)構(gòu)成及啟動(dòng)流程
- 嵌入式Linux路線
- 嵌入式linux的運(yùn)行過程,嵌入式linux的啟動(dòng)流程--詳解
- 嵌入式Linux network
- 【嵌入式Linux(基礎(chǔ)篇)】從標(biāo)準(zhǔn)Linux到嵌入式Linux + 嵌入式Linux知識(shí)架構(gòu)
- 【嵌入式】構(gòu)建嵌入式Linux系統(tǒng)(uboot、內(nèi)核、文件系統(tǒng))
- 嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試
- 嵌入式Linux應(yīng)用程序例程
- 詳解嵌入式linux 啟動(dòng)信息 11次下載
- 基于狀態(tài)保持恢復(fù)的嵌入式Linux快速啟動(dòng)方法的研究陳鵬 1次下載
- 嵌入式Linux快速啟動(dòng)技術(shù)綜述張全勝 1次下載
- 嵌入式LINUX開發(fā)基礎(chǔ)知識(shí) 261次下載
- 嵌入式Linux系統(tǒng)的啟動(dòng)程序定制 65次下載
- 基于bootsplash 的嵌入式linux 啟動(dòng)畫面定制
- 嵌入式Linux開發(fā)的三種方式 1017次閱讀
- 簡(jiǎn)化SBC的嵌入式Linux軟件開發(fā) 1170次閱讀
- 嵌入式Linux啟動(dòng)時(shí)間優(yōu)化的秘密之五-Bootloader 2863次閱讀
- 嵌入式Linux啟動(dòng)時(shí)間優(yōu)化的秘密之四-啟動(dòng)腳本 2467次閱讀
- 英創(chuàng)信息技術(shù)嵌入式Linux串口通訊的C++設(shè)計(jì)概述 2358次閱讀
- 基于Yocto Project的定制嵌入式Linux產(chǎn)品設(shè)計(jì)淺析 1w次閱讀
- 如何在嵌入式Linux中截屏 6108次閱讀
- 關(guān)于嵌入式Linux在PMP消費(fèi)類電子產(chǎn)品上的應(yīng)用探討淺析 1037次閱讀
- 什么是嵌入式Linux內(nèi)核調(diào)試技術(shù)?嵌入式開發(fā)又面臨著哪些問題? 1220次閱讀
- 基于PXA255開發(fā)板外圍字符設(shè)備的嵌入式Linux字符設(shè)備驅(qū)動(dòng)設(shè)計(jì)與應(yīng)用 1199次閱讀
- 嵌入式Linux OS啟動(dòng)流程 3751次閱讀
- 嵌入式Linux系統(tǒng)的7個(gè)重要模塊 6733次閱讀
- 嵌入式Linux的學(xué)習(xí)方法解析 3234次閱讀
- 超經(jīng)典!工程師嵌入式Linux自學(xué)筆記及體會(huì) 1.4w次閱讀
- 基于Linux的嵌入式實(shí)時(shí)操作系統(tǒng)的研究 2353次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多