ZYNQ之嵌入式学习----开篇实验Hello World

news2025/2/24 12:21:11

1 ZYNQ 嵌入式系统的开篇实验Hello World

阅读本文需先学习: FPGA学习----Vivado软件使用

1.1 ZYNQ 嵌入式系统开发流程

  • 创建Vivado工程
  • 使用IP Integrator 创建 Processor System
  • 生成顶层HDL
  • 生成比特流,导出到SDK
  • 在SDK中创建应用工程
  • 板级验证

开篇实验任务是在 ZYNQ 开发板上搭建 ZYNQ 嵌入式最小系统, 并使用串口打印 Hello World 信息

1.2 实验硬件设计

1.2.1 创建Vivado工程

点击Quick Start栏的 Create Project,如图所示:

在这里插入图片描述

然后,点击Next,如图所示:

在这里插入图片描述

设置工程名和工程路径,然后Next,如图所示:

在这里插入图片描述

选择RTL Project,勾选Do not specify sources at this time,即不需要添加源文件和约束文件,然后点击Next,如图所示:

在这里插入图片描述

选择芯片型号,如图所示:

在这里插入图片描述

点击Finish,完成工程创建,如图所示:

在这里插入图片描述

1.2.2 使用IP Integrator 创建 Processor System

Vivado 开发套件中提供了一个图形化的设计开发工具— —IP 集成器(IP Integrator),在 IP 集成器中可以非常方便的插入各种功能模块(IP)

如图所示,在Flow Navigator中,单击 IP Integrator 下的 Create Block Design,然后指定所创建的 Block Design 的名称,点击OK:

在这里插入图片描述

在 Diagram 窗口中给设计添加 IP,点击 + ,打开 IP 目录:

在这里插入图片描述

搜索zynq,找到并双击ZYNQ7 Processing System,如图所示:

在这里插入图片描述

添加完成后,ZYNQ7 Processing System 模块出现在 Diagram 中,如图所示:

在这里插入图片描述

双击所添加的 ZYNQ7 Processing System 模块,进入 ZYNQ7 处理系统的配置界面,如图所示:

在这里插入图片描述

Zynq Block Design显示了 Zynq 处理系统(PS)的各种可配置块,其中灰色部分是固定的,绿色部分是可配置的

  • PS-PL Configuration 能够配置 PS-PL 接口,包括 AXI、HP 和 ACP 总线接口
  • Peripheral IO Pins 可以为不同的 I/O 外设选择 MIO/EMIO 配置
  • MIO Configuration 可以为不同的 I/O 外设具体配置 MIO/EMIO
  • Clock Configuration 用来配置 PS 输入时钟、外设时钟,以及 DDR 和 CPU 时钟等
  • DDR Configuration 用于设置 DDR 控制器配置信息
  • SMC Timing Calculation 用于执行 SMC 时序计算
  • Interrupts 用于配置 PS-PL 中断端口

配置PS的UART,如图所示:

在这里插入图片描述
PS 和外部设备之间的连接主要是通过复用的输入/输出(Multiplexed Input/Output,MIO)来实现的,MIO14 和 MIO15 下点击 UART0,方框的颜色会变成绿色,与此同时这两个 MIO也会变成绿色,如图所示:

在这里插入图片描述

点击左侧的 MIO Configuration ,在右侧展开 I/O Peripherals,选择UART0,可以看到更具体的引脚配置信息,如图所示:

在这里插入图片描述

点击左侧的 PS-PL Configuration ,可以在这里设置 UART0 串口通信的波特率,如图所示:

在这里插入图片描述

点击左侧的 DDR Configuration ,在Memory Part一栏选择 DDR 的器件,如图所示:

在这里插入图片描述
XC7Z020 的核心板选择 MT41J256M16RE-125 ,XC7Z010 的核心板选择 MT41J128M16 HA-125

点击左侧的 Clock Configuration,该界面主要是配置 ZYNQ PS 中的时钟频率,如图所示:

在这里插入图片描述
输入时钟默认是 33.33333Mhz

本实验是搭建 ZYNQ 的嵌入式最小系统,只需要使用 ZYNQ 中的 PS 端。因此将 PS 中与 PL 端交互的接口信号移除,如图所示:

在这里插入图片描述

接着展开 AXI Non Secure Enablement 下的 GP Master AXI Interface,取消勾选其中的 M AXI GP0 interface,如图所示:

在这里插入图片描述

返回到 Vivado 界面后,在 Diagram 中可以看到 ZYNQ7 Processing System IP 模块发生了变化,如图所示:

