Vivado如何对固化选项里没有的FLASH进行烧写?

关注、星标公众号,精彩内容每日送达
来源:https://blog.csdn.net/qq_34895681/article/details/129495024

引言

在固化时,会遇到找不到flash器件的问题,这里稍微作个总结: (针对xinlinx的芯片)

1,常见的厂家有 :镁光,issi, spanish 等,在vivado固化器件的选项里也只有这几家的。

2,但是vivado还是支持另外一些厂家的flash芯片的,每个厂家都有固定的id,,比如今天遇到的winbond厂家,flash就是支持的。(补充:winbond 的只支持128M及128M以下的)

3,一些国产的flash芯片是对标 其他一些大厂的flash芯片,所以可以直接选大厂的flash芯片。

这次在添加winbond的flash时解决方案大抵如下 :

1.打开Vivado软件安装目录的flash库文件

软件在电脑的安装路径一般如下:(我的vivado版本为2018.03)

\xilnx\Vivado\2018.3\data\xicom

7e3745314e2f6a0aee75e3ca69c5d834.png

注意要用记事本打开csv文件需要添加的

2.添加对应的flash器件指令

0b0ed6245e3f077764f0c728feb31862.png

指令为如下:(两个型号的flash)(这里有误)`

713,0,w25q256jveiq-spi-x1_x2_x4,- xa7a100t xa7a12t xa7a15t xa7a25t

xa7a35t xa7a50t xa7a75t xc7a100t xc7a100ti xc7a100tl xc7a12t xc7a12ti

xc7a12tl xc7a15t xc7a15ti xc7a15tl xc7a200t xc7a200ti xc7a200tl

xc7a25t xc7a25ti xc7a25tl xc7a35t xc7a35ti xc7a35tl xc7a50t xc7a50ti

xc7a50tl xc7a75t xc7a75ti xc7a75tl xq7a100t xq7a200t xq7a50t xc7k160t

xc7k160ti xc7k160tl xc7k325t xc7k325ti xc7k325tl xc7k355t xc7k355ti

xc7k355tl xc7k410t xc7k410ti xc7k410tl xc7k420t xc7k420ti xc7k420tl

xc7k480t xc7k480ti xc7k480tl xc7k70t xc7k70tl xq7k325t xq7k325tl

xq7k410t xq7k410tl xcku025 xcku035 xcku040 xcku060 xcku085 xcku095

xcku115 xqku040 xqku060 xqku095 xqku115 xa7s100 xa7s15 xa7s25 xa7s50

xa7s6 xa7s75 xc7s100 xc7s15 xc7s25 xc7s50 xc7s6 xc7s75 xc7v2000t

xc7v585t xc7vh580t xc7vh870t xc7vx1140t xc7vx330t xc7vx415t xc7vx485t

xc7vx550t xc7vx690t xc7vx980t xq7v585t xq7vx330t xq7vx485t xq7vx690t

xq7vx980t xcvu065 xcvu080 xcvu095 xcvu125 xcvu160 xcvu190

xcvu440,w25q256jveiq ,spi,256,x1_x2_x4,Winbond,1,w25q

714,0,W25Q128BV-spi-x1_x2_x4,- xa7a100t xa7a12t xa7a15t xa7a25t

xa7a35t xa7a50t xa7a75t xc7a100t xc7a100ti xc7a100tl xc7a12t xc7a12ti

xc7a12tl xc7a15t xc7a15ti xc7a15tl xc7a200t xc7a200ti xc7a200tl

xc7a25t xc7a25ti xc7a25tl xc7a35t xc7a35ti xc7a35tl xc7a50t xc7a50ti

xc7a50tl xc7a75t xc7a75ti xc7a75tl xq7a100t xq7a200t xq7a50t xc7k160t

xc7k160ti xc7k160tl xc7k325t xc7k325ti xc7k325tl xc7k355t xc7k355ti

xc7k355tl xc7k410t xc7k410ti xc7k410tl xc7k420t xc7k420ti xc7k420tl

xc7k480t xc7k480ti xc7k480tl xc7k70t xc7k70tl xq7k325t xq7k325tl

xq7k410t xq7k410tl xcku025 xcku035 xcku040 xcku060 xcku085 xcku095

xcku115 xqku040 xqku060 xqku095 xqku115 xa7s100 xa7s15 xa7s25 xa7s50

xa7s6 xa7s75 xc7s100 xc7s15 xc7s25 xc7s50 xc7s6 xc7s75 xc7v2000t

xc7v585t xc7vh580t xc7vh870t xc7vx1140t xc7vx330t xc7vx415t xc7vx485t

xc7vx550t xc7vx690t xc7vx980t xq7v585t xq7vx330t xq7vx485t xq7vx690t

xq7vx980t xcvu065 xcvu080 xcvu095 xcvu125 xcvu160 xcvu190

xcvu440,W25Q128BV ,spi,128,x1_x2_x4,Winbond,1,w25q

以上添加flash的指令是有问题的,如下,此刻的器件名称后面加了个空格,这会导致vivado识别的时候会加上这个空格,然后在此器件的时候,会报错,说这个名称不存在在。

b5c57da28ad44933446faa8130f7d4e8.png

正确的指令为:

713,0,w25q256jv-spi-x1_x2_x4,- xa7a100t xa7a12t xa7a15t xa7a25t

xa7a35t xa7a50t xa7a75t xc7a100t xc7a100ti xc7a100tl xc7a12t xc7a12ti

xc7a12tl xc7a15t xc7a15ti xc7a15tl xc7a200t xc7a200ti xc7a200tl

xc7a25t xc7a25ti xc7a25tl xc7a35t xc7a35ti xc7a35tl xc7a50t xc7a50ti

xc7a50tl xc7a75t xc7a75ti xc7a75tl xq7a100t xq7a200t xq7a50t xc7k160t

xc7k160ti xc7k160tl xc7k325t xc7k325ti xc7k325tl xc7k355t xc7k355ti

xc7k355tl xc7k410t xc7k410ti xc7k410tl xc7k420t xc7k420ti xc7k420tl

xc7k480t xc7k480ti xc7k480tl xc7k70t xc7k70tl xq7k325t xq7k325tl

xq7k410t xq7k410tl xcku025 xcku035 xcku040 xcku060 xcku085 xcku095

xcku115 xqku040 xqku060 xqku095 xqku115 xa7s100 xa7s15 xa7s25 xa7s50

xa7s6 xa7s75 xc7s100 xc7s15 xc7s25 xc7s50 xc7s6 xc7s75 xc7v2000t

xc7v585t xc7vh580t xc7vh870t xc7vx1140t xc7vx330t xc7vx415t xc7vx485t

xc7vx550t xc7vx690t xc7vx980t xq7v585t xq7vx330t xq7vx485t xq7vx690t

xq7vx980t xcvu065 xcvu080 xcvu095 xcvu125 xcvu160 xcvu190

xcvu440,w25q256jv,spi,256,x1_x2_x4,Winbond,1,w25q256jv-spi-x1_x2_x4,w25q

714,0,W25Q128BV-spi-x1_x2_x4,- xa7a100t xa7a12t xa7a15t xa7a25t

xa7a35t xa7a50t xa7a75t xc7a100t xc7a100ti xc7a100tl xc7a12t xc7a12ti

xc7a12tl xc7a15t xc7a15ti xc7a15tl xc7a200t xc7a200ti xc7a200tl

xc7a25t xc7a25ti xc7a25tl xc7a35t xc7a35ti xc7a35tl xc7a50t xc7a50ti

xc7a50tl xc7a75t xc7a75ti xc7a75tl xq7a100t xq7a200t xq7a50t xc7k160t

xc7k160ti xc7k160tl xc7k325t xc7k325ti xc7k325tl xc7k355t xc7k355ti

xc7k355tl xc7k410t xc7k410ti xc7k410tl xc7k420t xc7k420ti xc7k420tl

xc7k480t xc7k480ti xc7k480tl xc7k70t xc7k70tl xq7k325t xq7k325tl

xq7k410t xq7k410tl xcku025 xcku035 xcku040 xcku060 xcku085 xcku095

xcku115 xqku040 xqku060 xqku095 xqku115 xa7s100 xa7s15 xa7s25 xa7s50

xa7s6 xa7s75 xc7s100 xc7s15 xc7s25 xc7s50 xc7s6 xc7s75 xc7v2000t

xc7v585t xc7vh580t xc7vh870t xc7vx1140t xc7vx330t xc7vx415t xc7vx485t

xc7vx550t xc7vx690t xc7vx980t xq7v585t xq7vx330t xq7vx485t xq7vx690t

xq7vx980t xcvu065 xcvu080 xcvu095 xcvu125 xcvu160 xcvu190

xcvu440,W25Q128BV,spi,128,x1_x2_x4,Winbond,1,w25q128bv-spi-x1_x2_x4,

w25q

总结

关于如上描述的任务今天有了初步的结果,如下:

1、winbond公司的W25Q256JVFIQ vivado并不支持,ise也不支持,国微自己的下载工具同样不支持,暂时没有想到解决此款flash芯片的方法,甚至在\xilnx_201803\xilnx\Vivado\2018.3\data\xicom路径下,找到的spi.cfg文件中也不包含 w25q256系列的flash, winbond的128M及以下的flash倒是有的。

2、任务解决的办法是换了一块flash,型号为 W25Q128JVSIQ,在添加 flash器件的时候选择的是 w25q128bv ,生成mcs文件,然后添加上添加的flash,最后下载成功。

3、下载完后有一个bug就是 在第二次重新启动设备时程序并没有加载出来,第三次第四次加载出出来了,目前认为是因为flash是飞线连接的,可能飞线处不牢靠导致的。

4、W25Q128JV和W25Q128fV的区别是速度不一样,jv的133M,fv是103m

后缀 v和w的 区别是电压的不用,v是表示 3.3v左右

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
### 回答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: Vivado 是 FPGA 设计中的工具软件,它提供了硬件设计、综合、布局和调试等方面的支持。在 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等第三方工具进行固化。同时还需要注意一些细节问题,如路径与文件名设置、调试器的连接与命令输入等问题,在操作时需要仔细确认,确保固化过程顺利完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值