通过生成mcs、bin文件将程序固化到FPGA

通过将程序固化到FPGA,可以做到断电不丢失程序,上电之后就自动启动程序的作用,整个固化步骤主要分为3步,一是修改约束文件,二是生成mcs或bin文件,三是将程序固化到开发板flash

1.修改约束文件

生成固化文件之前,首先需要在约束文件内添加一段原语,添加这段原语的目的主要是为了生成的 bit 流文件转换成固化文件后能够适用于 4bit 位宽 SPI 通信的flash 器件(这里的4位宽以及SPI通信都是根据板载flash决定的)。

set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property BITSTREAM.GENERAL.COMPRESS true [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.SPI_FALL_EDGE Yes [current_design]

将这段代码直接添加到约束文件最下方即可。

2.生成mcs或bin文件

生成mcs文件

生成mcs文件有两种方法

方法1

Tools栏位内点击 Generate Memory Configuration File

 format用于选择生成文件的类型,这里我们选择mcs

custom memory size(MB)选择flash的容量,根据自己的开发板确定,这里读说明书的时候要注意MB(MByte)和Mb(Mbit)的区别,MB与Mb相差8倍,MB * 8 = Mb

filename这里选择保存文件位置,注意这里选择文件夹是不行的,需要选择一个mcs文件或是手动添加一个/filename用于生成mcs文件

interface用于选择接口类型,也是根据自己的开发板flash说明书决定

load bitstream file勾选上后可以选择比特流文件

write checksum表示写校验

disable bit swapping表示禁止位交换

overwrite表示覆盖原文件

点击ok即可生成mcs文件。

方法2

直接在tcl命令行内输入以下内容

write_cfgmem -format mcs -size 16 -interface SPIx4 -loadbit {up 0x00000000 "C:/Software/Vivado2019.1/project/project_1/project_1.runs/impl_1/ctr.bit" } -checksum -force -disablebitswap -file "C:/Software/Vivado2019.1/project/project_1/project_1.runs/impl_1/ctr1."

实现的功能和方法1一样,不过是通过指令进行控制

成功之后会显示信息 

现在回过头来看方法1,我们会发现配置界面最下方有个command栏后面跟的就是我们直接在tcl输入的内容,也就是说Generate Memory Configuration File的作用就是辅助我们生成命令行指令

生成bin文件

生成bin文件也有两种方法

方法1

同生成mcs文件的方法1,在format栏内选择bin文件类型即可

方法2

点击setting

在bitstream页面勾选bin_file选项,点击apply后点击ok

勾选上之后,我们在生成bitstream的同时会生成bin文件,这里我们重新生成bitstream既可

 

3.将程序固化到flash

固化程序需要我们先将开发板连接到电脑

 如图,右击我们的芯片型号后选择add configuration memory device

 这里需要根据自己开发板上的flash型号选择对应的,添加完flash后即可选择文件写入flash

然后添加mcs文件以及prm文件(prm文件随mcs文件同时生成,是一种日志文件)既可

bin文件的使用与mcs相同,只是不需要选择prm文件

至此,程序固化完成,断电后重新上电即可进行测试

当我们选择flash型号之后,我们就可以在开发板连接页面看见芯片型号下面多了一个flash的名称,此时,我们通过直接右击flash名称进行程序的固化,减少了选择flash型号的步骤

4.擦除固化程序

最后,如果我们想要擦除固化的程序,只需要在添加mcs/bin文件的页面内单独勾选erase即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/327347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

远程开发之vscode端口转发

远程开发之vscode端口转发 涉及的软件forwarded port 通过端口转发,实现在本地电脑上访问远程服务器上的内网的服务。 涉及的软件 vscode、ssh forwarded port 在ports界面中的port字段,填需要转发的IP:PORT,即可转发远程服务器中的内网端…

多行SQL转成单行SQL

如下图所示 将以上多行SQL转成单行SQL 正则表达式如下 (?s)$[^a-zA-Z()0-9]*结果如下 灵活使用,也未必只能使用Sublime Text 提供了一个在线工具

STM32快速复制MX25L1606E系列Flash

去年做了一个使用RS485对PIC18F45K80系列单片机进行在线升级的程序,如果是小批量的出厂烧录程序和升级验证(出厂前肯定要测试单片机是否能正常读写Flash)是可以的,但是后来产品订单量很大,生产线的烧录及升级验证就很缓…

【C语言基础考研向】03混合运算和printf讲解

一.混合运算 类型强制转换场景 整型数进行除法运算时&#xff0c;如果运算结果为小数&#xff0c;那么存储浮点数时一定要进行强制类型转换&#xff0c;请看下面例子 #include <stdio.h> int main() {int i5;float fi/2; //这里做的整型运算printf("%f\n",f…

BIOS知识枝桠——RAID 磁盘阵列

文章目录 前言一、RAID介绍二、RAID等级分类1.RAID02.RAID13.RAID24.RAID3和RAID45.RAID5和RAID66.RAID77.RAID10 BIOS下组建RAID 前言 假设存在多块磁盘&#xff0c;如果不组建阵列&#xff0c;磁盘与磁盘之间是没有任何关系的。磁盘A和B&#xff0c;放在A中的文件与B磁盘没有…

布隆过滤器四种实现(Java,Guava,hutool,Redisson)

1.背景 为预防大量黑客故意发起非法的时间查询请求&#xff0c;造成缓存击穿&#xff0c;建议采用布隆过滤器的方法解决。布隆过滤器通过一个很长的二进制向量和一系列随机映射函数&#xff08;哈希函数&#xff09;来记录与识别某个数据是否在一个集合中。如果数据不在集合中…

msvcr100.dll丢失的6种解决方法

我们来了解一下msvcr100.dll是什么。msvcr100.dll是Microsoft Visual C 2010 Redistributable Package的一部分&#xff0c;它包含了许多运行在Windows操作系统上的应用程序所需的运行时组件。这些组件包括C标准库、MFC&#xff08;Microsoft Foundation Class&#xff09;库等…

vivado 添加现有IP文件、生成IP

添加现有IP文件 作为从AMD IP目录添加和自定义IP的替代方案&#xff0c;您可以直接添加XCI或XCIX文件。此过程不同于从按以下方式编目&#xff1a; •XCI或XCIX文件可能是早期版本&#xff0c;也可能是相同或完全自定义的版本AMD IP目录中发现的类似IP。 •XCI或XCIX文件可能…

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…

log4j2漏洞综合利用_CVE-2021-44228_CNVD-2021-95919

1.漏洞利用 1.1.rmi 利用 1、在检测到目标存在 log4j2 漏洞后&#xff0c;确定漏洞参数&#xff0c;尝试接受目标 rmi 请求。 成功接收到请求。 出现 JRMIK 字样即代表可接受 RMI 请求。 2、漏洞利用。 使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar执行命令&#xff0…

AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

文章目录 一、Prompt Engineering&#xff08;怎么去提问大模型&#xff09;1&#xff09;环境准备2&#xff09;交互代码的参数备注3&#xff09;交互代码 二、LangChain&#xff08;一个框架去使用大模型&#xff09;1&#xff09;LangChain核心介绍&#xff1a;I/O模块、数据…

debian 11 arm64 aarch64 D2000 平台编译 box86 box64 笔记

参考资料 https://github.com/ptitSeb/box86/blob/master/docs/COMPILE.md 源码地址 GitHub - ptitSeb/box86: Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices deb在线源地址&#xff08;打不开&#xff09;&#xff1a; Itais box86…

宿舍管理系统的设计与实现:基于Spring Boot、Java、Vue.js和MySQL的完整解决方案

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

vue前端开发自学,祖孙多层级组件嵌套关系数据传输

vue前端开发自学,祖孙多层级组件嵌套关系数据传输&#xff01;官方提供了一个解决方案&#xff0c;就是&#xff0c;在根组件内使用provide,哪个子孙组件想调用这个数据&#xff0c;就可以inject接收就行了。虽然是方便了&#xff0c;但是这个有点要求&#xff0c;就是只能自上…

05-HAL库硬件SPI点亮板载LCD屏幕

05-HAL库硬件SPI点亮板载LCD屏幕 1、本节内容介绍 1.1、HAL库硬件SPI 在cubemx中的配置及注意事项;1.2、HAL库SPI详解与结构介绍;1.3、实现硬件SPI驱动板载ST7789显示屏,240*240像素&#xff1b; 源码地址&#xff1a;https://gitee.com/MR_Wyf/hal-cubemx-rt-thread/tree/h…

李宏毅LLM——机器学习基础知识

文章目录 机器学习基本概念生成式学习 Structured Learning总结 机器学习基本概念 机器学习 机器自动找出一种函数 根据函数的不同&#xff0c;可以分为回归问题&#xff08;输出数值&#xff09;和分类问题&#xff08;输出类别&#xff0c;选择题&#xff09; 生成式学习 …

【征服redis1】基础数据类型详解和应用案例

博客计划 &#xff0c;我们从redis开始&#xff0c;主要是因为这一块内容的重要性不亚于数据库&#xff0c;但是很多人往往对redis的问题感到陌生&#xff0c;所以我们先来研究一下。 本篇&#xff0c;我们先看一下redis的基础数据类型详解和应用案例。 1.redis概述 以mysql为…

用julia演示蝴蝶效应:洛伦兹吸引子

文章目录 Lorentz吸引子julia绘图关闭抗锯齿 蝴蝶效应的名字来源于蝴蝶扇动翅膀的动作&#xff0c;虽然这个动作微小&#xff0c;但可能会在数周后引起飓风等极端天气的发生。这种现象表明&#xff0c;微小的变化可能会被放大并产生非线性的结果。这个概念最早由美国气象学家爱…

Jmeter接口测试(2024版)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 Jmeter介绍&测试准备&#xff1a; Jmeter介绍&#xff1a;Jmeter是软件行业里面比较常用…

控制网页的灰度显示

1.代码&#xff1a; 普通网页 <style>html {filter: grayscale(100%);}</style> 或是:webkit内核浏览器写法 <style>html {-webkit-filter: grayscale(100%)}</style> 2.说明&#xff1a; grayscale(amount) :进行灰度转换。 amount转换值的大小&…