中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會(2)

        學(xué)習(xí)嵌入式Linux系統(tǒng)的筆記和體會(2)

        ——
        作者: 時(shí)間:2007-02-28 來源:天極網(wǎng) 收藏

        入門試驗(yàn),制作一個(gè)簡單的應(yīng)用

          我們使用一張軟盤啟動一臺假象的只有一個(gè)串口,鍵盤輸入,顯示輸出的x86架構(gòu)的linux系統(tǒng),執(zhí)行的特定應(yīng)用就是運(yùn)行minicom,通過串口撥號。需要軟件: minicom-xx.src.tar.gz 和 syslinux-xx.tar.gz,xx代表版本號,開始之前,在主目錄建立一個(gè)目錄,來釋放這兩個(gè)軟件包:

        cd
        mkdir -p project/minilinux
        cd project/minilinux
        tar zxvf minicom-xx.src.tar.gz
        tar zxvf syslinux-xx.tar.gz

          1、裁減linux內(nèi)核(需要系統(tǒng)安裝內(nèi)核文件包)

          配置內(nèi)核的時(shí)候,我們需要選擇這些:摸塊編入內(nèi)核,386處理器、物理內(nèi)存off、支持ELF、標(biāo)準(zhǔn)PC軟盤、支持RAM盤(4096)、支持 initial RAM disk (initrd)、虛你終端、虛擬終端控制臺、標(biāo)準(zhǔn)串口、ext2文件系統(tǒng)、控制臺驅(qū)動,VGA text console、DOS FAT、MSDOS文件系統(tǒng),其他的都可以不要,這樣內(nèi)核編出來較小。

        步驟:
        cd /usr/src/linux
        make mrproper
        make xconfig
        make dep && make bzImage
        得到 /usr/src/linux/arch/i386/boot/目錄的內(nèi)核文件bzIamge。

          2、編譯一個(gè)靜態(tài)的minicom ,把它作為將來的linuxrc

        cd minicom-xx/src
        vi Makefile
        修改下面這行
        minicom: $(minicom_OBJECTS) $(minicom_DEPENDENCIES)
        rm -f minicom 下面的行加上 -static,連接為靜態(tài)程序
        (LINK) -static $(minicom_LDFLAGS) $(minicom_OBJECTS) $(minicom_LDADD) $(LIBS)

        vi minicom.c
        找到 if (real_uid==0 && dosetup==0 ) 刪除這個(gè)判斷條件語句,主要是用于權(quán)限判斷的,因?yàn)檫@個(gè)嵌入應(yīng)用不關(guān)注權(quán)限問題,否則會出錯(cuò)。
        make
        得到可執(zhí)行程序,用ldd 檢查一下是不是靜態(tài)程序。

          3、準(zhǔn)備initrd壓縮文件image.gz

        dd if=/dev/zero of=image bs=1k count=4096
        losetup /dev/loop0 image
        mke2fs -m 0 /dev/loop0
        mounmt -t ext2 /dev/loop0 /mnt/
        mkdir -p /mnt/dev
        mkdir -p /mnt/usr/share/terminfo/l/
        cd /dev
        cp -a consle null tty tty0 zero mem /mnt/dev
        cp -P /usr/share/terminfo/l/linux /mnt/usr/share/terminfo/l/linux
        cp ~/project/minilinux/mincom/src/minicom /mnt/linuxrc
        umount /mnt
        losetup -d /dev/loop0
        sync
        gzip -9 image

        4、制作軟盤引導(dǎo),并拷貝文件 bzimage image.gz 到軟盤

        A.使用grub
        fdformat /dev/fd0
        mke2fs /dev/fd0
        mount /mnt/fd0 /mnt/floppy
        mkdir -p /mnt/floppy/boot/grub
        cp /boot/grub/stage1 /boot/grub/stage2 /mnt/floppy/boot/grub
        執(zhí)行 grub,在軟盤上創(chuàng)建引導(dǎo)
        grub > root (fd0)
        grub > setup (fd0)
        grub > quit

        cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy
        cp ~/porject/minilinux/image.gz /mnt/floppy

        編輯 /mnt/floppy/boot/grub/grub.conf
        default =0
        timeout-=10
        title minilinux
        root (fd0)
        kernel /bzImage
        initrd /image.gz

        卸下軟盤
        umount /mnt/floppy


        B. 使用syslinux
        fdformat /dev/fd0
        mkfs.msdos /dev/fd0
        mount -t msdos /dev/fd0 /mnt/floppy

        cp /usr/src/linux/arch/i386/boot/bzImge /mnt/floppy
        cp ~/porject/minilinux/image.gz /mnt/floppy

        cp syslinux-xx/ldlinxu.sys /mnt/floppy
        cat > /mnt/floppy/syslinux.cfg
        LABEL linux
        KERNEL bzimage
        APPEND initrd=image.gz

        umont /mnt/floppy
        syslinux-xx/syslinux /dev/fd0
        sync

          5、用軟盤啟動計(jì)算機(jī),如果幸運(yùn),minicom的運(yùn)行畫面出現(xiàn)在屏幕上。

          到此,我們的單應(yīng)用嵌入式linux做好了,但它還很簡陋,沒有什么實(shí)際用途,但通過這個(gè)實(shí)驗(yàn),可以了解嵌入式系統(tǒng)的大致結(jié)構(gòu)和開發(fā)過程。在進(jìn)行實(shí)際的嵌入式開發(fā)時(shí),通常要在PC機(jī)上借助嵌入式linux開發(fā)工具包,如:uclinux,bluecat等,對相應(yīng)的硬件平臺(目標(biāo)機(jī))進(jìn)行軟件編寫編譯,調(diào)試成功后,將內(nèi)核及應(yīng)用程序?qū)懭氲侥繕?biāo)機(jī)的存儲器中,從而完成整個(gè)應(yīng)用。


         



        評論


        相關(guān)推薦

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

        關(guān)閉