在这里插入图片描述

点击上图中箭头所指示的位置Run Block Automation,如图所示,左侧确认勾选processing_system7_0, 然后点击 OK:

在这里插入图片描述

点击 ZYNQ7 PS 模块接口处的+,来展开这两组接口,观察其中都有哪些信号。然后点击箭头所指示的按钮,验证当前设计:

在这里插入图片描述

验证完成后弹出对话框提示没有错误或者关键警告,点击OK:

在这里插入图片描述

1.2.3 生成顶层HDL模块

在Sources 窗口中, 选中 Design Sources 下的 sysetm.bd, 右击 ,在弹出的菜单栏中选择Generate Output Products,如图所示:

在这里插入图片描述

弹出Generate Output Products对话框,如图所示,选择Global:

在这里插入图片描述

Generate 完成后,在弹出的对话框中点击OK:

在这里插入图片描述

在 Sources 窗口中,点击IP Source,可以看到 Generate 过程生成的输出结果:

在这里插入图片描述

在Hierarchy标签页,再次右击 system.bd,然后选择Create HDL Wrapper:

在这里插入图片描述

在弹出的对话框中确认勾选Let Vivado manage wrapper and auto-update,然后点击OK:

在这里插入图片描述

1.2.4 生成比特流文件并导出到SDK

由于本次实验未用到 PL 部分,所以无需生成 Bitstream 文件,只需将硬件导出到 SDK 即可,如图所示:

在这里插入图片描述

在弹出的对话框中, 因为没有生成 bitstream 文件, 所以无需勾选Include bitstream”,直接点击OK:

在这里插入图片描述

硬件导出完成后,启动 SDK 开发环境,如图所示:

在这里插入图片描述

在弹出对话框中,直接点击OK:

在这里插入图片描述

1.3 软件设计

启动了软件开发环境(SDK,Software Development Kit),如图所示:

在这里插入图片描述

1.3.1 在SDK中创建应用工程

新建一个 SDK 应用工程,如图所示:

在这里插入图片描述

在弹出的对话框中,输入工程名,点击Next:

在这里插入图片描述

选择工程模版 Hello World,然后点击Finish:

在这里插入图片描述

SDK 创建了一个 hello_world 应用工程和 hello_world_bsp 板级支持包(BSP)工程,如图所示:

在这里插入图片描述

双击打开 hello_world/src 工程目录下 helloworld.c 文件,可以看到源代码,在工具栏中点击Build All来编译工程,如图所示:

在这里插入图片描述

1.4 下载验证

由于疫情,一直无法去实验室,故ZYNQ开发板不在身边,该步骤内容待更新

致谢领航者ZYNQ开发板,开启ZYNQ学习之路!

希望本文对大家有帮助,上文若有不妥之处,欢迎指正

分享决定高度,学习拉开差距

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端笔记】小记一次Antd Vue 1.x (for vue2.x) icons组件按需引入的实现

因为项目有样式规范要求,和规范最相似的就是antd了,再加上项目用的是2.x,所以使用antd 1.x版本进行开发。项目完成后,理所应当对打包进行优化,于是遇到了icons组件全量引入的问题,查找了资料实现后特地记录…

R语言作业--第六章判别分析

目录 思考题4)原题目:贝叶斯判别的基本思想是什么? 练习题第3题:以舒张期血压和讯将胆固醇含量预测被检查者是否患冠心病,测得15名冠心病人和16名健康人的舒张压。X1及血浆胆固醇含量X2,结果如表6-4。 练习题第4题:…

Day03 leecode#有效的括号#合并两个有序链表

题目描述: 有效的括号 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必…

大模型相关资料整理

