代码编织梦想

Zynq开发平台工具

参考文档:zynq_sw\Lab_instructions\Lab01 - Explore Zynq Hardware Platform 2013_3_02.pdf
该例程主要是在Vivado软件上导入之前官方配置的Zynq7020的芯片级配置,具体的工程名称为: avnet-digilent-zedboard-2017.2。硬件设计师将该配置文件导出给软件设计人员使用。主要有如下文件。
在这里插入图片描述
如果硬件开发团队提供一个Zynq的硬件平台配置,需要检测哪些硬件配置是有效的,可以通过查看HTML文件来确认配置。如下图所示:

导入硬件平台配置

参考文档:zynq_sw\Lab_instructions\Lab02 - HW Platform in SDK 2013_3_02.pdf
该实验将建立工作空间和导入硬件平台配置,将按照以下步骤进行操作:
1、 打开SDK开发工具,开始->所有程序->Xilinx Design Tools->Vivado 2017.2->SDK->Xilinx SDK 2017.2
2、 设置workspace空间的路径,如下图所示,点击OK按钮创建SDK的工作空间。
在这里插入图片描述3、 在SDK软件的菜单栏选择File->New->Other->Xilinx->Hardware Platform Specification新建硬件平台工程。

在这里插入图片描述
4、 填写硬件平台工程的名称并选择Vivado软件导出的硬件平台配置的xml文件,如下如所示:
在这里插入图片描述
5、 查看该平台的配置文件如下图所示:
在这里插入图片描述

BSP包创建和配置

参考文档:zynq_sw\Lab_instructions\Lab03 - Bare Metal BSP 2013_3_02.pdf
该文档说明了创建基本的BSP包的过程和Xilinx提供的外设驱动实例以及实例代码。

创建应用程序

参考文档:zynq_sw\Lab_instructions\Lab04 - Develop an Application 2013_3_02.pdf
该文档说明了怎样创建应用程序工程和利用模板创建应用程序。

下载固件和调试应用程序

参考文档Lab05 - Connect Hardware 2013_3_02.pdf
本文档要点:
1、 设置硬件连接
2、 Zynq7000的PL编程
3、 通过JTAG接口使用TCL配置ARM PS模块
4、 运行应用程序
5、 调试程序
这里的SDK-SoC JTAG接口作用:
1、 读写ARM寄存器
2、 Zynq7000的PL编程
3、 QSPI Flash的编程
4、 加载应用程序到芯片的RAM或者DDR3
5、 应用调试

一、硬件连接和FPGA编程过程如下图所示

  1. ZedBoard开发板连接好电源线,但电源开关处于OFF状态;
  2. 通过micro-USB线缆分别连接JTAG口(J17)和UART口(J14);
  3. 设置ZedBoard的启动模式为JTAG模式,配置MIO[6:2]=GND;
  4. 将ZedBoard的电源开关拨到ON,可以看到LED灯(LD13)点亮;
  5. 查看PC机的设备管理看是否出现如下图的外设。
    在这里插入图片描述
  6. 打开Xilinx SDK软件选择Xilinx Tools->Program FPGA;
  7. FPGA硬件配置下载成功后LD2将会被点亮。

在这里插入图片描述
二、应用程序调试和下载如下图所示:
在这里插入图片描述
在这里插入图片描述
3、切换到Target Setup选项,默认选择ps7_init.tcl脚本运行程序。
4、选择Application选项,选择刚才创建的Hello_Zynq7000工程的Hello_Zynq7000.elf文件进行加载。
在这里插入图片描述
5、 打开对应的串口设置STDIO Connection选项,配置好串口号和波特率。点击Apply->Run运行应用程序。
在这里插入图片描述
在这里插入图片描述

创建FSBL工程

参考文档:Lab06 - FSBL 2013_3_02.pdf
该文档详细说明了创建FSBL的工程的过程和进行源码解读。

建立内存测试工程

新建mem_test应用工程,具体参考hello world工程创建过程(注意bsp仍使用standalone_bsp_0),在templates里选择memory tests,点击finish。
在这里插入图片描述连接好仿真器,在project explorer右键点击mem_test工程,选择Run As的Run Configurations,然后双击弹出的窗口中的xilinx C++ application(GDB),同样点开STDIO Connection,勾选Connect STDIO to Console,选择正确的com口,将波特率改为115200,然后点击run,会弹出对话框,选择ok继续。
在这里插入图片描述
在这里插入图片描述
console里若均显示PASSED标志,则说明内存检测成功。
在这里插入图片描述

启动模式

参考文档:Lab07 - Boot from Flash 2013_3_02.pdf
该文档详细说明了创建一个boot image过程和从QSPI/SD卡启动流程。
在这里插入图片描述

spi flash及sd卡的测试

