1. ZYNQ SDK开发环境搭建第一次接触ZYNQ开发板时很多人会被复杂的开发环境吓到。其实只要跟着步骤一步步来搭建开发环境并不难。我刚开始用ZYNQ时也踩过不少坑现在把这些经验分享给你。首先需要准备的是Vivado和SDK软件。建议安装最新版本因为新版本通常修复了很多bug操作界面也更友好。安装过程可能会比较耗时建议在性能较好的电脑上进行。我的电脑配置是i7处理器、16GB内存安装过程大约需要1小时。安装完成后我们需要配置开发板连接。这里有个小技巧在连接开发板之前先安装好USB转串口驱动。很多新手会忽略这一步导致后面调试时串口无法正常工作。你可以在设备管理器中查看串口号记住这个号码后面调试时会用到。开发环境搭建好后建议先做个简单的测试。打开Vivado创建一个新工程选择对应的开发板型号。这一步很重要选错型号会导致后续操作无法进行。创建工程时建议使用默认路径这样可以避免一些奇怪的路径问题。2. 创建第一个Helloworld工程2.1 生成硬件描述文件创建工程的第一步是生成硬件描述文件。在Vivado 2019.2及以后版本中这个文件叫做xsa之前版本叫hdf。生成这个文件前需要先生成bit文件。点击左下角的Generate Bitstream按钮等待生成完成。生成bit文件后选择File Export Export Hardware。这里有个重要选项一定要勾选Include bitstream。我第一次操作时漏掉了这个选项结果后面调试时遇到了各种问题。导出位置可以选择默认路径这样SDK能自动找到这个文件。2.2 创建Helloworld应用打开SDK后你会看到左侧项目资源管理器中有硬件描述文件的信息。这个文件包含了SOC的硬件配置和地址分配情况。接下来我们创建Helloworld工程选择File New Application Project输入工程名称比如HelloWorld在模板选择页面直接选择Helloworld例程创建完成后工程目录下会生成两个文件helloworld.c和lscript.ld。后者是链接脚本定义了代码在内存中的布局。对于第一个工程我们可以先使用默认配置。3. 调试与运行3.1 配置调试环境调试前需要做好硬件准备给开发板通电连接好USB转串口线连接JTAG下载器在SDK中右键点击HelloWorld工程选择Debug As Debug Configurations。这里需要新建一个调试配置选择Xilinx C/C application(System Debugger)。配置页面有几个关键选项加载的bit文件路径复位系统选项下载到FPGA选项建议勾选Program FPGA选项这样调试时会自动下载bit文件到FPGA。不过要注意这种方式下载的程序掉电后会丢失。3.2 使用串口调试SDK内置了串口调试工具使用起来很方便。调试界面主要分为几个区域控制区控制程序运行、暂停等变量查看区监控变量值变化代码区显示源代码和运行位置控制台显示程序输出第一次使用时需要正确设置串口参数波特率115200数据位8停止位1无校验设置好后点击运行按钮就能在控制台看到Hello World输出了。如果看不到输出首先检查串口线是否接好然后确认串口号是否正确。4. 程序固化到Flash4.1 制作BOOT.bin镜像调试通过后我们需要将程序固化到Flash中这样掉电后程序不会丢失。固化前需要制作BOOT.bin镜像文件这个文件包含三个部分FSBL.elf第一级引导程序工程bit文件工程elf文件首先创建FSBL工程File New Application Project工程名可以命名为FSBL模板选择Zynq FSBL创建完成后会自动生成FSBL.elf文件。然后右键点击主工程选择Create Boot Image添加刚才生成的FSBL.elf文件系统会自动识别另外两个必要文件。点击Create Image按钮就会在工程目录下生成bootimage文件夹里面包含BOOT.bin文件。4.2 下载到Flash将BOOT.bin文件下载到Flash的步骤确保开发板启动模式设置正确通过拨码开关设置在SDK中选择Xilinx Tools Program Flash选择刚才生成的BOOT.bin文件选择对应的FSBL.elf文件勾选Blank check和Verify选项下载完成后断电重启开发板程序就会自动从Flash加载运行了。这里有个常见问题如果程序没有自动运行首先检查拨码开关设置是否正确然后确认BOOT.bin文件是否完整。5. 常见问题排查在实际操作中可能会遇到各种问题。我整理了几个最常见的问题和解决方法SDK无法识别硬件平台这个问题通常是因为硬件描述文件路径不对。解决方法是在SDK中重新导入xsa/hdf文件或者检查Vivado工程路径是否包含中文或特殊字符。串口无输出首先检查串口线连接是否正确然后确认串口终端软件设置是否正确。有时候需要按一下开发板的复位键才能看到输出。程序无法固化检查BOOT.bin文件是否包含所有必要组件特别是FSBL.elf文件。另外要注意开发板的启动模式设置必须与固化介质匹配。调试时程序跑飞这可能是链接脚本配置问题。检查lscript.ld文件中定义的内存区域是否与硬件配置一致特别是堆栈大小的设置。Flash下载失败确保选择了正确的Flash型号有些开发板使用QSPI Flash有些使用NOR Flash。下载前最好先执行擦除操作。遇到问题时建议先查阅Xilinx官方文档里面有很多有用的调试技巧。也可以去开发者论坛搜索类似问题通常都能找到解决方案。
ZYNQ SDK实战:从工程创建到固化的全流程解析
发布时间:2026/6/28 19:54:47
1. ZYNQ SDK开发环境搭建第一次接触ZYNQ开发板时很多人会被复杂的开发环境吓到。其实只要跟着步骤一步步来搭建开发环境并不难。我刚开始用ZYNQ时也踩过不少坑现在把这些经验分享给你。首先需要准备的是Vivado和SDK软件。建议安装最新版本因为新版本通常修复了很多bug操作界面也更友好。安装过程可能会比较耗时建议在性能较好的电脑上进行。我的电脑配置是i7处理器、16GB内存安装过程大约需要1小时。安装完成后我们需要配置开发板连接。这里有个小技巧在连接开发板之前先安装好USB转串口驱动。很多新手会忽略这一步导致后面调试时串口无法正常工作。你可以在设备管理器中查看串口号记住这个号码后面调试时会用到。开发环境搭建好后建议先做个简单的测试。打开Vivado创建一个新工程选择对应的开发板型号。这一步很重要选错型号会导致后续操作无法进行。创建工程时建议使用默认路径这样可以避免一些奇怪的路径问题。2. 创建第一个Helloworld工程2.1 生成硬件描述文件创建工程的第一步是生成硬件描述文件。在Vivado 2019.2及以后版本中这个文件叫做xsa之前版本叫hdf。生成这个文件前需要先生成bit文件。点击左下角的Generate Bitstream按钮等待生成完成。生成bit文件后选择File Export Export Hardware。这里有个重要选项一定要勾选Include bitstream。我第一次操作时漏掉了这个选项结果后面调试时遇到了各种问题。导出位置可以选择默认路径这样SDK能自动找到这个文件。2.2 创建Helloworld应用打开SDK后你会看到左侧项目资源管理器中有硬件描述文件的信息。这个文件包含了SOC的硬件配置和地址分配情况。接下来我们创建Helloworld工程选择File New Application Project输入工程名称比如HelloWorld在模板选择页面直接选择Helloworld例程创建完成后工程目录下会生成两个文件helloworld.c和lscript.ld。后者是链接脚本定义了代码在内存中的布局。对于第一个工程我们可以先使用默认配置。3. 调试与运行3.1 配置调试环境调试前需要做好硬件准备给开发板通电连接好USB转串口线连接JTAG下载器在SDK中右键点击HelloWorld工程选择Debug As Debug Configurations。这里需要新建一个调试配置选择Xilinx C/C application(System Debugger)。配置页面有几个关键选项加载的bit文件路径复位系统选项下载到FPGA选项建议勾选Program FPGA选项这样调试时会自动下载bit文件到FPGA。不过要注意这种方式下载的程序掉电后会丢失。3.2 使用串口调试SDK内置了串口调试工具使用起来很方便。调试界面主要分为几个区域控制区控制程序运行、暂停等变量查看区监控变量值变化代码区显示源代码和运行位置控制台显示程序输出第一次使用时需要正确设置串口参数波特率115200数据位8停止位1无校验设置好后点击运行按钮就能在控制台看到Hello World输出了。如果看不到输出首先检查串口线是否接好然后确认串口号是否正确。4. 程序固化到Flash4.1 制作BOOT.bin镜像调试通过后我们需要将程序固化到Flash中这样掉电后程序不会丢失。固化前需要制作BOOT.bin镜像文件这个文件包含三个部分FSBL.elf第一级引导程序工程bit文件工程elf文件首先创建FSBL工程File New Application Project工程名可以命名为FSBL模板选择Zynq FSBL创建完成后会自动生成FSBL.elf文件。然后右键点击主工程选择Create Boot Image添加刚才生成的FSBL.elf文件系统会自动识别另外两个必要文件。点击Create Image按钮就会在工程目录下生成bootimage文件夹里面包含BOOT.bin文件。4.2 下载到Flash将BOOT.bin文件下载到Flash的步骤确保开发板启动模式设置正确通过拨码开关设置在SDK中选择Xilinx Tools Program Flash选择刚才生成的BOOT.bin文件选择对应的FSBL.elf文件勾选Blank check和Verify选项下载完成后断电重启开发板程序就会自动从Flash加载运行了。这里有个常见问题如果程序没有自动运行首先检查拨码开关设置是否正确然后确认BOOT.bin文件是否完整。5. 常见问题排查在实际操作中可能会遇到各种问题。我整理了几个最常见的问题和解决方法SDK无法识别硬件平台这个问题通常是因为硬件描述文件路径不对。解决方法是在SDK中重新导入xsa/hdf文件或者检查Vivado工程路径是否包含中文或特殊字符。串口无输出首先检查串口线连接是否正确然后确认串口终端软件设置是否正确。有时候需要按一下开发板的复位键才能看到输出。程序无法固化检查BOOT.bin文件是否包含所有必要组件特别是FSBL.elf文件。另外要注意开发板的启动模式设置必须与固化介质匹配。调试时程序跑飞这可能是链接脚本配置问题。检查lscript.ld文件中定义的内存区域是否与硬件配置一致特别是堆栈大小的设置。Flash下载失败确保选择了正确的Flash型号有些开发板使用QSPI Flash有些使用NOR Flash。下载前最好先执行擦除操作。遇到问题时建议先查阅Xilinx官方文档里面有很多有用的调试技巧。也可以去开发者论坛搜索类似问题通常都能找到解决方案。