1. 大模型的挑战 GPT-3 175B模型的参数如下: 网络层(Number of layers): 96 句子长度(Sequence length): 2048 隐藏层大小(Hidden layer size): 12288 词汇表(Vocabulary size&#…

java高级--SpringBoot篇

目录 一、什么是SpringBoot 二、SpringBoot的特点 三、springboot快速入门 四、介绍配置文件的种类 五、开发环境配置文件的切换 六、读取springboot配置文件中的内容 七、Springboot注册web三大组件 八、SpringBoot的底层原理 8.1 包扫描的原理 8.2 springboot自动装配原理…

如何备考高级软考的系统架构设计师?

架构设计师是软考高级科目,比较难,每一年的通过率在15%左右。 不过软考它的特点是考察的深度不深,但是范围比较广,特别是高级,对项目经验比较看重,如果没有项目经验的朋友,一定要多准备项目素材…

springboot10:web开发常用功能(拦截器,文件上传,异常处理)

一.拦截器 1.使用 访问任何请求,都只有登录才能访问,挨个写入请求太困难,使用拦截器机制handlerIntercepter(prehandle方法,posthandle方法,afterCompletion方法)编写一个拦截器实现handlerInterceptor接…

算法与数据结构 - 字节跳动笔试题

😄这里将持续更新接下来做过的字节跳动公司相关的笔试题,包括网上收集的秋春招笔试题、以及自己参加的字节举办的编程赛的题目。 🚀导航: ID题目描述NO.1小红走迷宫简单、按逻辑写即可ACNO.2铺水管dfs回溯、注意剪枝才能ACNO.3喵汪故事借助二分才能ACNO.4小超的游戏pytho…

学术论文写作以及discussions/results与conclusion的区别

经验帖 | 如何写SCI论文? Result、Discussion和Conclusion区别解析 如何写学术论文 一篇论文只能有一个主题,不能出现过多的研究问题,这样只会让文章读起来很乱。就像大牛经常讲的,“one paper, one story”,一篇论文…

unix/linux make

GNU:make 参考文档 程序的编译和链接 一般来说,无论是C还是C,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即Object File,这个动作叫做编译(compile&…

HummerRisk V0.5.1 发布:新增对象存储、优化K8s 资源态势和资源拓扑等

HummerRisk V0.5.1 发布:新增对象存储对接查看功能,增加 K8s 资源的部署信息查看,深度优化K8s 资源拓扑,并优化了镜像检测、云检测及资源态势同步等多个内容。 感谢社区中小伙伴们的反馈,你们的认可是我们前进的动力。…

java中的函数式接口是什么?

问题现象: 最近在复习java基础知识,发现了一个面试题: java中的函数式接口是什么? 问题分析: 老实说,我一开始看到“函数式接口”这个术语,愣了一下: java中的函数式接口是什么&…

移动WEB开发之流式布局--二倍图

物理像素&物理像素比 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果6\7\8 是 750* 1334 物理像素比就是屏幕的分辨率,分辨率越高,显示越清楚,750* 1334就是横的有750的像素点…

运行mbedtls自带Demo ssl_client的记录

概述: 运行mbedtls自带 ssl demo的记录; 操作过程: 编译Demo,请看我专栏中的相关文章 先运行服务端程序,运行ssl_server.exe,运行结果如下: mbedtls-3.2.1\mbedtls-3.2.1\programs\ssl> .…

目标检测论文解读复现之九:基于改进YOLOv5的复杂场景下SAR图像船舶检测方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

Linux:shell编程(内含:1.shell简介+2.shell实操+3.shell的变量介绍+4.shell变量的定义)

1.shell简介: 解释:界面编写各种命令时,需要一个解释器,解释器先执行后给linux。执行完之后,结果返回给界面。经常使用的是bash。 注:若界面执行的命令比较复杂,可以写一个脚本,xxx…

医疗健康产品展:联影医疗

​ 国内医疗健康行业的独角兽公司(估值超10亿) 联影医疗 1 基本信息 联影医疗是一家医疗设备和医疗信息化解决方案提供商,为医疗机构提供涵盖影像诊断设备、放疗设备、服务培训、医疗IT的全方位医疗解决方案。 联影筹建于2010年10月&…

第七章 树与森林

树与森林 7.1树的概念与表示 7.1.1树的定义及相关术语 1.树的定义 ​ 树(Tree)是n(n≥0)个有限数据元素的集合。当n=0时,称这棵树为空树。在一棵非树T中: ​ ⑴有一个特殊的数据…

算法常见高数知识

文章目录1. 偏微分方程和常微分方程1.1 偏微分1.2 常微分2. 表示方法(名词/notation)2.1 莱布尼兹表示3. 空间直线及其方程4. 方向向量4.1 两点求方向向量高数课本(有目录)可以看这个链接:1. 高等数学第六版.同济大学数学系.扫描版.pdf 1. 偏…

《InnoDB引擎‍》 MySQL缓存池

‍MySQL缓存池 InnoDB存储引擎是基于磁盘存储的,并将其中记录按照页的方式进行管理。因此可以将其视为基于磁盘的数据库。 在数据库系统中,由于CPU速度和磁盘速度之间的鸿沟,基于磁盘的数据库系统通常使用缓冲池技术来提高数据库整体性能。 缓…