vivado 嵌入式 教程
以下是针对 Vivado 嵌入式开发 (基于 Xilinx Zynq/Zynq MPSoC/ MicroBlaze) 的简明中文教程指南,涵盖主要流程和关键步骤:
一、准备工作
- 安装 Vivado
- 从 Xilinx 官网 下载对应版本的 Vivado Design Suite(含 Vitis)。
- 选择 Embedded Design 相关组件(如 SDK、Vitis HLS)。
- 硬件准备
- 开发板(如 Zynq-7000 系列的 PYNQ-Z2、ZedBoard;Zynq UltraScale+ 系列的 ZCU102)。
- USB 下载器(如 Digilent JTAG-HS3)。
- 串口调试线(USB转UART)。
二、创建 Vivado 硬件工程
- 新建工程
Create Project→ 设置工程名和路径 → 选择 RTL Project。
- 选择开发板型号
- 在
Default Part页面选择你的开发板型号(或手动指定芯片型号)。
- 在
- 创建 Block Design
- 左侧导航栏点击
Create Block Design→ 命名(如system)。
- 左侧导航栏点击
- 添加处理器核
- 点击
+→ 搜索并添加:- Zynq-7000:ZYNQ7 Processing System
- Zynq MPSoC:Zynq UltraScale+ MPSoC
- MicroBlaze:MicroBlaze
- 点击
- 配置处理器
- 双击添加的IP核,配置关键项:
- 时钟(如 Zynq PS 设置 50MHz / 100MHz)
- DDR 内存型号(必须匹配开发板)
- 外设接口(如 UART、GPIO、Ethernet、QSPI)
- MIO/EMIO 引脚分配
- 点击 Apply → OK。
- 双击添加的IP核,配置关键项:
- 添加其他外设 IP
- 例如 AXI GPIO、AXI UARTLite、AXI Timer 等。
- 用 Run Connection Automation 自动连接时钟和复位。
- 生成顶层 HDL
- 右键 Block Design →
Create HDL Wrapper→ 选择自动生成。
- 右键 Block Design →
- 生成比特流
- 左侧
Generate Bitstream→ 等待综合、实现完成。
- 左侧
三、导出硬件到 Vitis
- 导出硬件平台
File → Export → Export Hardware...- 勾选 Include bitstream → 保存
.xsa文件(Vitis 平台描述文件)。
四、在 Vitis 中开发软件
- 启动 Vitis IDE
- 打开 Vitis,设置工作空间路径。
- 创建平台工程
File → New → Platform Project- 输入工程名 → 选择导出的
.xsa文件 → 点击 Finish。
- 创建应用工程
File → New → Application Project- 选择上一步的平台工程 → 输入工程名(如
hello_world)。
- 选择编程语言
- 语言选 C,模板选 Hello World(或其他裸机/BSP模板)。
-
编写/修改代码
-
在
src目录下编辑main.c(例如通过 UART 打印信息):#include <stdio.h> #include "xparameters.h" #include "xil_printf.h" int main() { xil_printf("Hello, Zynq!\n"); return 0; }
-
- 配置 BSP
- 右键应用工程 →
Board Support Package Settings - 启用所需驱动(如 UART 设备)。
- 右键应用工程 →
- 编译工程
- 右键应用工程 → Build Project(生成
.elf文件)。
- 右键应用工程 → Build Project(生成
五、下载与调试
- 硬件连接
- 连接 JTAG 下载器和 UART 串口到 PC。
- 启动调试
- 点击上方 Run → Launch Hardware(自动下载比特流)。
- 右键应用工程 → Run As → Launch on Hardware(下载
.elf)。
- 查看串口输出
- 使用串口工具(如 Tera Term、PuTTY)
- 波特率一般设为 115200,无校验位。
- 调试技巧
- 设置断点 →
Run → Debug进入单步调试模式。 - 在 Vitis 中查看变量、内存和寄存器。
- 设置断点 →
六、进阶开发
- 使用 FreeRTOS
- 新建应用工程时选择 Freertos Hello World 模板。
- 自定义 IP 核
- 用 Vivado HLS 生成加速器 IP → 封装为 AXI 外设集成到 Block Design。
- Linux 开发
- 通过 PetaLinux 构建 Linux 系统 → 在 Vitis 中编译应用。
- 性能优化
- 使用 AXI DMA 加速数据搬移。
- 配置 Cache 和内存保护单元(MPU)。
七、常见问题
| 问题 | 解决方案 |
|---|---|
| 比特流下载失败 | 检查 JTAG 连接和电源 |
| DDR 配置错误 | 确认开发板型号和 DDR 颗粒型号 |
| UART 无输出 | 检查引脚约束和串口波特率 |
| SDK 无法识别硬件 | 重新导出 .xsa 并重启 Vitis |
学习资源推荐
- 官方文档
- 中文资源
- 正点原子/米联客开发板配套教程
- Xilinx 中文社区论坛 (china.xilinx.com)
- 实战项目
- LED 呼吸灯控制(PWM)
- 通过 AXI GPIO 读取按键
- UART 中断通信
⚠️ 注意:不同 Vivado 版本界面可能略有差异,建议结合具体开发板手册操作。遇到问题优先检查 时钟配置、复位信号 和 地址映射 是否正确。
嵌入式主板是什么意思?嵌入式主板全面解析
嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。
2024-09-30 10:05:29
嵌入式学习路线怎么学?如何学习嵌入式系统?
随着互联网的快速发展,嵌入式也越来越火热,更多的人投入到嵌入式开发的行列中来,那么想要学习嵌入式,该从哪里入手学习,
2022-10-30 13:15:39
Vivado Design Suite教程:嵌入式处理器硬件设计
电子发烧友网站提供《Vivado Design Suite教程:嵌入式处理器硬件设计.pdf》资料免费下载
资料下载
佚名
2023-09-15 10:12:33
Vitis里如何创建嵌入式软件工程
1. 介绍 Vitis是Xilinx新推出的统一软件平台,可实现在 Xilinx 所有芯片(包括 FPGA、SoC 和 Versal ACAP)上开发嵌入式软件和加速应用。Xilinx主要宣传
2020-11-04 12:03:25
什么是嵌入式编程
什么是嵌入式编程?对于嵌入式系统,许多人很容易将它与单片机编程混淆。其实,嵌入式编程指的是在我们生活中的房屋、汽车、工作场所中的计算机编程设备,
2020-06-29 11:05:00
什么是嵌入式系统_嵌入式系统的详细解释
嵌入式系统是现在为热门的领域之一,已经广泛地渗透到科学研究、工程设计、军事技术、各类产业以及人们日常生活的方方面面。随着外各种嵌入式产品的进一步开发和推广,
2020-06-19 09:33:53
为什么vivado 2013.2无法为zynq 7020主板创建嵌入式源代码?
嗨,大家好,我只是想知道为什么vivado 2013.2无法为zynq 7020主板创建嵌入式源代码?我们必须继续推进PlanAhead ......但是这个版本可以支持Kintex-7。
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机