新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > MicroBlaze處理器的PetaLinux操作系統移植

        MicroBlaze處理器的PetaLinux操作系統移植

        作者: 時間:2011-04-15 來源:網絡 收藏

        2.2 建立硬件平臺
        為每個應用工程建立一個文件夾,里面保存該工程的硬件配置。在移植時,只需選擇相應的硬件平臺,內核就會讀取該工程文件夾下的配置文件。使用-new-platform命令建立硬件平臺,如果使用MMU(虛擬內存管理單元),則在此命令后添加-m選項。硬件平臺建立起來后,運行make menuconfig命令,在Vendor/Product Seletion選項中,選擇該硬件平臺。
        另外,還需將在EDK下生成的配置文件轉換成Linux可以識別的格式。在工程文件夾下運行PetaLinux-copy-autoconfig命令,自動完成格式轉換,并拷貝配置文件到已選擇的工程文件夾下。
        2.3 添加自定義設備驅動
        本系統自定義了IP核,因此必須開發驅動程序并將其添加到PetaLinux配置中。添加自定義設備驅動主要步驟如下:
        ①在平臺配置目錄下Makefile文件中添加語句platobj-$(CONFIG_PETALOGIX_DDC)+=ddc.o和$(obj)/ddc.o:.config使設備初始化函數ddc.C與內核配置相關聯;
        ②在驅動程序所在目錄下的Makefile文件中添加obj-$(CONFIG_PETALOGIX_DDC)+=ddc_adapter.o使設備驅動程序ddc_adapter.c與內核配置相關聯;
        ③修改設備驅動程序所在目錄下的Kconfig文件,使配置內核時可以選擇該設備驅動,并添加以下語句:
        b.JPG
        通過以上文件的修改,就可以在配置PetaLinux內核時選擇自定義的設備驅動。
        2.4 配置PetaLinux內核
        由于Linux內核的可裁減性,能夠方便地對內核進行修改、裁減、編譯,最終移植到一個嵌入式系統中。運行圖形編輯工具make menuc-onfig命令,對內核和系統環境進行配置。
        在內核配置的設備驅動選項中,一定要選擇與系統硬件配置一致的硬件設備驅動,否則內核編譯時就會出錯。針對本系統的硬件配置,主要配置以下幾項驅動:
        ①[Block devices]塊設備。選擇Xilinx SystemACEsupport。
        ②[Misc device]混雜設備。選擇FSL FIFO driver,然后進入FSL Channel Selection,選擇FIFO on FSLO,并選擇自添加設備驅動Pet-aLogix DDC101 Driver。
        ③[Network device support]網絡設備。選擇Ethernet(1000Mbit)子菜單中的Xilinx 10/100/1000 LLTEMAC support。
        ④[Character devices]字符設備。選擇Serial drivers子菜單中的8250/16550 and compatible serial support和Console on 8250/16550 and compatible serial port。
        文件系統選項中,默認選擇了ext2、romfs和cramfs文件系統,其他文件系統可以根據需要自行選擇。本系統需要掛載DOS文件系統的CF卡,因此進行以下配置:
        ①[DOS/FAT/NT Filesystems]。選擇MSDOS fssupport。
        ②[Native Language Support]。選擇Codepage 437(United States,Canada)。
        內核配置中的其他配置可以根據目標系統的不同靈活配置,配置完成后保存退出,自動進入系統環境配置菜單。系統環境配置是對Peta-Linux的屬性、命令進行配置,主要有以下幾個選項:
        ①[System Settings]系統設置。配置系統的網絡地址、默認用戶名、默認登陸密碼和所用根文件系統等內容。
        ②Core Applications]內核應用。主要配置內核的常用特性。
        ③[Network Applications]網絡應用。配置網絡應用時的相關命令。
        ④[Miscellaneous Applications]混雜應用。配置系統內核中的命令。
        ⑤[BusyBox]。配置系統內核中的命令。
        PetaLinux已經設置好了編譯規則,因此配置完成后,依次執行命令make dep、make clean、make all,建立文件依賴關系,清除舊的文件,編譯內核,生成內核image。

        3 PetaLinux啟動方案
        經過編譯的PetaLinux內核image文件主要有image.bin、image.elf、image.ub。根據選擇image文件的不同,PetaLinux有4種啟動方案:XMD下載啟動、TFTP網絡下載啟動、Flash啟動和SysACE CF卡啟動。其中,XMD和TFTP網絡下載啟動方案,在每次系統上電后都必須重新下載,適用于系統調試;Flash啟動方案在系統上電后自動從Flash中讀取配置文件,但Flash燒寫速度較慢,更改系統配置較為不便。因此,本系統選用SysACECF卡啟動方案。
        使用SysACE CF卡啟動PetaLinux,先將硬件比特流文件和image.elf制作成ACE文件,再復制到CF卡中,配置CF卡啟動PetaLinux。制作ACE文件,可在EDKShell窗口運行命令:
        xmd-tcl genace.tcl(命令工具)
        -jprog-board m1402(所需的開發板)
        -hw implementation/download.bit(生成的比特流文件)
        -elf image.elf(編譯Linux內核生成的可執行網表文件)
        -ace system.ace(需生成的ACE文件)
        成功后,適合于ML-402開發板的ACE文件就生成了。
        Linux運行需要根文件系統的支持,啟動時必須加載文件系統以支持系統的運行,而image.elf中不包含文件系統。因此,使用SysACE CF卡啟動時必須手動加載文件系統。在編譯PetaLinux內核時,已經生成了以romfs文件夾為名稱的文件系統,所以只需將CF卡分區和格式化,然后掛載此文件系統。具體步驟如下:
        ①將CF卡掛載到Linux系統中,運行命令fdisk/dev/sda把CF卡分成3個區。第1分區存放system.ace文件,第2分區為Linux Swap交換分區,第3分區存放根文件系統。
        ②Linux下格式化第3分區為ext2文件系統,運行命令mke2fs/dev/sda3。在/ete/fstab下輸入命令/dev/sda3/mnt/rootfs auto defaults,user,noauto 0 0。把設備sda3掛在/mnt/rootfs文件下,文件系統為默認的ext2,普通用戶,能掛載,不轉儲,啟動時不掃描文件系統。通過命令mount/mnt/rootfs掛載該目錄,這樣就可以把根文件系統rootfs拷貝到CF卡的該分區上。
        ③Windows下格式化第1分區為FAT32文件系統,把system.ace復制到這個分區。
        ④Linux下格式化第2分區為交換分區,運行命令mkswap/dev/sda2。
        一切準備就緒后,插入CF卡,開啟電源,就可以從CF卡啟動PetaLinux。

        結語
        本文介紹了一種可用于的嵌入式Linux——PetaLinux,并詳細討論了其內核配置和啟動方案。通過移植Peta-Linux,本文開發的SOPC可以直接用于實際工程。該嵌入式移植快速、簡單,由于其基于Linux2.6內核,可以保證較高的穩定性。因此,在SOPC應用日益復雜的背景下具有較高的實用價值。
        本文創新點:實現了PetaLinux在的移植,并成功實現PetaLinux中自定義硬件設備驅動的添加和SysACE CF卡的啟動方案。

        本文引用地址:http://www.104case.com/article/191233.htm
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 隆昌县| 锦屏县| 尚义县| 旺苍县| 老河口市| 绥滨县| 信丰县| 四川省| 高唐县| 莆田市| 获嘉县| 永泰县| 沐川县| 吉首市| 乐山市| 文登市| 万安县| 永康市| 赫章县| 乐业县| 县级市| 全椒县| 离岛区| 武功县| 茌平县| 西和县| 湛江市| 棋牌| 台山市| 通河县| 施秉县| 隆尧县| 毕节市| 定日县| 东港市| 罗山县| 凯里市| 五家渠市| 根河市| 东丰县| 友谊县|