<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > uclinux啟動(dòng)過(guò)程詳細分析

uclinux啟動(dòng)過(guò)程詳細分析

作者: 時(shí)間:2018-08-31 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201808/388126.htm

4.系統執行rc腳本。

hostname Samsung

/bin/expand /etc/ramfs.img /dev/ram0

/bin/expand /etc/ramfs2048.img /dev/ram1

mount -t proc proc /proc

mount -t ext2 /dev/ram0 /var

mount -t ext2 /dev/ram1 /ramdisk

chmod 777 /ramdisk

mkdir /var/config

mkdir /var/tmp

mkdir /var/log

mkdir /var/run

mkdir /var/lock

ifconfig lo 127.0.0.1

route add -net 127.0.0.0 netmask 255.255.255.0 lo

dhcpcd

cat /etc/motd

rc程序執行完畢后,系統環(huán)境已經(jīng)設置好了,下面就該用戶(hù)登錄系統了。

5.運行Sash command shell

uclinux啟動(dòng)的詳細過(guò)程有著(zhù)諸多的信息可以給我們巨大的啟發(fā),我們在這里討論的就是要對這些信息做一個(gè)具體細致的分析,通過(guò)我們的討論,大家會(huì )對uclinux啟動(dòng)過(guò)程中出現的、以前感覺(jué)熟悉的、但卻又似是而非的東西有一個(gè)確切的了解,并且能了解到這些輸出信息的來(lái)龍去脈。

uclinux的啟動(dòng)過(guò)程,它是一幅縮影圖,對它有了一個(gè)詳細的了解后,有助于指導我們更加深入地了解uclinux的核心。

大家對uclinux的啟動(dòng)應該都比較熟悉,作為一名嵌入系統開(kāi)發(fā)者,你一定遇到過(guò)下面的情景:在某論壇上看到一篇帖子,上面貼著(zhù)uclinux開(kāi)發(fā)板啟動(dòng)時(shí)的一堆信息,然后大家在帖子里討論著(zhù)這個(gè)啟動(dòng)過(guò)程中出現的問(wèn)題,隨機舉例如下:

Linux version 2.4.20-uc1 (root@Local) (gcc version 2.95.3

20010315 (release)(ColdFire patches - 20010318 from http://f

( 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) 《mac@os.nctu.edu.tw》

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

上面的這些輸出信息,也可能包括你自己正在做的uclinux開(kāi)發(fā)板的輸出信息,其中的每一行,每一個(gè)字的含義,你是否深究過(guò),或者說(shuō)大部分的含義你能確切地知道的?本人想在這里結合本人在實(shí)踐中一些體會(huì )來(lái)和廣大uclinux的開(kāi)發(fā)者一起讀懂這些信息。

我們在這里將以一個(gè)真實(shí)的uclinux系統的啟動(dòng)過(guò)程為例,來(lái)分析這些輸出信息。啟動(dòng)信息的原始內容將用標記標出,以區別與注釋。

uclinux的啟動(dòng)主要分為兩個(gè)階段:

① 第一部分bootloader啟動(dòng)階段

② ② 第二部分linux 內核初始化和啟動(dòng)階段

第一節:start_kernel

第二節:用戶(hù)模式( user_mode )開(kāi)始,start_kernel結束

第三節:加載linux內核完畢,轉入_idle進(jìn)程

第一部分 : bootloader啟動(dòng)

圖 1:uclinux啟動(dòng)狀態(tài)轉移示意圖

*****************************************************

Boot loader v0.12NOTE: this boot loader is designed to boot kernels made with the2.4.xx releasesbootloader for XVBuilt at Nov 20 2005 10:12:35

Bootloader頭信息,版本,編譯時(shí)間等,這個(gè)因不同的bootloader的設計而有所不同,由此你能看出bootloader的版本信息,有很多使用的是通用的bootloader,如u-boot,redboot等。

Loaded to 0x90060000

將bootloader加載到內存ram中的0x90060000處,即將bootloader加載到內存的高端地址處。

Linux內核將被bootloader加載到0x90090000處。

Found boot configuration

查找到了啟動(dòng)boot的配置信息。

Booted from parallel flash

從flash中啟動(dòng)代碼,此處的flash為并行閃存。

注意:任何flash器件的寫(xiě)入操作只能在空或已擦除的單元內進(jìn)行,所以大多數情況下,在進(jìn)行寫(xiě)入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前先要將目標塊內所有的位都寫(xiě)為0。

從上面的信息,我們可以對flash類(lèi)型特點(diǎn)有個(gè)比較明確的了解。



關(guān)鍵詞: uClinux cpu 控制器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>