日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下vivado编译卡死,vivado+zedboard之Linux编译

發布時間:2023/12/10 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下vivado编译卡死,vivado+zedboard之Linux编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文將介紹如何利用上節搭建好的交叉編譯環境編譯嵌入式Linux所需的文件,包括u-boot、uImage(內核)、uramdisk.image.gz(文件系統)和devicetree.dtb(設備樹)。

原料:

u-boot-xlnx.git

linux-xlnx.git

device-tree-xlnx-xilinx-v2014.4.zip

編譯

1. U-Boot

~$ mkdir ZYNQ

~$ cd ZYNQ/

~/ZYNQ$ mkdir buildxil2014.4

~/ZYNQ$ cd buildxil2014.4/

~/ZYNQ/buildxil2014.4$ git clone https://github.com/Xilinx/u-boot-xlnx.git //或者先下載好,直接copy、解壓

cd u-boot-xlnx

在編譯之前,先進行配置,配置文件在u-boot-xlnx/include/configs下,打開zynq_common.h可查看信息。包括所需要的幾個文件的名稱等

make zynq_zed_config

make

cp u-boot u-boot.elf

如果需要安裝python:

sudo apt-get --reinstall install python-minimal

在u-boot-xlnx/include/configs下,查看zynq_common.h,zynq_zed.h(優先),決定了內核等文件的名稱。

本例使用zynq_zed_config:

“ethaddr=00:0a:35:00:01:22\0” \

“kernel_image=uImage\0” \

“kernel_load_address=0x2080000\0” \

“ramdisk_image=uramdisk.image.gz\0” \

“ramdisk_load_address=0x4000000\0” \

“devicetree_image=devicetree.dtb\0” \

“devicetree_load_address=0x2000000\0” \

“bitstream_image=system.bit.bin\0” \

“boot_image=BOOT.bin\0” \

2. uImage

使用配置文件:xilinx_zynq_defconfig(arch/arm/configs)

cd ~/ZYNQ/buildxil2014.4

git clone https://github.com/Xilinx/linux-xlnx.git //或直接copy下載好的linux-xlnx-xilinx-v2014.4.tar.gz

cd ~/ZYNQ/buildxil2014.4/u-boot-xlnx-xilinx-v2014.4/ //需要先安裝u-boot-tools

sudo apt-get install u-boot-tools

cd ~/ZYNQ/buildxil2014.4/linux-xlnx-xilinx-v2014.4

make ARCH=arm xilinx_zynq_defconfig

make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage

cp arch/arm/boot/uImage

3. uramdisk.image.gz文件系統

這里不進行編譯了,直接使用官網的:http://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs

或:

wget http://www.wiki.xilinx.com/file/view/arm_ramdisk.image.gz/41943558/arm_ramdisk.image.gz

修改根文件系統

cp arm_ramdisk.image.gz ramdisk.image.gz

gunzip ramdisk.image.gz

mkdir file_tmp

sudo mount ramdisk.image -o loop ./file_tmp/

這樣可以在file_tmp目錄中對文件系統進行修改,修改完成之后umount并重新壓縮即可

sudo umount file_tmp/

gzip ramdisk.image

//添加u-boot頭部

sudo apt-get install u-boot-tools

mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz

如果需要進行修改,可以先將uramdisk.image.gz解壓為uramdisk.image,再掛載到指定目錄

4. devicetree.dtb

建議:

建立一個devicetree目錄,將/scripts/dtc/dtc工具copy過來,每次使用時在其下建立工程目錄;

將所需要的dts,dtsi文件copy到其下的工程目錄下;

然后對工程目錄打開終端:../dtc -I dts -O dtb -o devicetree.dtb system.dts即可;

如果只有ARM,沒有使用PL部分:

在linux-xlnx/arch/arm/boot/dts/下,找到zynq-zed.dts及相關dtsi文件,copy到上述devicetree/xil2014.4/下:

../dtc -I dts -O dtb -o devicetree.dtb zynq-zed.dts

為PL配置devicetree

自己寫的PL程序對于ARM來說相當于是新的外設,在xil提供的Linux內核中的dts是沒有的,需要自己制作匹配的dts文件。SDK提供了根據在vivado中的硬件設計文件來生成設備樹的工具。也可以自己手工編寫或作出調整。

使用SDK制作和PL相匹配的devicetree。

SDK設置

下載device-tree-xlnx-xilinx-v2014.4.tar.gz,解壓將device-tree-xlnx-xilinx-v2014.4文件夾。

添加至:bsp repo=D:\Xilinx\SDK\2014.1\data\embeddedsw\lib\bsp下,

使用SDK添加下載好的目錄:SDK Menu: Xilinx Tools > Repositories > New… (bsp repo) > OK

注:由于device-tree-xlnx-xilinx-v2014.4.tar.gz,但是有win下路徑\的問題;重新在https://github.com/Xilinx/device-tree-xlnx下載,device-tree-xlnx-xilinx-v2014.4.zip(clone in desktop),解決

SDK使用

新建:SDK Menu: File > New > Board Support Package > Board Support Package OS: device-tree > Finish

在彈出的的對話框中修改參數;比如bootargs內核的命令行參數,內核啟動時傳給內核,可設置為:console=ttyPS0,115200 root=/dev/ram rw earlyprintk

編譯完成后在工程的\HW\Lab2-LedIP\Lab2-LedIP.sdk\device_tree_bsp_0下可以找到system.dts文件

將所有的dts,dtsi文件copy到虛擬機下的buildxil2014.4/linux-xlnx-xilinx-v2014.4下,使用dtc工具生成devicetree.dtb

../dtc -I dts -O dtb -o devicetree.dtb system.dts

注:這種方法在測試的時候有效,可以使用;但是在做HDMI的時候不能用了,沒搞明白怎么回事。只有手工編寫dts文件了。

小結

至此,已經編譯了xil2014.4-Linux所需的文件了。當然現在還不能啟動Linux,還需要制作BOOT.bin文件。這些方法適用于其他硬件,需要確定合適的配置文件。 在實際操作的過程中,由于工具版本、源代碼出處及版本等問題,折騰了很多次才選擇這種方法,而且經過后續驗證有效。在參考陸佳華的書、前輩博客、各種論壇的過程中,遇到過xilinx、xup、zedboard、digilent、AD等出的源碼或者編譯好的文件,有的是面向ISE的(比如ISE、Vivado的設備樹定義不一樣,甚至vivado2014.1和2014.4都不完全一樣),在參考資料和手頭源碼加個人關于這塊不甚了解的情況下,經歷了N次痛苦的過程。 由于時間問題,個中細節就不再詳述了,看錯誤信息、查論壇一般可以解決。

總結

以上是生活随笔為你收集整理的linux下vivado编译卡死,vivado+zedboard之Linux编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。