在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            uClinux在S3C44B0X上的移植

            作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
            前期準(zhǔn)備:
            裝有Linux系統(tǒng)的主機(jī)(具備c編譯環(huán)境),立宇泰公司的ARMSYS44B0開發(fā)版(集成Samsung的S3C44b0X芯片)及各種連線,uClinux源代碼,交叉編譯工具arm-elf-tools

            1.uClinux簡(jiǎn)介,基本結(jié)構(gòu),內(nèi)核結(jié)構(gòu)(略)

            2.如果有產(chǎn)品的附帶光盤,那路徑/arm7/uClinux/uClinux下就包括了uClinux源代碼,uClinux-armsys-050101.tar.gz,另外在這個(gè)目錄下還提供了交叉編譯工具arm-elf-tools-20030314.sh
            如果手頭沒有這張光盤,也可以去立宇泰公司的網(wǎng)站(http://www.hzlitai.com.cn/download/default.asp)查找下載所需資料,但其中的uClinux源代碼包是uClinux-dist-20040408.tar.gz

            3.1.1 對(duì)于uClinux-armsys050101.tar.gz這個(gè)包,我們首先將它轉(zhuǎn)移到/home目錄下(當(dāng)然在其他目錄可以同樣進(jìn)行操作)
            如果對(duì)Linux不太熟悉并希望能像在Windows下那樣進(jìn)行圖形化的文件操作,最好以超級(jí)用戶(root)登錄,這是為了避免接下來(lái)的操作中出現(xiàn)權(quán)限限制.

            如果是命令行操作,方法如下:
            普通用戶更換到超級(jí)用戶,在提示下輸入root密碼(為了防止被掃描,密碼輸入時(shí)屏幕沒有相應(yīng)顯示)
            [Jiang@localhost ~]$ su -
            Password:
            用cp(拷貝命令),其中yourdir更改成你系統(tǒng)中arm7的目錄
            [root@localhost ~]# cp /yourdir/arm7/uClinux/uClinux/uClinux-armsys-050101.tar.gz /home

            然后跳轉(zhuǎn)到/home
            [root@localhost ~]# cd /home

            3.1.2 對(duì)uClinux-armsys-050101.tar.gz進(jìn)行解壓縮

            [root@localhost ~]# tar xzvf uClinux-armsys-050101.tar.gz
            參數(shù)說(shuō)明:
            x 從檔案文件中釋放文件
            z 用gzip來(lái)壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時(shí)也一定要使用該選項(xiàng)進(jìn)行解壓縮
            v 詳細(xì)顯示tar處理的文件信息
            f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的
            這個(gè)過(guò)程大約需要幾分鐘,完成后在當(dāng)前目錄(/home)下多了一個(gè)文件夾uClinux-dist,進(jìn)入,我們可以看到里面的文件或文件夾
            [root@localhost home]# cd uClinux-dist/
            [root@localhost uClinux-dist]# ls
            autoconf.h kernel_44b0.cfg romfs
            bin kernel_44b0.cfg.old SOURCE
            config kernel_4510.cfg tools
            config.arch kernel_4510.cfg.old uClibc
            config.in lib uClinux-20040408-ARMSYS.patch
            COPYING linux-2.4.x user
            Documentation Makefile vendors
            freeswan Makefile.orig
            images README

            其 中images文件夾下有3個(gè)文件,這是我們最終所需要的,估計(jì)這個(gè)文件夾是lyt公司打包時(shí)自己加上去的,在一般源代碼中這個(gè)文件夾是沒有的,到編譯成 功后會(huì)自動(dòng)生成,所以我把這個(gè)文件夾剪切到了其他地方.另外這里還有一個(gè)文件uClinux-20040408-ARMSYS.patch,這是 uClinux-dist-20040408.tar.gz針對(duì)S3C44B0X結(jié)構(gòu)的補(bǔ)丁,因?yàn)閡Clinux-armsys- 050101.tar.gz已經(jīng)針對(duì)S3C44B0X硬件結(jié)構(gòu)做了參數(shù)的修改,用不著這個(gè)補(bǔ)丁.這里,我們可以用rm -fr直接把這兩個(gè)文件刪掉.

            如果在Windows環(huán)境下進(jìn)行解壓縮可能會(huì)產(chǎn)生一些錯(cuò)誤,所以推薦在Linux中解壓.

            3.1.3 安裝交叉編譯環(huán)境

            首先進(jìn)入到arm-elf-tools-20030314.sh所在的目錄,然后
            [root@localhost home]#sh arm-elf-tools-20030314.sh

            執(zhí)行后在/usr/local/bin路徑下可以看到各種實(shí)用工具
            [root@localhost uClinux-dist]# ls /usr/local/bin
            arm-elf-addr2line arm-elf-g++ arm-elf-objcopy arm-elf-strings
            arm-elf-ar arm-elf-gasp arm-elf-objdump arm-elf-strip
            arm-elf-as arm-elf-gcc arm-elf-protoize arm-elf-unprotoize
            arm-elf-c++ arm-elf-gdb arm-elf-ranlib elf2flt
            arm-elf-c++filt arm-elf-ld arm-elf-readelf flthdr
            arm-elf-elf2flt arm-elf-ld.real arm-elf-run genromfs
            arm-elf-flthdr arm-elf-nm arm-elf-size

            3.1.4內(nèi)核的編譯
            其實(shí)這一步也很容易,有人形容是易如反掌,但有一些細(xì)節(jié)處理不好的話也很容易出錯(cuò)

            首 先根據(jù)需要配置內(nèi)核.內(nèi)核提供了各種功能,支持很多的硬件,因而有許多東西需要配置.可以配置的各種選項(xiàng)通過(guò)帶有CONFIG前綴的表示符來(lái)表示.這些配 置項(xiàng)要么可以二選一,要么可以三選一.二選一就是yes or no.三選一可以有yes,no和module.module意味著該配置被選定了,但編譯的時(shí)候這部分功能的實(shí)現(xiàn)代碼是以模塊的形式生成.驅(qū)動(dòng)程序一般 是三選一的.

            內(nèi)核提供了各種不同的工具來(lái)簡(jiǎn)化內(nèi)核配置.make config是一個(gè)字符界面下的命令行工具,該工具會(huì)挨個(gè)遍歷所有配置,要求用戶進(jìn)行選擇,耗時(shí)巨大.make menuconfig和make xconfig都是圖形界面工具,都對(duì)配置項(xiàng)進(jìn)行了分類存放,其中后者基于X11,支持鼠標(biāo).這里我們采用第二種工具make menuconfig
            [root@localhost uClinux-dist]# make menuconfig

            注意:
            1.是在uClinux-dist目錄下;否則報(bào)報(bào)錯(cuò):
            make: *** 沒有規(guī)則可以創(chuàng)建目標(biāo)“menuconfig”。 停止。

            2.如果是在終端窗口執(zhí)行的話,要保證窗口的大小,如果窗口過(guò)小,則會(huì)顯示出錯(cuò)信息:]
            Your display is too small to run Menuconfig!
            It must be at least 19 lines by 80 columns.

            You have not saved your config, please re-run make config

            make: *** [menuconfig] 錯(cuò)誤 1

            執(zhí)行后在終端顯示uClinux v3.1.0 Configuration窗口,主要使用[Y],[N],[M],Enter,和方向鍵.4個(gè)主菜單項(xiàng)

            │ │ Vendor/Product Selection ---> │ │
            │ │ Kernel/Library/Defaults Selection ---> │ │
            │ │ --- │
            │ │ Load an Alternate Configuration File │ │
            │ │ Save Configuration to an Alternate File
            首先使用方向鍵選擇 "制造商/產(chǎn)品 選擇"選項(xiàng),回車進(jìn)入下級(jí)菜單,uClinux-armsys-050101.tar.gz已經(jīng)默認(rèn)了Samsung和44b0x,所以我們可以直接退回到上級(jí)目錄.
            選中"內(nèi)核/庫(kù)/默認(rèn) 選擇",回車進(jìn)入這個(gè)菜單,看到

            │ │ --- Kernel is linux-2.4.x │ │
            │ │ (uClibc) Libc Version │ │
            │ │ [ ] Default all settings (lose changes) │ │
            │ │ [ ] Customize Kernel Settings (NEW) │ │
            │ │ [ ] Customize Vendor/User Settings │ │
            │ │ [ ] Update Default Vendor Settings │ │
            第一行內(nèi)核選擇了Linux2.4系列,uClinux-armsys-050101.tar.gz只提供了這一唯一選項(xiàng).
            第二行是c庫(kù)的選擇
            │ │ ( ) uC-libc │ │
            │ │ (X) uClibc │ │
            默認(rèn)是uClibc,它是uC-libc的派生物,能更好的支持標(biāo)準(zhǔn)c.如果要將c庫(kù)更改為uC-libc,方向鍵+回車就可以了,自動(dòng)退回到上級(jí)菜單.
            第三行不作改變,所有配置項(xiàng)都取默認(rèn)值.
            第四行定制內(nèi)核設(shè)置,如果需要可以用方向鍵移動(dòng)到此菜單項(xiàng)按[Y],在[ ]中顯示*.
            第五行是定制制造商/用戶選項(xiàng)設(shè)置,選擇方法與定制內(nèi)核完全一致
            第六行更新默認(rèn)的制造商設(shè)置

            make menuconfig執(zhí)行結(jié)束后,自動(dòng)將配置結(jié)果保存為.config文件,并沒有將前一次配置結(jié)果丟棄,備份為.config.old文件(.文件是Linux的隱藏文件,可以用ls -a查看 ).
            下面開始對(duì)uClinux源代碼包進(jìn)行編譯,步驟如下:
            1.[root@localhost uClinux-dist]#make dep
            尋找代碼之間的倚賴關(guān)系(在內(nèi)核2.6系列以后自動(dòng)維護(hù)代碼間倚賴關(guān)系,以前的這一步必需)

            2.[root@localhost uClinux-dist]#make clean(可選步驟)
            清除構(gòu)造內(nèi)核時(shí)生成的所有目標(biāo)文件,模塊文件和一些臨時(shí)文件

            3.[root@localhost uClinux-dist]#make lib_only
            編譯庫(kù)文件

            4.[root@localhost uClinux-dist]#make user_only
            編譯用戶應(yīng)用程序文件

            5.[root@localhost uClinux-dist]#make romfs
            生成romfs文件系統(tǒng)

            6.[root@localhost uClinux-dist]#make image
            生成內(nèi)核映象文件

            7.[root@localhost uClinux-dist]#make
            通過(guò)各個(gè)文件夾中的Makefile文件進(jìn)行編譯

            其中除了make romfs和make image兩步較快外,其他各步都需要一段時(shí)間的執(zhí)行.
            編譯成功后會(huì)在當(dāng)前目錄(/uClinux-dist)看到images文件夾,里面有兩個(gè)內(nèi)核文件image.rom和image.ram,另外還有一個(gè)img文件romfs.img.

            3.1.5 當(dāng)然這是極順利的內(nèi)核編譯,在編譯uClinux難免有錯(cuò)誤出現(xiàn),現(xiàn)總結(jié)如下:

            1.如果在內(nèi)核定制的時(shí)候選的c庫(kù)是uC-libc則一路編譯下來(lái)幾乎沒有問(wèn)題,當(dāng)執(zhí)行到make image這一步時(shí)會(huì)出現(xiàn)兩個(gè)錯(cuò)誤:
            arm-elf-objcopy: /home/uClinux-dist/linux-2.4.x/linux: ?????????
            make[1]: *** [image] 錯(cuò)誤 1
            make[1]: Leaving directory `/home/uClinux-dist/vendors/Samsung/44B0
            make: *** [image] 錯(cuò)誤 2

            這是因?yàn)榈谝淮尉幾g時(shí)還沒有romfs.o,所以出錯(cuò);等romfs.o編譯好以后,如果再進(jìn)行內(nèi)核編譯,就不會(huì)出現(xiàn)這個(gè)錯(cuò)誤了.它完全不影響內(nèi)核的編譯,可以不必理會(huì)這個(gè)錯(cuò)誤,繼續(xù)下一步.

            2.如果在內(nèi)核定制時(shí)選的c庫(kù)是uClibc,那么當(dāng)編譯進(jìn)行到make user_only時(shí)會(huì)出現(xiàn)以下錯(cuò)誤:
            login.elf2flt: In function `main:
            /home/uClinux-dist/user/login/login.c:168: undefined reference to `crypt_old
            collect2: ld returned 1 exit status
            make[2]: *** [login] 錯(cuò)誤 1
            make[2]: Leaving directory `/home/uClinux-dist/user/login
            make[1]: *** [all] 錯(cuò)誤 2
            make[1]: Leaving directory `/home/uClinux-dist/user
            make: *** [user_only] 錯(cuò)誤 2
            這是由于對(duì)crypt_old的未定義引用而引起報(bào)錯(cuò),打開/home/uClinux-dist/user/login路徑下的login.c文件會(huì)看到這么一段條件編譯:
            #ifdef OLD_CONFIG_PASSWORDS
            #include
            #endif
            crypt_old ()正是定義在crypt_old.h文件中,所以我認(rèn)為這是沒有設(shè)置OLD_CONFIG_PASSWORDS的緣故.嘗試著注釋掉這個(gè)條件編譯,直接 將頭文件crypt_old.h包含進(jìn)來(lái),包括同一目錄下的passwd.c,再進(jìn)行用戶應(yīng)用程序文件的編譯,本以為這樣可以解決問(wèn)題的,但編譯結(jié)果還是 報(bào)錯(cuò).(疑問(wèn):OLD_CONFIG_PASSWORDS定義在哪個(gè)文件中?把它設(shè)成yes能否解決問(wèn)題?)

            解決方法一.
            編譯之前,進(jìn)入/uClinux-dist/user,更改其中的Makefile文件,加上一句
            LIBCRYPT +=-lcrypt_oldz
            再編譯,正確結(jié)束.

            解決方法二.
            在內(nèi)核配置時(shí)選擇
            [*] Customize Vendor/User Settings
            定制用戶選項(xiàng)設(shè)置,在其主菜單里進(jìn)入Core Applications一項(xiàng),去掉對(duì)login和old password的選擇,然后編譯通過(guò).
            如果修改過(guò)用戶配置,去http://www.hzlitai.com.cn/download/linux/config_user下載配置文件config_user,放到/uClinux-dist/config目錄下覆蓋原來(lái)的文件就還原到原來(lái)的設(shè)置.

            3.2.1 如果手頭uClinux的源代碼是uClinux-dist-20040408.tar.gz版本,則還需要下載補(bǔ)丁uClinux-20040801- ARMSYS.patch(http://www.hzlitai.com.cn/download/default.asp)
            首先解壓源代碼到/home,將補(bǔ)丁uClinux-20040801-ARMSYS.patch拷貝到/home/uClinux-dist.運(yùn)行補(bǔ)丁程序
            [root@localhost uClinux-dist]# patch -p1一系列文本行飛速閃過(guò),最后停留在提示
            ...
            Hunk #1 FAILED at 5.
            Hunk #2 FAILED at 40.
            Hunk #3 FAILED at 187.
            3 out of 3 hunks FAILED -- saving rejects to file Makefile.rej
            patching file linux-2.4.x/arch/armnommu/vmlinux-armv.lds.in
            Hunk #1 succeeded at 63 (offset 4 lines).
            cant find file to patch at input line 16504
            Perhaps you used the wrong -p or --strip option?
            The text leading up to this was:
            --------------------------
            |
            |diff -Naur uClinux-dist/vendors/Samsung/44B0/Makefile vendors/Samsung/44B0/Makefile
            |--- uClinux-dist/vendors/Samsung/44B0/Makefile 2004-04-08 08:27:25.000000000 +0800
            |+++ uClinux-dist/vendors/Samsung/44B0/Makefile 2004-08-01 02:43:50.000000000 +0800
            --------------------------
            File to patch:

            這是由于源代碼uClinux-dist/vendors/Samsung/路徑下的文件夾名是4510B,而不存在44B0這個(gè)文件夾,所以報(bào)錯(cuò).解決辦法很簡(jiǎn)單,直接將4510B改名成44B0就OK了.
            [root@localhost uClinux-dist]# mv vendors/Samsung/4510B vendors/Samsung/44B0
            也可以根據(jù)補(bǔ)丁文件的描述自己手動(dòng)地改寫源代碼,這樣就不需要再打補(bǔ)丁了.
            接下來(lái)就是代碼的編譯了.

            4.內(nèi)核的下載,燒錄
            在下載內(nèi)核之前確保板子上已經(jīng)燒錄了引導(dǎo)裝載程序bootloader,可以根據(jù)超級(jí)終端的顯示來(lái)判斷,如果出現(xiàn)了
            ...
            1.Download code to SDRAM.
            2.Download code to SDRAM & Nandflash.
            3.Burn flashROM.
            4.Copy code from flashROM to SDRAM.
            5.Run at specify address.
            6.Run code in Nandflash.
            7.Start uClinux.
            8.Format Nandflash.
            9.Test hardware
            這9個(gè)選項(xiàng),說(shuō)明已經(jīng)有bootloader燒錄到板子了,否則還要進(jìn)行bootloader的燒錄.
            4.1bootloader.bin的燒錄
            燒錄方法一:使用fluted燒錄工具
            燒錄步驟
            S1.連線.使用并口線和20針排線,通過(guò)JTAG模塊,連接主板(開發(fā)板)和宿主機(jī)主板并口
            S2.打開主板電源,運(yùn)行JTAG.exe
            S3.將bootloader.bin拷貝到programmer目錄下,運(yùn)行F.bat(Win2000 or XP運(yùn)行F_2000xp.bat),開始燒錄.
            Fluted燒錄分三個(gè)過(guò)程:擦除,寫入,校驗(yàn).如果沒有報(bào)錯(cuò),則燒錄成功.可以按復(fù)位鍵,觀察超級(jí)終端顯示.

            燒錄方法二:使用flashprgm工具
            它是一個(gè)工程文件,需要在ADS或SDT中編譯運(yùn)行.其優(yōu)點(diǎn)是速度快.
            在SDT中的燒錄步驟:
            S1.連接 jtag口,編譯工程,啟動(dòng)ADW
            S2.菜單|file|get files...,填寫地址0xc200000,打開bootloader.bin,ADW就開始下載
            S3.下載完成后點(diǎn)工具欄上(GO)圖標(biāo)執(zhí)行flashprgm程序,開始燒錄.

            4.2下載image.ram到開發(fā)板
            uClinux的運(yùn)行有兩種模式:一種是用USB或Xmodem下載內(nèi)核映象文件到SDRAM指定位置,直接運(yùn)行;另一種是先將內(nèi)核壓縮文件燒錄到flashROM,再?gòu)膄lashROM解壓縮到SDRAM開始運(yùn)行.
            將image.ram下載到開發(fā)板的步驟:
            S1.開發(fā)板上電,用USB供電就可以了(反正需要USB下載器);啟動(dòng)JTAG.exe,打開超級(jí)終端
            S2.在bootloader的9個(gè)選項(xiàng)中選擇功能項(xiàng)1
            S3.根據(jù)超級(jí)終端提示輸入下載地址,默認(rèn)是0xc8000,所以如果不用其它地址的話可以直接按回車鍵
            S4.提示使用哪種下載工具,USB下載器orXmodem,選擇前者按[U],后者按[X]
            S5.按下[U],出現(xiàn)提示信息:
            USB Interface is active!
            You can use USBdownload.exe to download *.bin file!
            這樣就可以開始使用USB下載器進(jìn)行程序下載了
            提示信息也可能是這樣的
            ...(以前看到過(guò),具體什么忘了)failed!
            可以按復(fù)位鍵重啟bootloader,基本可以解決問(wèn)題
            注意:在使用USB下載器地時(shí)候最好斷開jtag口.
            S6.USB下載器的使用.菜單|file|open file...,先選擇要下載的文件,它提供了三種格式的文件:.bin,.txt,還有.ram,然后點(diǎn)擊主界面上的"下載文件"按鈕開始下載,有提示信息顯示和進(jìn)度條變化.這里有兩個(gè)問(wèn)題:
            1.如果直接選擇image.ram,會(huì)發(fā)現(xiàn)它的大小只有幾十k,而且到下一步啟動(dòng)uClinux時(shí)就死機(jī)了,所以我們將.ram文件改成.bin文件;
            2.下載imageram.bin文件并不是每一次都可以成功,有時(shí)可能提示超時(shí),那就多試幾次(具體原因再作了解)
            S7.下載成功后,選擇功能項(xiàng)5,從指定位置運(yùn)行程序,因?yàn)槲覀冃枰刂?xc8000,直接回車就可以了,這樣就可以看到uClinux的啟動(dòng)畫面了

            4.3燒錄image.rom到主板
            image.rom是image.ram的壓縮版本.
            燒錄步驟:
            S1.復(fù)位開發(fā)板.選功能項(xiàng)1,輸入地址0xc200000,回車
            S2.USB下載器下載bootloader.bin(可以在光盤找到)
            S3.下載成功后,再次選擇功能項(xiàng)1,輸入地址0xc220000,回車
            S4.USB下載器下載imagerom.bin
            S5.下載成功后,還是選擇功能項(xiàng)1,輸入地址0xc8000,回車
            S6.USB下載器下載flashprgm目錄下的44bapp.bin
            S7.下載成功后,選功能項(xiàng)5,從指定位置0xc8000運(yùn)行程序
            S8.flashprgm開始運(yùn)行,超級(jí)終端顯示詢問(wèn)是否開始燒錄,按[Y],開始燒錄,可以看到開發(fā)板上綠色發(fā)光管的變化.燒錄完成提示是否再次燒錄,回答[N]
            S9.復(fù)位開發(fā)板,輸入7,運(yùn)行uClinux

            可以看到啟動(dòng)界面:
            ...
            Load image.rom...

            Start uClinux
            Uncompressing Linux.............................................................Linux version 2.4.24-uc0 (root@localhost) (gcc version 2.95.3 20010315 (release5Processor: Samsung S3C44B0X revision 0
            Architecture: S3C44B0X
            On node 0 totalpages: 2048
            zone(0): 0 pages.
            zone(1): 2048 pages.
            zone(2): 0 pages.
            Kernel command line: root=/dev/rom0 init=/linuxrc
            Calibrating delay loop... 31.84 BogoMIPS
            Memory: 8MB = 8MB total
            Memory: 6044KB available (1799K code, 170K data, 44K init)
            Dentry cache hash table entries: 1024 (order: 1, 8192 bytes)
            Inode cache hash table entries: 512 (order: 0, 4096 bytes)
            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: 2048 (order: 1, 8192 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
            ttyS0 at I/O 0x1d00000 (irq = 3) is a S3C44B0
            ttyS1 at I/O 0x1d04000 (irq = 2) is a S3C44B0
            ne.c:v1.10 9/23/94 Donald Becker ([email protected])
            Last modified Nov 1, 2000 by Paul Gortmaker
            NE*000 ethercard probe at 0x8000000: 52 54 ab 12 34 56
            eth0: NE1000 found at 0x8000000, using IRQ 22
            Blkmem copyright 1998,1999 D. Jeff Dionne
            Blkmem copyright 1998 Kenneth Albanowski
            Blkmem 1 disk images:
            0: C0ECA80-C1D4E7F [VIRTUAL C0ECA80-C1D4E7F] (RO)
            RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
            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 512 bind 512)
            VFS: Mounted root (romfs filesystem) readonly.
            Freeing init memory: 44K
            Shell invoked to run file: /etc/rc
            Command: hostname Samsung
            Command: /bin/expand /etc/ramfs.img /dev/ram0
            Command: /bin/expand /etc/ramfs2048.img /dev/ram1
            Command: mount -t proc proc /proc
            Command: mount -t ext2 /dev/ram0 /var
            Command: mount -t ext2 /dev/ram1 /ramdisk
            Command: chmod 777 /ramdisk
            Command: mkdir /var/config
            Command: mkdir /var/tmp
            Command: mkdir /var/log
            Command: mkdir /var/run
            Command: mkdir /var/lock
            Command: cat /etc/motd
            Welcome to
            ____ _ _
            / __| ||_|
            _ _| | | | _ ____ _ _ _ _
            | | | | | | || | _ | | | | / /
            | |_| | |__| || | | | | |_| |/
            | ___/____|_||_|_| |_|/____|/_//_/
            | |
            |_|

            For further information check:
            http://www.uclinux.org/

            Command: ifconfig lo 127.0.0.1
            Command: route add -net 127.0.0.0 netmask 255.255.255.0 lo
            Command: ifconfig eth0 192.168.253.2 netmask 255.255.255.0 up
            Command:
            Execution Finished, Exiting

            Sash command shell (version 1.1.1)
            />

            附:uClinux的通用c庫(kù):uC-libc和uClibc的區(qū)別概述

            uClinux通常使用兩種c庫(kù):uC-libc和uClibc.盡管它們名字近似,但有很大區(qū)別.本文是對(duì)它們不同點(diǎn)的快速瀏覽.
            uC-libc是uClinux的原始c 庫(kù),它基于Linux-8086 c庫(kù),該c 庫(kù)是ELKs 工程的一部分,支持m68000結(jié)構(gòu).uC-libc是一個(gè)相當(dāng)全面的c 庫(kù),但它的一些API是非標(biāo)準(zhǔn)的,一些通用庫(kù)例程現(xiàn)在已不再使用.目前它能穩(wěn)定地支持m68000,ColdFire和ARM(不帶MMU)結(jié)構(gòu) .其主要設(shè)計(jì)目標(biāo)是小型化和輕量級(jí).它力圖符合通用標(biāo)準(zhǔn),它的API也與絕大多數(shù)的c 庫(kù)兼容,但與標(biāo)準(zhǔn)難免有出入.

            uClibc是uC-libc的派生體,用來(lái)解決uC-libc存在的問(wèn)題.它讓所有的API都標(biāo)準(zhǔn)化(正確的類型,參數(shù)等),補(bǔ)充了許多缺失的例程,并 且已經(jīng)移植到許多結(jié)構(gòu)中.大體上講,它通過(guò)提供glibc兼容使得應(yīng)用程序移植到較小的c 庫(kù)時(shí)相當(dāng)?shù)萌菀? 它能夠應(yīng)用到帶虛擬存儲(chǔ)的Linux和uClinux上.在大多數(shù)帶MMU部件的平臺(tái)上為使它更加緊湊,它也能夠編譯成共享庫(kù).uClibc支持許多處理 器:m68000,ColdFire,ARM,MIPS,v850,x86,i960,Sparc,SuperH,Alpha,PowerPC和 Hitachi 8.uClibc能更加容易地適應(yīng)新的體系結(jié)構(gòu),它所支持的平臺(tái)數(shù)目至今仍在增長(zhǎng)證實(shí)了這一點(diǎn).
            可以根據(jù)你的需要來(lái)選擇uClinux使用uC-libc或者uClibc編譯環(huán)境.對(duì)m68000和ColdFire平臺(tái)通常選擇uC-libc, 因?yàn)樗С止蚕韼?kù),是這些處理器上使用最廣泛的c 庫(kù).uClibc also works quite well with almost all platforms supported by the distribution.你的需要將最終決定到底選擇哪一種c庫(kù).


            關(guān)鍵詞: uClinuxS3C44B0X移

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