实际项目过程中很多时候产品定型之后是不能通过JTAG进行程序升级的,往往只能选择远程升级在线进行程序更新,Xilinx官方推荐的升级方式有multi boot及quick boot,具体可以参考
xapp10812文档,当然如果项目中选择BPI FLASH,可以直接通过借助MCU控制BPI的高位地址,强行将FLASH进行空间划分,通过切换高位地址,从而达到不同片区的效果,但是这种方式需要借助其他的主控MCU芯片才可以完成远程升级。
xilinx介绍的的quick是不借助外界芯片,直接在线更新程序,原理是将FLASH中的数据划分为golden 和update区域,通过关键字进行跳转

官方例程提供的DEMO只是针对他们特定指定的两款芯片,如果刚好设计硬件是它们 那就直接可以用,当然需要增加上层的数据接口,如果不是指定的芯片,需要将底层读写函数重新实现,我这里选择的是S29GL01GS11DHIV10,所以官方的东西都需要修改,具体可以参考手册说明
最后程序接口

在这里插入代码片
entity BpiFlashProgrammer isport(-- Clock and control signalsinClk               : in  std_logic;clk_osc_100m               : in  std_logic;inReset_EnableB     : in  std_logic;inCheckIdOnly       : in  std_logic;inVerifyOnly        : in  std_logic;-- DatainData32            : in  std_logic_vector(15 downto 0);outFifoRd_en        : out std_logic;inFifoData_count    : in std_logic_vector(11 downto 0);-- Status signalsoutReady_BusyB      : out std_logic;outDone             : out std_logic;outError            : out std_logic;outErrorIdcode      : out std_logic;outErrorErase       : out std_logic;outErrorProgram     : out std_logic;outErrorCrc         : out std_logic;outErrorBlockLocked : out std_logic;outErrorVPP         : out std_logic;outErrorCmdSequence : out std_logic;outErrorTimeOut     : out std_logic;outStarted          : out std_logic;outInitializeOK     : out std_logic;outCheckIdOK        : out std_logic;outEraseSwitchWordOK: out std_logic;outEraseOK          : out std_logic;outProgramOK        : out std_logic;outVerifyOK         : out std_logic;outProgramSwitchWordOK: out std_logic;-- Signals for BPI flash-- Change outAddress32 width to your BPI flash address widthoutAddress32        : out std_logic_vector(31 downto 0);inoutData16         : inout std_logic_vector(15 downto 0);outFCSB             : out std_logic;outFOEB             : out std_logic;outFWEB             : out std_logic;outFWPB             : out std_logic);
end BpiFlashProgrammer;
`

``通过串口或者网络将MCU文件下发到FPGA进行读写FLASH完成远程更新

调试过程中,为了验证FLASH读写成功与否,可以通过VIVADO直接回读FLASH里的数据进行验证:


FPGA BPI FLSAH远程升级Quick boot相关推荐

  1. 基于FPGA的远程升级系统概述

    目录 一.理论基础 二.核心程序 三.仿真测试结果 作者ID :fpga和matlab CSDN主页:https://blog.csdn.net/ccsss22?type=blog 擅长技术: 1.无 ...

  2. AXI Quad SPI读写Flash做远程升级

    未经允许,本文禁止转载 目录 简介 AXI Quad SPI IP设置 寄存器说明 AXI Quad SPI支持的通用命令 读flash id 读flash 数据 擦除扇区 写flash 数据 注意事 ...

  3. STM32 10个工程篇:1.IAP远程升级(一)

    清晨一大早起来开始撰写STM32 10个例程篇的第一章即串口IAP远程升级,虽然网络上有很多免费和付费的STM32教程,但是仍然不断地说服自己沉住气.静下心写一份独一无二的,这份独一无二中也凝聚了一名 ...

  4. linux远程升级运行程序,运用RedHat的Kickstart升级Linux系统方法

    运用RedHat的Kickstart升级Linux系统方法 本文简要地介绍了使用 Red Hat Linux的 Kickstart 及网络安装功能方便快捷地升级己有 Linux 系统,文中的例子是从 ...

  5. 制作linux只读文件系统,一种Squashfs只读根文件系统的远程升级方法及系统的制作方法...

    一种Squashfs只读根文件系统的远程升级方法及系统的制作方法 [技术领域] [0001]本发明涉及嵌入式Linux操作系统的根文件系统,具体是涉及一种Squashfs (南瓜文件系统)只读根文件系 ...

  6. 乐鑫esp8266学习rtos3.0笔记:仅1M flash 的安信可 ESP-01S 模块,如何二次开发?如何对其 OTA 远程升级固件!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  7. 远程升级技术在汽车智能网联系统中的运用

    本文由田端祥,段晖,陈洁,邹伟乐联合创作 摘要 在新的时代背景下,社会经济不断发展,与之汽车数量呈现出递增式的增长.汽车数量的不断激增,带来的是技术的不断革新,车辆配置技术日臻强大,进而使得驾驶者.汽 ...

  8. NRF52832在OTA基础上,同时支持UART升级(自定义串口协议、可远程升级)

    NRF52832的程序升级,即DFU,有通过无线方式(OTA)升级,也有通过UART,USB等硬件接口进行升级,目前资料最多的是通过无线方式进行升级,大家可以参考"青风带你学蓝牙" ...

  9. STM32远程升级IAP功能+备份功能实现。(flash读写操作)

    远程升级加备份一共需要4个扇区,要确保flash可以被分成四个扇区(F4的扇区好大,4个16k,1个64k,剩下都是128k,对于小容量芯片非常不友好). 第一个存放出厂程序,也叫启动程序boot l ...

最新文章

  1. inline-block元素4px空白间隙的解决办法
  2. oracle数据库逐步学习总结【基础一】
  3. BASIC-23_蓝桥杯_芯片测试
  4. java json 教程,【简明教程】JSON
  5. poj 1696(极角排序)
  6. jdbc连接各种数据库方式列表
  7. python format函数实例_python中强大的format函数实例详解
  8. k66 pit计时功能配置_PIT,JUnit 5和Gradle –仅需额外的一行配置
  9. Linux多线程实践(10) --使用 C++11 编写 Linux 多线程程序
  10. 获取指定路径下所有PDF文件的总页数
  11. 微信公开课讲师王泓渊:小游戏开放能力
  12. 【Javascript Demo】图片瀑布流实现
  13. 华为OSPF多区域+路由重发布/路由引入
  14. Android签名证书:jks和keystore
  15. 永中集成Office 2013 简体中文免费版
  16. 2022年了,零基础转行计算机还可靠么?
  17. uniapp更改switch大小
  18. 医疗图像论文笔记二:《Learning to recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks》
  19. oracle 中的递归查询
  20. 微信小程序flex布局怎么实现上中下3行铺满整个窗口。

热门文章

  1. 〖大前端 - 基础入门三大核心之 html 篇⑨〗- 有序列表与定义列表
  2. maya导出fbx没动画_maya做出的动画,导出FBX,在导入max时部分动画丢失,如何解决?...
  3. 超华科技:紧抓市场机遇,抢占“智慧城市”高地
  4. 计算机绘画小房子教案,大班美术活动教案:小房子教案(附教学反思)
  5. 兰州大学计算机专业复试流程,兰大计算机复试相关事宜
  6. 『津津乐道播客』#131. 日本异闻录·我曾经去了一个假的日本
  7. 结构型设计模式(适配器、桥接、组合、装饰、外观、享元、代理)
  8. 知网论文检测表格是否在查重范围内?
  9. 客户端有道云上的图片不能加载
  10. AI取代员工的例子来了!以后不能从事这些行业