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


    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学习之路!

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

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

  • 相关阅读:
    个人应用接入使用阿里云盘和百度网盘
    [Flask笔记]一个完整的Flask程序
    NCP81239MNTXG 开关降压/升压控制器,USB 功率传递和 Type-C 应用
    VoLTE端到端业务详解 | VoLTE网络
    基于NCNN的OCR模型的安卓移植
    OBU与千寻魔方的定位性能分析
    您的系统存在未授权的Bluetooth适配器,拔除或禁用该设备(蓝牙问题)
    【面试题】给你一个项目,你准备怎么开展ui自动化
    SpringCloud和SpringCloudAlibaba的区别
    unity core-prefab
  • 原文地址:https://blog.csdn.net/qq_42078934/article/details/127856144