Vivado程序固化到Flash

在上板调试FPGA时,通常使用JTAG接口下载程序到FPGA芯片中,FPGA本身是基于RAM工艺的器件,因此掉电后会丢失芯片内的程序,需要重新烧写程序。但是当程序需要投入使用时不能每一次都使用JTAG接口下载程序,一般FPGA的外围会有非易失性存储器:Flash或SD卡等,可以将程序加载进去,这样下次上电后可以直接从该存储器中读取程序并启动配置。

在使用Vivado固化程序时,通常有两种文件格式可以进行固化:

文件生成方式:

  • .bin文件‌:.bin文件是纯二进制文件,按顺序只包含原始字节流,用于烧写进flash中。在Vivado中,生成.bin文件需要在设置中勾选“-bin_file”选项‌。
  • ‌.mcs文件‌:.mcs文件是ASCII格式的文本文件,由行组成,每一行包含起始码、字节长度、地址、记录类型、数据和校验码。Vivado中生成.mcs文件需要通过“Generate Memory Configuration File”选项,并选择相应的flash型号和bit文件‌。

存储方式和用途:

  • .bin文件‌:烧写到flash中后,上电加载会自动加载到FPGA中。由于.bin文件是二进制格式,不需要解析,直接读取后写入即可,因此适用于不需要解析的场景‌。
  • ‌.mcs文件‌:同样烧写到flash中,上电后会自动加载到FPGA中。由于.mcs文件包含头部信息和校验码,写入速度相对较慢,但每行末尾的校验和确保了数据的完整性‌。

适用情况:

  • .bin文件‌:适用于不需要解析的场景,如通过其他方式更新FLASH内容时使用‌。
  • ‌.mcs文件‌:适用于需要校验和确保数据完整性的场景,特别是在JTAG烧录时使用‌。

下面介绍使用MCS文件固化程序的方法:

1、确保工程能正常工作并生成Bit流文件
在这里插入图片描述
2、生成Bit流文件后连接硬件
在这里插入图片描述
点击Open Target>Auto Connect:
在这里插入图片描述
在这里插入图片描述
启动配置生成的比特流文件以及进行 debug 的 ltx 文件,一般来说软件会自动选择的
在这里插入图片描述
3、连接好目标器件后,接下来生成存储配置文件.mcs文件和.prm文件,点击菜单栏Tools>Generate Memory Configuration File…。

  • .mcs文件:内存配置文件,主要用于将设计下载到FPGA或SoC设备上。
  • .prm文件:项目链接文件,主要用于定义芯片的内存布局和初始化变量。

在这里插入图片描述
进入配置界面:
在这里插入图片描述
等待文件生成完成
在这里插入图片描述
对应路径下生成的文件:
在这里插入图片描述
4、确保下载器和目标器件已经连接好,打开硬件连接,选中目标器件添加配置存储设备
在这里插入图片描述
在这里插入图片描述
5、点击OK直接进入固化配置界面:
在这里插入图片描述
在这里插入图片描述
等待固化完成:
在这里插入图片描述
固化完成后重新将开发板上电,FPGA芯片就会从Flash读取程序进行配置了。

程序固化过程中可能会出现报错:[Labtools 27-3347] Flash Programming Unsuccessful: Byte 169320 does not match (00 != B2)
解决方法参考这篇文章:Vivado程序固化到Flash时报错:[Labtools 27-3347] Flash Programming Unsuccessful: Byte 169320 does not match

