• ZYNQ7000_linux开发环境搭建 2018-11-27 09:08:13
    ZYNQ7020_linux开发环境搭建一、软件和设置1、开发工具版本2、交叉编译环境3、安装/更新32位库文件二、获取Xilinx源文件三、uboot修改和编译1、修改zynq-common.h2、修改zynq_zybo.h3、修改uboot中的dts4、修改...
    @[TOC](ZYNQ7020_linux开发环境搭建)
    # 一、软件和设置
    ## 1、开发工具版本
     1. 虚拟机: VMware® Workstation 14 Pro
     2. Ubuntu :ubuntu16.04 LTS 64bit
     3. Vivado+SDK:2017.4
     4. 平台:zynq7020(clg400)
    ## 2、交叉编译环境
    使用xilinx集成开发环境SDK中自带的工具。
    ```c
    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-
    export PATH=/opt/Xilinx/SDK/2017.4/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/:$PATH
    ```
    ## 3、安装/更新32位库文件
    一共三条,第一:系统更新(个人随意);第二:安装库文件(注意安装提示),第三:为make menuconfig准备(scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory)
    ```c
    sudo apt-get update
    sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6 libbz2-1.0:i386
    sudo apt-get install libncurses5-dev
    ```
    # 二、获取Xilinx源文件
    这里直接使用git从xilinx github中获取uboot和kernel源文件。
    ```c
    git clone https://github.com/Xilinx/linux-xlnx.git
    git clone https://github.com/Xilinx/u-boot-xlnx.git
    ```
    # 三、uboot修改和编译
    ## 1、修改zynq-common.h
    我打算用QSPI启动,所以修改的是/your_dir/u-boot-xlnx/include/zynq-common.h中的qspiboot的配置。为FSBL和.bit文件和uboot预留5M;内核占5M,没用使用ramdisk的情况下在bootm中加一个横。
    ```c
    "qspiboot=echo Copying Linux from QSPI flash to RAM... && " \
    		"sf probe 0 0 0 && " \
    		"sf read ${kernel_load_address} 0x500000 ${kernel_size} && " \
    		"sf read ${devicetree_load_address} 0xA00000 ${devicetree_size} && " \
    		"echo Copying ramdisk... && " \
    		"sf read ${ramdisk_load_address} 0xB00000 ${ramdisk_size} && " \
    		"bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}\0" \
    /* 不使用ramdisk的版本*/
    "qspiboot=echo Copying Linux from QSPI flash to RAM... && " \
    		"sf probe 0 0 0 && " \
    		"echo Copying kernel... && " \
    		"sf read ${kernel_load_address} 0x500000 ${kernel_size} && " \
    		"echo Copying devicetree... && " \
    		"sf read ${devicetree_load_address} 0xA00000 ${devicetree_size} && " \
    		"bootm ${kernel_load_address} - ${devicetree_load_address}\0" \
    ```
    ## 2、修改zynq_zybo.h
    这里选择在zybo的基础上修改配置,它和zynq-common.h在同一目录.在其中添加一条.
    ```\
    #define CONFIG_OF_EMBED
    ```
    ## 3、修改uboot中的dts
    把/your_dir/u-boot-xlnx/arch/arm/dts目录中zynq-zybo.dts的部分设备注释掉.
    ```c
    &clkc {
    	ps-clk-frequency = ;
    };
    /*
    &gem0 {
    	status = "okay";
    	phy-mode = "rgmii-id";
    	phy-handle = ;
    
    	ethernet_phy: ethernet-phy@0 {
    		reg = ;
    		device_type = "ethernet-phy";
    	};
    };
    */
    &qspi {
    	u-boot,dm-pre-reloc;
    	status = "okay";
    };
    /*
    &sdhci0 {
    	u-boot,dm-pre-reloc;
    	status = "okay";
    };
    */
    &uart1 {
    	u-boot,dm-pre-reloc;
    	status = "okay";
    };
    /*
    &usb0 {
    	status = "okay";
    	dr_mode = "host";
    	usb-phy = ;
    };
    */
    ```
    ## 4、修改Makefile
    打开在uboot目录中Makefile,注释掉一下代码(这一步可以省略)。
    ```c
    #quiet_cmd_cfgcheck = CFGCHK  $2
    #cmd_cfgcheck = $(srctree)/scripts/check-config.sh $2 \
    #		$(srctree)/scripts/config_whitelist.txt $(srctree)
    ```
    ## 5、uboot配置、编译
    ```c
    make distclean
    make zynq_zybo_defconfig
    make
    ```
    将生成的uboot 复制位uboot.elf。备用
    # 四、内核编译
    ```c
    make distclean
    make xilinx_zynq_defconfig
    make -j4 UIMAGE_LOADADDR=0x8000 uImage
    ```
    在./arch/arm/boot/下的uimage复制备用。
    # 五、修改设备树
    ## 1、修改设备树中关于QSPI的选项。
    ```c
    /*这个bootargs是为从emmc启动文件系统而准备的,刚开始时emmc中并没有文件系统也没关系,在uboot中我们配置为带ramdisk的QSPI选项就可以*/
    bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait";
    		stdout-path = "serial0:115200n8";
    //
    *****
    /////	
    &qspi {
    	status = "okay";
    	is-dual = ;
    	num-cs = ;
    	flash@0 {
    		compatible = "n25q128a11";
    		reg = ;
    		spi-tx-bus-width = ;
    		spi-rx-bus-width = ;
    		spi-max-frequency = ;
    		#address-cells = ;
    		#size-cells = ;
    		partition@qspi-fsbl-uboot {
    			label = "qspi-fsbl-uboot";
    			reg = ;
    		};
    		partition@qspi-linux {
    			label = "qspi-linux";
    			reg = ;
    		};
    		partition@qspi-device-tree {
    			label = "qspi-device-tree";
    			reg = ;
    		};
    		partition@qspi-rootfs {
    			label = "qspi-rootfs";
    			reg = ; 
    		};
    	};
    };
    ```
    ## 2、编译
    这里利用内核的dtc,在内核目录下执行一下代码。
    ```c
    ./scripts/dtc/dtc -I dts -O dtb -o ./arch/arm/boot/devicetree.dtb ./arch/arm/boot/dts/zynq-zybo.dts
    ```
    将devicetree.dtb复制备用。
    # 六、ramdisk文件
    从[xilinx wiki](https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842473/Build+and+Modify+a+Rootfs)页面中下载我们想要的ramdisk。当然,你也可以自己做。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181126110630965.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NoaV9Ib25n,size_16,color_FFFFFF,t_70)这个是xilinx 提供的生成好的文件系统,将它更名为ramdisk.image.gz。我们需要的是uramdisk,还需要设置:
    ```c
    mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz
    ```
    生成的uramdisk.image.gz备用。
    # 七、.bit,fsbl
    打开一个在裸机状态下验证可用的vivado 工程(可以用sdk下的helloworld工程)。导入到SDK,新建FSBL。复制system_wrapper.bit 和fsbl.elf备用。
    # 八、采用SDK生产bin,并下载
    注意这里的uImage、devicetree、uramdisk偏移地址。之后点击生成BOOT.bin文件,接着采用SDK把程序烧写到FLASH中,sdk2017.4烧写flash需要调整时钟,[具体看这里](http://www.osrc.cn/forum.php?mod=viewthread&tid=1660&highlight=2017.4)。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2018112613193869.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NoaV9Ib25n,size_16,color_FFFFFF,t_70)
    # 九、启动结果
    将开发板的启动方式设置为QSPI启动,之后上电,在SecureCRT中的结果:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181126130444646.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NoaV9Ib25n,size_16,color_FFFFFF,t_70)
    由于采用的是带有uramdisk的启动方式,所以提示了从device 1:0挂载了根文件系统,但是设备树中也设置了bootargs从emmc中启动所以有了第二行的failed。关于ramdisk的内容以后在分析,首先看下文件系统中的设备1:0是谁:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181126131113517.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NoaV9Ib25n,size_16,color_FFFFFF,t_70)
    
    
    展开全文
  • zynq Linux程序开发 2019-03-27 14:46:14
    开发环境:vivado 2018.2、PetaLinux 2018.2 程序框架: 具体步骤: 1. 打开vivado 2018.2软件 2. 点击Create Project 3. 输入工程名和工程路径 (注意:工程路径中不要有空格,否则后续SDK会无法导入...
  • 如果是安装了Win10的Linux子系统Ubuntu,则在Win10磁盘目录下建立,例如“E:/zynq_work”,那么在Ubuntu子系统里就是“/mnt/e/zynq_work”。虚拟机需要确认目录的访问权限。本文以<WORK>用来表示工作...
  • 通过前面3节内容,我们知道了: Xilinx ZYNQ的内部结构 ...ZYNQ的嵌入式Linux开发流程是本节介绍的重点。 一、嵌入式linux开发三要点 嵌入式linux底层开发主要工作是: bootloader 内核 文件系统 内...
  • 虚拟机软件版本:VMware14.1.1 Linux系统版本:ubuntu-16.04.6 petalinux版本:petalinux-v2019.2 vivado版本:Vivado 2019.2 一、虚拟机系统安装
  • 玩转Zynq连载6——虚拟机与Linux系统环境搭建 更多资料共享 链接:https://share.weiyun.com/5s6bA0s 1概述 Zynq不是一个单纯的FPGA,也不是一颗单纯的ARM。没错,Zynq是一颗既有FPGA又有ARM的集成芯片,习惯上,...
  • 开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发平台:Xilinx Vivado +...上一篇文章中,介绍了整个开发环境的搭建过程,所需要的文件都已准备就绪。为了先熟悉Zynq7030在Llinux下开发流程,我们...
  • Linux系统安装包为 ubuntu-16.04.5-desktop-amd64 Vivado版本为Xilinx_Vivado_SDK_2016.1_0409_1.zip 安装Vivado Linux下解压Xilinx_Vivado_SDK_2016.1_0409_1.zip,在其目录下打开终端,输入以下命令安装Vivado...
  • Q:为什么要开始写系列文章?...2、目前CSDN上也有很多关于Zynq7000系列的开发文章,但基本都是采用官方开发板或者第三方开发板为开发平台,与手中的Zynq7030数据采集板在硬件上和很多不兼容的地方。所以想从...
  • 分享一个linux SDK for ZYNQ 2019-09-28 13:30:51
    分享一个linux SDK for ZYNQ 分享一个我自己搭建的适用于ZYNQlinux SDK 文章目录分享一个linux SDK for ZYNQsdk下载地址:安装SDKSDK架构SDK命令列表快捷键创建自己的工程目录编译devicetree编译uboot文件编译...
  • 基于ZYNQ硬件的LINUX 开发感谢您使用米联客开发板团队开发ZYNQ 开发板,以及配套教程。 本教程将对之前编写的《ZYNQ 修炼秘籍》-LINUX 部分内容做出改进, 并且增加新的课程内容。本教程不仅仅适合用于米联客...
  • 移植LinuxZYNQ 2019-09-06 22:26:12
    ZYNQ移植Linux博客说明开发环境移植u-boot 博客说明 撰写日期 2019.09.06 完稿日期 2019.09.09 最近维护 暂无 本文作者 multimicro 联系方式 multimicro@qq.com 资料链接 本文无附件资料 GitHub ...
  • 基于Zynq Linux环境搭建(一) 2018-12-04 11:25:18
    https://www.cnblogs.com/ifpga/p/8182021.html 安装VMWare的版本12 Ubuntu版本12.04.5 64bit   系统安装完成后,登陆系统,在...在软件源中,配置下载源,如下图示所示,确保系统更新不会被中断。...重启...
  • Xilinx Zynq开发教程 2020-06-26 15:36:59
    开发环境搭建 首先开发arm cpu的工具有两种,如果不跑linux操作系统,那么就用vitis就够了,如果跑linux操作系统,那么则需要xilinx的petalinux工具,vitis支持linux和windows两种操作系统,但是petalinux只支持...
  • 本人机械出生,毕业后先做了两年FPGA,然后做IC开发,所以对linux一窍不通。无奈来了一家小公司,所有的环境都要自己搭,这里将自己的坑全部献上,希望能提供一些借鉴 第一步: 安装虚拟机  1、注意事项  linux...
  • zynq linux 开发环境搭建 2015-11-16 17:23:47
    1、安装基本开发工具:sudo apt-get install build-essential ,sudo apt-get install libncurses5-dev; 2、在安装交叉编译工具之前,输入命令“sudo dpkg-reconfigure dash”,选择“否”,退出; 3、运行“xilinx...
  • 说到学习ZYNQ+SOC+Linux开发,我认为主要应该细分为lian两大点:zynq,soc合为一个点,linux为一个点。下面我就给大家介绍学习的流程和路线。 一,学习zynq+soc的FPGA开发部分和片上ARM核的寄存器,裸奔应用开发,我...
  • 1、背景介绍 目前国产ZYNQ采用的是复旦微电子的FMQL系列,该FMQL系列中两款芯片中FMQL10S400对标的Xilinx的7010,FMQL45T900对标的...下文介绍搭建国产ZYNQ Linux虚拟机开发环境步骤。 2、在虚拟机中安装linux操...
  • 开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发环境:Xilinx Vivado + SDK -18.3 交叉编译工具:arm-linux-gnueabihf- ...在前面文章:Zynq-7000系列之linux开发学习笔记:PS和PL端的GPI...
  • 链接: https://pan.baidu.com/s/1JwNfLY50eoMr2_UO3lAfZw 密码: j8ex 链接: https://pan.baidu.com/s/1JwNfLY50eoMr2_UO3lAfZw 密码: j8ex 转载于:https://www.cnblogs.com/ifpga/p/8207177.html
1 2 3 4 5 ... 20
收藏数 914
精华内容 365