Zynq(2)从Hello World认识Zynq开发流程

打印 上一主题 下一主题

主题 643|帖子 643|积分 1944



  
1.开发工具介绍

xilinx提供了一系列的开发环境资助用户进步开发服从,构建了完整的软件生态。对于最新的versal系列芯片,还提供了AI的仿真工具,AI推理开发工具等。这里介绍与Zynq相关的三个开发工具vivado、vitis、petalinux


  • Vivado工具与纯PL的开发的功能是一致的,主要包括计划输入:支持使用Verilog、VHDL等硬件描述语言编写PL逻辑。综合:将HDL代码综合成FPGA的网表文件。实现:包括映射、布局布线等过程,将计划映射到实际的FPGA资源上。天生比特流:将计划天生FPGA可配置的比特流文件,包括bit文件和MCS文件。调试:通过逻辑分析仪、ILA(Integrated Logic Analyzer)等工具对FPGA举行实时调试。
  • Vitis是Xilinx的开发环境Xilinx SDK的前身,主要用于处理惩罚系统部分(PS)的软件开发。它包括以下功能:应用开发:编写、编译、调试运行在Zynq ARM处理惩罚器上的C/C++应用程序。驱动程序开发:开发和调试PS与PL间的驱动程序。硬件-软件协同计划:联合Vivado天生的硬件平台文件,实现软硬件的协同计划与调试。
  • PetaLinux工具是为Zynq系列提供的一个嵌入式Linux开发环境。主要功能包括:Linux内核配置和编译:根据硬件配置定制和编译Linux内核。文件系统定制:创建和定制得当Zynq的根文件系统。应用开发和调试:开发和调试Linux用户空间应用程序。装备树配置:天生和配置与硬件计划匹配的装备树文件。
2.工程目录简介

在一个工程目录下,SOC 工程一级目录一般包含 3 个文件夹,用于管理各类文件:
soc_hardware:文件夹放 system.xsa 文件
soc_fpga:文件夹放 FPGA 工程
soc_vitis:文件夹放 SDK 相关的开发文件


  • FPGA文件目录soc_fpga中包含:

    • cache:vivado软件运行缓存
    • hw:波形文件
    • ip_user_files:用户关于IP的文件
    • runs: 编译与综合的结果,此中impl-1文件夹中存放的是编译天生的可实行文件,.bin 是可以固化的文件,.bit是烧写的bit流文件。
    • sim:仿真结果文件
    • srcs:源码,仿真文件,约束文件
    • tmp:自制IP核时的临时计划工程文件夹
    • xpr: vivado的工程文件

  • Vitis文件目录soc_vitis中包含:
    工程名文件夹(project_name): 这是项目的主文件夹,通常包含与软件开发相关的内容。它主要存放以下内容:应用程序源代码:包括C/C++源文件、头文件等。编译天生的中央文件和可实行文件。项目配置文件:用于管理项目的编译选项、链接库和其他软件配置。
  • 工程名+system文件夹(project_name_system): 这个文件夹专门用于管理与系统计划相关的内容,通常涉及硬件计划和硬件-软件协同计划。
  • system_wrapper文件夹包含系统级封装文件,是硬件计划的顶层封装。它通常用于将多个硬件模块或IP核组合在一起,形成一个团体的硬件系统。此中:

    • hw文件夹中存储的是硬件计划相关的天生文件和中央文件。这些文件包括从Vivado导出的硬件平台描述文件(如*.xsa),这些文件界说了PL部分的资源分配和配置。
    • export/文件夹用于存储导出的硬件计划文件,特殊是在硬件计划完成后,这些文件可以被导出到Vitis的其他部分举行软件开发。通常包含硬件平台描述文件(如*.xsa)和一些约束文件。
    • psu_cortexa53_0/`文件夹通常与处理惩罚系统(PS)部分相关,特殊是与Cortex-A53核的配置和天生有关。它可能包含启动文件、装备树文件、以及与处理惩罚器配置相关的文件,资助界说Cortex-A53处理惩罚器在系统中的活动和配置。
    • zynqmp_fsbl/文件夹存储的是Zynq MPSoC平台的FSBL(First Stage Boot Loader,一级启动加载器)相关文件。FSBL负责初始化硬件平台,加载和引导后续的启动镜像,如ATF(Arm Trusted Firmware)、PMU固件、U-Boot等。
    • zynqmp_pmufw/文件夹包含的是与Zynq MPSoC平台的PMU(Power Management Unit,电源管理单元)固件相关的文件。PMU固件用于管理Zynq装备的电源状态、时钟和复位控制,确保系统的电源管理和状态切换功能。

3.Zynq裸机开发流程

Zynq裸机开发(Bare-Metal Development)指的是在没有操作系统的环境下直接在Zynq SoC(System on Chip)上开发应用程序。裸机开发通常涉及直接控制硬件资源,适用于对性能要求较高或需要精细控制的应用。以下是裸机开发的典范流程:
1.vivado硬件计划,选择MPSoc IP核,配置内存控制器,外设以及PL、PS交互环境,最后天生bit流文件,导出xsa文件。
2.vitis进入软件开发,创建硬件平台工程和应用工程并完成相关程序的编写、调试、编译。
3.上板验证
这里vivado的作用类似于单片机开发中的STM32Cube,即用图形化的方式配置硬件内部的连接,vivado将为PS端定制一个外设,界说了二者之间的交互,以及其他PS外设的使用。详细的开发流程联合HelloWorld工程在下节实现。
4.Hello World实现

4.1vivado开发部分

1.创建vivado工程,设置工程名为HelloWorld。

2.选择器件型号 XCZU4EV-SFVC784-2I,本系列所有工程基于该器件。

3.创建BD工程,添加zynq IP核。

4.通过创建好的tcl文件完成IP配置,这是购买开发板的时候厂家把所有PS端的配置做好之后天生的TCL文件,使用的时候直接导入就可以,反面会随着文章的推进逐步讲解如何做好PS端配置。

5.选择validate design完成IP 核配置验证。

6.①编译并导出平台文件,右键block文件,选择generate output products;②等候完成后右键block文件,选择create HDL Wrapper;system_wrapper.v 为创建的 Verilog 文件,该模块使用 Verilog HDL 对计划举行封装,主要完成了对 block design 的例化。

7.添加约束xdc文件,天生bit流;完成后 File->Export Hardware->Include bitstream。本工程中没有使用PL端的资源,所以无需添加约束,也无需天生bit流,直接导出硬件即可。详细按照下图选择即可。

8.tools->launch Vitis IDE,并选择工作空间为创建好的soc_vitis目录

4.2vitis开发部分

1.选择new->new application project,create a new platform from hardware,选择刚才创建的xsa文件,为应用工程起名字为hello_world;天生之后,此中system_wrapper为平台工程,hello_world为应用工程,hello_world_system为系统工程。在最后的界面中选择一个helloworld的模板,点击finish完成创建。

2.打开应用工程中的cpp文件,可以看见该模板通过串口完成了hello world 的打印功能。选中应用工程,右键选择build project,编译完成console框提示Build Finished 。
3.右键应用工程选择run as->run configurations

4.window->show view中添加terminal,单击小图标举行串口配置,第一次调试应该安装串口驱动后在装备管理器查找相应的COM口,别的配置如下图所示,最后看见在交互框中打印了“HelloWorld”。

5.传送门



  • 我的主页
  • Zynq从零开始专栏汇总导航
END

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连全瓷种植牙齿制作中心

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表