zynq板zedboard+vitis设计 (一) hello world实验

这篇具有很好参考价值的文章主要介绍了zynq板zedboard+vitis设计 (一) hello world实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

研究生跟着导师做项目,买了两块zedboard板子,我拿到一个,于是从零开始学zynq相关知识以及vivado的使用,经过两三个月的研究,终于开始入门了。开始写下这系列博客,一是整理记录自己所学,二是希望能够和大家进行交流探讨,共同进步。

开发板就是zedboard,vivado用的是2019.2。

本篇主要分三部分,首先我会讲一下自己了解的SDK与visit之间区别,然后是zedboard板子的一些主要的配置,最后是用zedboard+visit完成hello world实验的示例。

博客的书写主要参考了正点原子的启明星系列教程文档。

新人向文章,内容较简单

1.vitis与SDK的一些区别

vivado自2019版本开始,将原有的SDK替换成了vitis,乍一看变化很大,但其实使用几乎没有变化

首先,最直观的是SDK版本,在使用vivado建立好工程并导出hardware后,打开SDK就自动加载了platform,但vitis需要自己先手动添加platform然后再建立工程(具体操作见本文第三部分)。

其次,SDK导出的hardware的后缀是.hdf,而使用vitis生产的hardware后缀则是.xsa。后面如果用petalinux建立工程时,需要注意这点变化。

最后,是软件内一些文件位置和名称的变化。比如SDK中xilinx官方提供的模板位于system.mss文件中,而vitis中,可以在platform.spr中board support package文件内找到模板。

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 这是目前我能想到的第一次使用vitis可能需要注意的与SDK的区别,其他视情况补充。

2.zedboard板需要了解的配置信息

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

首先是SOC型号:XC7Z020-CLG484-1

然后是DDR3型号:MT41J128M16HA-15E

最后是一些常用的引脚:

UART:MIO48(D11)、MIO49(C14)

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

LD0-7分别对应T22、T21、U22、U21、V22、W22、U19、U14

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 BTNU、BTNL、 BTNC、BTNR、BTND分别对应T18、N15、P16、R18、R16

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 以上就是zedboard主要需要注意的一些配置信息,即在将不同的zynq板实验移植到zedboard上时,一般都需要更改的地方,其他细节可以参照官网的原理图。

3.基于zedboard+vitis的hello world实验

vivado建立工程

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

点击create project

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 编辑名称和工程路径,注意勾选create project subdirectory,方便后续管理。

鼠标放在一些选项上会有中文注释

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 勾选do not specify source at this time,可以之后视情况添加设计文件和约束文件

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

选择SOC型号,这里推荐下面的第二种方法,即直接在boards页面搜索并选择zedboard 

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 因为zedboard是xilinx公司和其他公司联合出的板子,所以可以直接在vivado内找到板子的信息,可以方便的配置板子参数,后面在block design内设计时,也有预设可以选择

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

点击create block design

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 点击上方+号搜索并添加zynq

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 双击zynq核进行编辑,此时可以选择presets内的zedboard,这样zynq就会被完全设置成zedboard的默认配置,自己只需根据需要另行添加端口和外设即可。

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

不过采用presets时,会有一些可能用不上的接口,有些臃肿,此时可以选择自行根据zedboard配置信息配置DDR、UART等。个人推荐直接使用presets,会方便很多。

本实验采用最小系统即可进行,无需另外配置

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

需要注意的是在选择presets后,需要如图连接FCLK_CLK0与M_AXI_GP0_ACLK,否则会报错

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 点击上方run block automation

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

右击bd文件,并选择generate output products

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

再右击选择create HDL wrapper

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

点击generate bitstream生成比特流

 注意:比特流是对PL部分的配置信息,本实验没有对PL部分进行配置,其实不用生产比特流,但是通常来说这几步是做vitis实验的必要的几步,为了流程的完整性,本文提到此步骤

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 选择export hardware,然后勾选include bitstream

注意:原理同上,其实本实验不需要勾选include bitstream

vitis部分

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

打开vitis

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 使用SDK时,此时这里便会有platform信息,但是vitis需要自己添加

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 这里选择application project和platform project都可以,platform project只是添加platform,application project可以同时添加platform并建立工程,推荐选择application project

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 在为工程命名后开始选择platform,此时选择create a new platform from hardware,然后点击左上角加号,在导出hardware后,工程文件内会有对应的.xsa文件,具体路径见图所示,选择.xsa文件。

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 添加好自己建立的platform后选择并继续

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 这里直接选用软件给的hello world模板

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 src目录下自动建立的helloworld.c文件就是main函数文件

blog_1_system就是工程文件,blog_1_wrapper是platform,同一个platform可以建立多个工程文件,根据工程文件后信息,可以了解工程文件是建立在那个platform上的。

代码如下

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"


int main()
{
    init_platform();

    print("Hello World\n\r");

    cleanup_platform();
    return 0;
}

 其中init_platform函数的作用是使能caches和初始化uart,cleanup_platform函数作用是取消caches使能,这两个是非必须的。

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

连接好开发板后,点击右下角terminal内的open a terminal,进行连接

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 若是右下角没有terminal,可如图进行搜索打开

zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 zedboard,zedboard开发板基础应用,单片机,嵌入式硬件

 然后右击工程文件并选择launch on hardware,程序加载完成后terminal内就会输出hello world,实验完成。

结语

新人第一次发文,无论是文章有问题还是技术有问题,欢迎批评指正。文章来源地址https://www.toymoban.com/news/detail-818990.html

到了这里,关于zynq板zedboard+vitis设计 (一) hello world实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AD9361+zedboard(ZYNQ7020)的SDK工程(上)

    1.准备工具 vivado2018.3 HDL源码:https://wiki.analog.com/resources/fpga/docs/releases no_os:https://github.com/analogdevicesinc/no-OS 注意:HDL源码下载的版本要与vivado一致,我这里是2018.3 HDL版本选择 2.构建vivado工程 2.1编译源文件 解压下载的HDL文件的压缩包 进入该文件夹C:AD9361hdl-hdl_2019_r1project

    2024年02月13日
    浏览(42)
  • 【Rust指南】快速入门|开发环境|hello world

      本篇博客是Rust语言系列的开篇之作,以后有关Rust语言的文章也都会收录在我的 《进军Rust》 专栏里,我会精心打造这个专栏,帮助大家快速入门Rust语言,享受Rust语言带来的编程乐趣。虽然Rust相比其他语言入门慢,但这恰巧说明了Rust语言的特色——安全高效。对Rust语言

    2024年02月15日
    浏览(40)
  • 鸿蒙开发学习笔记1——真机运行hello world

    学习任何语言和框架的第一步,永远都是跑通熟悉的“hello world”,本文将介绍鸿蒙开发如何跑通“hello world”。 一、构建第一个ArkTS应用(fa模型) 说明:请使用DevEco Studio V3.0.0.601 Beta1及更高版本。下载链接:https://developer.harmonyos.com/cn/develop/deveco-studio 。 (1)创建ArkTS工程

    2024年02月12日
    浏览(42)
  • HarmonyOS鸿蒙学习基础篇 - 运行第一个程序 Hello World

    下载与安装DevEco Studio      古话说得好,“磨刀不误砍柴工”,对于HarmonyOS应用开发,我们首先得确保工具齐全。这就好比要进行HarmonyOS应用开发,我们需要确保已经安装了DevEco Studio,这是HarmonyOS的一站式集成开发环境(IDE)。      下面我们就以在Windows系统上安装DevEco

    2024年01月23日
    浏览(42)
  • 基于Bearpi开发板鸿蒙OS之Hello world

    开发环境搭建 在my_app下的BUILD.gn中加入以下内容 在sample下的BUILD.gn中新增\\\"my_app:hello_world\\\",并将原来的\\\"B2_basic_button:button_example\\\"注释掉 使用MobaXterm工具编译后并烧录代码到开发板,运行效果图 APP_FEATURE_INIT宏原型 LAYER_INITCALL_DEF宏原型 LAYER_INITCALL宏原型 InitCall定义原型 USED_ATTR 宏

    2024年02月13日
    浏览(39)
  • 机器人CPP编程基础-01第一个程序Hello World

    很多课程先讲C/C++或者一些其他编程课,称之为基础课程。然后到本科高年级进行机器人专业课学习,这样时间损失非常大,效率非常低。 C++/单片机/嵌入式/ROS等这些编程基础可以合并到一门课中进行实现,这些素材已经迭代三轮以上,全部公开,需要可以参考,不需要,我

    2024年02月13日
    浏览(51)
  • 编程笔记 Golang基础 007 第一个程序:hello world 使用Goland

    开始在Goland环境中编程go语言代码啦。 打开GoLand软件。 选择 “File”(文件)菜单,然后点击 “New Project”(新建项目)或使用快捷键 Ctrl+Shift+A 并搜索 “New Project”。 在新建项目向导中,选择 “Go” 并点击 “Next” 按钮。 配置项目设置: 为项目选择一个合适的保存位置。

    2024年02月20日
    浏览(42)
  • 【Java】学习一门开发语言,从TA的Hello World开始

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月23日
    浏览(53)
  • OpenHarmony 应用开发入门 (一、环境搭建及第一个Hello World)

    万事开头难。难在迈出第一步。心无旁骛,万事可破。没有人一开始就能想清楚,只有做起来,目标才会越来越清晰。--马克.扎克伯格 前言 2024年1月16日,华为目前开启已HarmonyOS NEXT开发者预览版Beta招募,报名周期为1月15日-1月22日。HarmonyOS NEXT开发者预览版将不再兼容安卓开

    2024年01月18日
    浏览(74)
  • HarmonyOS鸿蒙应用开发 (一、环境搭建及第一个Hello World)

    万事开头难。难在迈出第一步。心无旁骛,万事可破。没有人一开始就能想清楚,只有做起来,目标才会越来越清晰。--马克.扎克伯格 前言 2024年1月16日,华为目前开启已HarmonyOS NEXT开发者预览版Beta招募,报名周期为1月15日-1月22日。HarmonyOS NEXT开发者预览版将不再兼容安卓开

    2024年01月23日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包