zedboard 構建嵌入式linux

作者:xiabodan   出處:http://blog.csdn.net/xiabodan/article/details/23379645

本文通過五部完成zedboard的嵌入式LINUX搭建,所謂磨刀不五砍材工嘛

1:系統環境搭建

要準備好交叉編譯環境 見http://blog.csdn.net/xiabodan/article/details/22717175

2:編譯u-boot

然後要準備好u-boot  可以首先 apt-get install git   ,然後可以在xilinx git中下載相關的u-boot原碼,git clone git://git.xiinx.com/u-boot-xarm.git

解壓原碼:如果是zip文件的,unzip u-boot-xarm

配置u-boot                  make zynq_zed_config                    有可能會權限不夠,需要chmod 

編譯u-boot                  在編譯之前我們要首先設置一下交叉編譯器的軟鏈接,避免出現誤用gcc

                                     ln -s  arm-xilinx-linux-gnueabi-gcc  arm-linux-gcc

                            ln -s  arm-xilinx-linux-gnueabi-ar  arm-linux-ar

                            ln -s  arm-xilinx-linux-gnueabi-gcc  arm-linux-gcc            

                            ln -s  arm-xilinx-linux-gnueabi-objcopy  arm-linux-objcopy

                            ln -s  arm-xilinx-linux-gnueabi-objdump arm-linux-objdump      

                                     make

在u-boot-xarm目錄下可以看到生辰的新文件u-boot(.elf),u-boot.bin,u-boot(.elf)會在xilinx SDK裏面用到,強調一下這裏的u-boot.bin不能直接用於xilinx的zynq,而用到的是u-boot(.elf)必須經過SDK和system.bit還有fsbl文件一起生辰zynq的第一階段啓動文件BOOT.BIN。此時我們的u-boot.elf算是編譯完成。先留在這裏後面在用。


3:編譯內核以及設備樹

首先我們要準備的當然是內核原碼了:git clone http://github.com/Digilent/linux-3.3.digilent.git

得到內核以後 配置內核  make ARCH=arm digilent_zed_defconfig 

                                          make ARCH = arm                    

編譯成功以後會在./arch/arm/boot/目錄下找到zImage文件了,當然還要編譯設備樹進入./arch/arm/boot/dts/目錄下可以看到zynq-zed-adv7511dts文件,爲什麼是adv7511文件,我們會在將FPGA的時候說,這與xilinx硬件有關。然後我們在內核跟目錄下 

 make zynq-zed-adv7511.dtb  

可以看到 

DTC     arch/arm/boot/zynq-zed-adv7511.dtb
DTC: dts->dtb  on file "arch/arm/boot/dts/zynq-zed-adv7511.dts"

 這兩句話輸出然後在執行        make

這時會在./arch/arm/boot/目錄下生成zynq-zed-adv7511.dtb文件


至此我們生辰了u-boot.elf    zImage       .dtb

4:下面需要製作根文件系統

今天就不整了 麻煩死了  有時間載來 現在就用linaro的這麼好 不用白不用。


5:XILINX SDK生成BOOT.BIN


將我們第2布中生成的boot.elf文件拷貝出來。打開XILINX FPGA官方提供的硬件工程cf_adv7511_zed 這個工程可以在analog官網上下載

可以從圖中看到zynq_fsbl_0.eld文件是xilinx用於zynq的第一階段啓動文件。這個文件比u-boot還要先運行,具體過程看http://blog.csdn.net/xiabodan/article/details/23093111

而system.bit當然是我們的FPGA的下載流文件了,這個文件一般用於FPGA端配置,具體不多說了,有時間在詳細的寫出來。

至於這個u-boot.elf當然就是我們在第2階段生成的uboot了

通過這三個文件生成的BOOT.BIN纔是我們的啓動文件。


最後將之前的三個文件 zImage  .zynq-zed-adv7511.dtb BOOT.BIN(其中zynq-zed-adv7511.dtb要重命名爲devicetree.dtb)拷貝入SD卡FAT32中,同時將linaro文件系統拷貝到SD卡的EXT4分區,當然之前必須進行SD卡的分區爲兩個分區(FAT32與EXT4 ),分區工具可以用GParted。

上電!奇蹟出現了吧!

等着你的將是linux的開發了,不過由於小編不是專業的LINUX選手,還要去做FPGA的配置!苦逼的FPGA農民工。寫本文的木的純屬記個筆記,以後不忘,因爲不知道這輩子會不會做INUX開發哦,天知道呢!









參考數目:digilent官方資料www.digilent.org

                    嵌入式系統軟硬件協同設計實戰指南基於Xilinx zynq  . 陸佳華

                     xilinx  all programmable Zynq-7000 soc 何賓    

                     懶兔子博客  http://www.eefocus.com/nightseas/blog/cate_12977_0.html

                     肖志遠博客:http://blog.csdn.net/column/details/zynq.html

                     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章