右键点击uart_test工程,选择Create Boot Image,系统会默认按顺序添加fsbl镜像、bit文件及工程镜像,在output path里默认生成bin文件,将名字改为boot.bin,点击create image生成bin文件。
在这里插入图片描述
再次右键点击uart_test工程,选择Create Boot Image,在output path里将生成文件的后缀名改为mcs,点击create image先生成mcs文件。
在这里插入图片描述
连接好仿真器,点击菜单Xilinx Tools,选择Program Flash,选择正确的image file,上述生成的文件存放在[xilinx_install_dir]\hw_project[project_name][project_name].sdk\SDK
SDK_Export[project_name]\bootimage文件夹中,将flash type改成qspi_dual_parallel,点击program。
在这里插入图片描述
在program成功后,断电然后将硬件板的启动模式改为spi flash启动,连接好串口后重新上电。
在这里插入图片描述
若在串口终端打印hello world则说明spi flash可正常使用。(这种方法暂时不可行!!!)
将生成的boot.bin拷贝到sd卡中,然后将硬件板装上sd卡,并将硬件板设置为sd卡启动,连接好串口后上电启动,若打印hello world则sd卡接口正常。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_50128907/article/details/127118742

ZYNQ使用SDK生成设备树-爱代码爱编程

开发环境: Windows下的Vivado套件 Linux ubuntu Step1:首先从Xilinx GitHub上下载Device Tree Generator(设备树生成器)的BSP https://github.com/Xilinx/device-tree-xlnx/pulls 并将其复制到SDK的安装目录下 Step2:配置SDK开发环境,Xi

ZYNQ 使用SDK开发linux应用程序-爱代码爱编程

1,FILE->NEW->Application Project 工程名填写linux_app,OS Platform 选择 linux 2,进行编译,选择Build Project 3,执行应用程序./linux_app.elf 4,双击 Linux Agent,配置连接参数,通过 TCF-Agent 运行调试

zynq 7000 的 iic 外设编程-爱代码爱编程

本文主要介绍zynq 7000下的i2c ps 外设编程。实验是在vivado 2018.3 上完成的。 本实验的前提条件是你已经做过了zynq 7000的helloworld sdk 实验。一般开发板的厂家都提供了的,一些设置与所用硬件有关,也可参考我的博客 petalinux 2018.2 下的helloworld 实验 I2C总线简介 I2C总

ZYNQ7000 Linux开发步骤-爱代码爱编程

STEP1.Vivado新建工程 1、新建Vivado工程; 2、配置ZYNQ7000的ARM核; 3、开发用户自定义的IP核; 4、编译并生成bit文件; 5、导出硬件信息; 参考资料: STEP2.新建和配置Petalinux工程,移植Linux操作系统 1、新建Petalinux工程; 2、导入硬件信息; 3、配置Petalinux工程; 4

Zynq Ultrascale+ MPSOC硬件开发之与Zynq7000芯片资源对比说明及开发资料介绍-爱代码爱编程

Zynq Ultrascale+ MPSOC硬件开发之与Zynq7000芯片资源对比说明及开发资料介绍     ​官网关于Zynq Ultrascale+ MPSOC和Zynq7000两种器件对比介绍,Zynq Ultrascale+ MPSOC(后边简称MPSOC)的APU处理器升级为Cortex-A53(ARM v8架构),增加实时处理内核RPU(C

zynq7000学习(1)——学习思路概要-爱代码爱编程

先了解zynq7000的使用环境 把zynq自带的例程能够在开发板跑起来,理解并能修改例程,改一改 看出的结果是不是想要的 了解板子接口都有哪些、干什么用,例程里肯定有相关的驱动,先跑起来 独立开发环境大概分为四个步骤: (1)     系统架构师确定硬件-软件分区方案; (2)     硬件工程师处理被分配到硬件中的功能,并将它们转换或设

ZYNQ 7000 使用心得1 SDK_holleworld-爱代码爱编程

1.creat project -> name -> location (勾选创建子目录选项) 注意路径不要有中文 2.RTL project (勾选 此时先不确定sorce ) 3.芯片型号选择 XC7Z020CLG400-2 4. IP-INTERGRATOR  -> create block design -> + -&

Zynq 【SDK裸机开发之PS】——串口接收缓存-爱代码爱编程

最近项目上在使用Zynq开发,也是第一次使用,期间会遇到各种各样的问题,属于Zynq本身问题的我会更新到我的另一篇博客《Zynq开发调试踩坑指南》中,这个版块将会陆续记录我自身在程序开发中的问题。 这次的问题是串口收数据问题,众所周知,我在一个月前就已经把串口调通了,收发试着也没啥问题。现在正在加一个通过串口远程升级的功能,也就是发的数据量大了,几十毫秒

zynq xilinx sdk经验分享三 存储篇_controstr的博客-爱代码爱编程

一. 前言 本文依据个人试验及工作经验总理而成,分享出来供大家参考,如有错误或更好的方法望与大家一起探讨。 二. 背景 作者学习Xilinx SDK的时候,发现该平台使用起来遇到各种各样的问题和bug,网上解决方法都是零零散散的或者根本找不到,有时候遇到问题就要卡上几天甚至更久,特别浪费时间。 所以在个人学习期间,就遇到的一些问题整理出来,不能说是