### 回答1: 要将Vivado SDK中的程序固化Flash中,需要执行以下步骤: 1. 在Vivado中生成比特流文件和硬件描述文件(.hdf)。 2. 在Vivado SDK中创建一个新的应用程序项目,并将比特流文件和.hdf文件导入到该项目中。 3. 在应用程序项目中添加一个Bootloader,以便在启动时从Flash中加载程序。 4. 在应用程序项目中添加一个Flash驱动程序,并将其配置为与目标Flash芯片兼容。 5. 在应用程序项目中编写程序,并将其编译为可执行文件。 6. 将可执行文件下载到目标板上,并使用Bootloader将其固化Flash中。 以上是将Vivado SDK中的程序固化Flash的基本步骤,具体操作细节可以参考Vivado SDK的官方文档或相关教程。 ### 回答2: VivadoFPGA 设计中的工具软件,它提供了硬件设计、综合、布局和调试等方面的支持。在 Vivado 中,使用 SDK 开发板上的处理器系统,可以将程序编译成 .elf 文件,然后将这个文件固化到板子上的 flash 中,使得程序可以永久存储。下面将介绍如何将程序固化flash 中。 一、生成 .elf 文件 首先,在 Vivado 上完成处理器系统的设计、综合和实现,然后使用 SDK 编写好程序代码。编译代码之后,将生成一个 .elf 文件,就可以使用这个文件进行后续的步骤。 二、设置 Flash 的参数 1. 选择 Flash 板子的型号,并打开其官方提供的 data sheet。 2. 打开 Vivado,进入 SDK 界面,找到 “xilinx/flash” 示例工程,根据需要修改占用的 Flash 资源,以及需要设置的端口地址和大小。 3. 修改 Flash 板子的参数。在工程左侧的 C 文件栏中,找到配置 Flash 的 C 文件,根据官方 data sheet 修改 Flash 的参数。之后就可以进行下一步的操作。 三、配置 U-boot 1. 制作 U-boot。将 Scratchpad 段地址设置为 0xfff00000,可运行 .bin 文件的所在地址为 0xff800000。制作 U-boot 时,要根据处理器架构选择合适的交叉编译器,生成可执行的 .bin 文件。 2. 编辑 U-boot。使用 Vivado SDK 中的 “Xilinx System Debugger” 工具,进入到 U-boot 的汇编代码中。在这部分代码中,需要修改部分关键参数,如启动时同步存储器和 HPS CoreSight Trace Control 端口的目标地址、启动处理器架构的配置信息等。修改完成之后保存文件。 四、编译程序代码 修改完成之后,将 U-boot 的汇编代码与程序代码进行编译,生成 .elf 文件。在生成的 .elf 文件中,U-boot 和程序代码都将被包含在内。 五、固化程序FLASH 1. 打开 SDK 操作命令窗口,使用命令将 U-boot 和程序 .elf 文件复制到 TFTP 服务器目录中。具体命令如下: TFTP PLOAD 0x10800000 u-boot.bin TFTP PLOAD 0x10C00000 fit-it.so.1.0.0 2. 设置 FLASH 芯片的操作方式,并使用“bootcmd”命令将存储在 TFTP 服务器目录中的 U-boot 程序和应用程序分别存储到存储器中,代码如下: setenv interface_type 4 tftpboot 0x10800000 u-boot.bin;sf probe 1;sf erase 0 0x80000;sf write 0x10800000 0 0x80000; tftpboot 0x10C00000 fit-it.so.1.0.0;sf write 0x10C00000 0x80000 0xC00000; 3. 重启开发板。这时候 U-boot 已经被成功固化Flash 中了。 通过以上步骤,实现了 Vivado SDK 中程序固化flash 的操作。在开发 FPGA 设计时,这样的操作十分重要,能够让程序永久保存,并保证更换芯片不受影响。 ### 回答3: Vivado SDK是一款全面的开发工具,配合Xilinx FPGA完成设计、验证、集成和部署。固化程序flashVivado SDK中的重要功能之一,可以使得FPGA启动时自动运行预先设定的程序固化程序Flash有以下三个步骤: 1.生成比特流文件:Vivado生成的比特流文件是FPGA的二进制文件,也就是携带着初始化和逻辑的文件。在Vivado的“File”->“Export”->“Export Bitstream”中可以生成这个文件。 2.生成FSBL(First Stage Bootloader):在Vivado的“Project”->“Export Hardware”中,可以生成FSBL文件。该文件是启动FPGA的引导程序,作为FPGA启动的第一阶段被载入到系统内存中,其主要功能是初始化PLL、DDR、时钟等硬件资源。 3.生成Boot.bin文件:在Vivado SDK中,通过将应用程序和FSBL文件合并生成Boot.bin文件,这个文件将被固化Flash中。 生成Boot.bin文件的具体步骤如下: (1)打开Vivado SDK,点击“File”->“New”->“Application Project”。 (2)填写项目名称和存储路径,选择“Create new project from”中的“Hello World”模板,点击下一步。 (3)在设置页面中,选择勾选“FSBL”和“Create Boot Image”,点击下一步。 (4)在Boot Image Configuration页面中,填写Boot Image文件名,选择对应的“FSBL”,再添加自己编写的应用程序(ELF文件),点击Generate。 (5)在Vivado SDK Console的输出中,可以查看Boot.bin文件生成的位置。 (6)将Boot.bin文件固化Flash中,需要使用第三方工具,如Xilinx提供的XMD。运行XMD,连接调试器,输入“flash program c:/path/boot.bin"(未考虑路径问题),即可完成固化。 总之,Vivado SDK固化程序Flash需要生成比特流文件、FSBL文件和Boot.bin文件,然后使用XMD等第三方工具进行固化。同时还需要注意一些细节问题,如路径与文件名设置、调试器的连接与命令输入等问题,在操作时需要仔细确认,确保固化过程顺利完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值