Vitis下Linux应用程序开发流程

Vitis统一软件平台将Xilinx各种软件统一,即支持Vitis嵌入式软件开发流程,又支持Vitis应用软件加速开发流程。本文介绍Vitis嵌入式软件中的linux应用程序开发流程。

1 Vitis软件开发工作流程

嵌入式应用开发流程:

在这里插入图片描述

  • 从Vivado导出xsa
  • 将xsa导入vitis软件并创建platform
  • 创建domain
  • 在Vitis IDE调试应用
  • 系统级调试
  • 生成boot images

Vitis软件platform工作空间结构,有两种Project类型:

Platform Project和System project

Platform Project:提供硬件信息和软件运行环境。可通过导入XSA或存在的Platform建立。几个System project可以建立在同一个Platform Project 上,共享硬件和软件软件。

System project:将同时运行在器件上的应用进行组合。两个独立运行在同一个处理器上的应用不能在一个System
project里。一个workspace可以包含多个System
project。

在这里插入图片描述

Workspace:当打开Vitis软件平台时,创建workspace,用来存储工程数据。

Platform:是硬件部件(XSA)和软件部件(BSP,FSB等)的集合。

Application(Software Project):一个Software Project包含一个或多个源文件,和必要的头文件,编译和生成二进制输出文件(ELF)。System project可以包含多个application project。每一个software project必须有一个相应的domain。

XSA:包含硬件信息,例如处理器配置信息,外设连接信息和器件初始化代码。当创建Platform Project时需要提供XSA。

Domain:Domain时一个板级支持包(BSP)或者包含驱动的运行系统(OS),在这上面构建应用。创建好的软件镜像包含部分Xilinx库。可以在Domain中创建多个应用。Domain可以时一个处理器,也可以是多个。

Flow:软件开发与应用加速开发工作流程有一些差异。目前有三种设计流程:

  • 嵌入式
  • 嵌入式加速
  • 数据中心加速

Zynq Ultrascale+ MPSoC器件在Vitis开发:

在这里插入图片描述

Linux 应用可以通过Linux Domain的sysroot编译和链接库。

system projects 在MPSoC 芯片不同时间运行。在一个 system project上的应用运行在相同的时间。

2 使用Vitis创建Linux应用程序

在这里插入图片描述

2.1 硬件平台与Linux镜像

在使用Vitis创建Linux应用程序之前需要完成如下两步:

1、使用Vivado创建硬件平台;

2、使用Petalinux构建Linux镜像。

以上两部分请参考之前的文章基于ZYNQ MPSOC XCZU3CG的百度Edgeboard FZU3 构建linux系统在Ubuntu18.04上安装Vivado Vitis Petalinux 2020.1

本次设计依然是在Edgeboard FZU3上完成。

构建后Linux镜像后,进入到Petalinux工程下的images/linux文件夹,之下如下指令:

cd images/linux

petalinux-build - -sdk

petalinux-package - -sysroot

完成上述过程后,开始使用Vitis创建Linux应用程序。

2.2 Vitis创建Linux应用程序

完成上述过程后,开始使用Vitis创建Linux应用程序。在Vitis下创建Linux应用程序分三步:

1、使用XSA创建Platform
Project;

2、在Platform Project加入Linux Domain;

3、创建Linux Application Project。

使用XSA创建Platform
Project

新建文件夹fzu3_vitis,打开vitis软件将Workspace设置成fzu3_vitis。

在这里插入图片描述

新建Platform Project,点击Create Plateform
Project。

在这里插入图片描述

工程名输入fzu3,选择Create from hardware specification(XSA)

在这里插入图片描述
在这里插入图片描述

选择XSA文件路径,在Operating system中指定linux,点击finish完成Platform
Project创建。

在这里插入图片描述

在Platform Project加入Linux Domain

在加入Linux Domain之前,在fzu3_vitis文件夹中:

新建文件夹image,将Petalinux工程image/linux文件夹下的image.ub、boot.scr 和 rootfs.cpio.gz 拷贝到image。

新建文件夹boot,将system.bit、bl31.elf、uboot.elf、zynqmp_fsbl、pmufw.elf 文件复制到boot。

在boot中,新建文件linux.bif

the_ROM_image:
{
  [fsbl_config] a53_x64
  [bootloader] <zynqmp_fsbl.elf>
  [pmufw_image] <pmufw.elf>
  [destination_device=pl] <bitstream>
  [destination_cpu=a53-0,exception_level=el-3, trustzone] <bl31.elf>
  [destination_cpu=a53-0, exception_level=el-2]<u-boot.elf>
}

在vitis工程中进行如下设置:

在这里插入图片描述

如下设Sysroot Directory路径为Petalinux工程下aarch64-xilinx-linux文件夹。
在这里插入图片描述
设置完成后,Build Project编译工程。
在这里插入图片描述
创建Linux Application Project

在Vitis中点击New->Application Project,

在这里插入图片描述

点击next
在这里插入图片描述

选择刚新建的Platform fzu3
在这里插入图片描述
应用工程名设置成hello
在这里插入图片描述

Domain在Platform中已经设置好,直接next

在这里插入图片描述
选择Linux Hello World进行测试,完成Linux应用程序创建。

在这里插入图片描述

编译hello_system
在这里插入图片描述

在hello_system文件夹下Debug/sd_card文件夹中生成如下文件。

在这里插入图片描述

3 测试

将sd_card中的文件拷贝到SD卡,单板启动,运行./hello.elf,输出Hello_World。

在这里插入图片描述

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this f
  • 3
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Zynq是一种基于Xilinx FPGA和ARM Cortex处理器的可编程系统芯片。Vitis是一种全新的开发工具套件,用于开发和部署高性能、低功耗和可扩展的应用程序Vitis为Zynq开发平台提供了一整套开发工具和库,以简化应用程序开发过程。Vitis应用教程的目的是帮助用户了解和掌握Vitis工具和相关技术,从而快速开发出高效、稳定的Zynq应用程序Vitis应用教程通常包括以下内容: 1. 环境设置:教程会介绍如何正确配置Vitis开发环境,包括安装必要的软件和驱动程序,并配置硬件设备与开发板的连接。 2. 应用程序开发:教程会引导用户使用Vitis开发工具,编写和调试应用程序。用户可以学习如何创建项目、添加源代码文件、设置编译选项、构建和调试应用程序。 3. 并行计算:Vitis支持并行计算,通过使用OpenCL、OpenMP等技术,用户可以利用FPGA的计算能力来加速应用程序的执行。教程会介绍如何使用Vitis进行并行计算的开发。 4. 优化与调试:Vitis提供了丰富的优化和调试工具,帮助用户优化应用程序的性能和功耗。教程会介绍如何使用这些工具来进行代码优化、性能分析和调试。 5. 应用部署:完成应用程序开发后,教程会讲解如何将应用程序部署到Zynq开发板上运行,以及如何进行调试和性能测试。 通过学习Vitis应用教程,用户可以掌握Vitis开发工具的使用方法,深入了解Zynq开发平台的特性和优势,快速开发出高性能、低功耗的应用程序,并实现在FPGA上的硬件加速。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬码农二毛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值