FPGA BPI FLSAH远程升级Quick boot
实际项目过程中很多时候产品定型之后是不能通过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相关推荐
- 基于FPGA的远程升级系统概述
目录 一.理论基础 二.核心程序 三.仿真测试结果 作者ID :fpga和matlab CSDN主页:https://blog.csdn.net/ccsss22?type=blog 擅长技术: 1.无 ...
- AXI Quad SPI读写Flash做远程升级
未经允许,本文禁止转载 目录 简介 AXI Quad SPI IP设置 寄存器说明 AXI Quad SPI支持的通用命令 读flash id 读flash 数据 擦除扇区 写flash 数据 注意事 ...
- STM32 10个工程篇:1.IAP远程升级(一)
清晨一大早起来开始撰写STM32 10个例程篇的第一章即串口IAP远程升级,虽然网络上有很多免费和付费的STM32教程,但是仍然不断地说服自己沉住气.静下心写一份独一无二的,这份独一无二中也凝聚了一名 ...
- linux远程升级运行程序,运用RedHat的Kickstart升级Linux系统方法
运用RedHat的Kickstart升级Linux系统方法 本文简要地介绍了使用 Red Hat Linux的 Kickstart 及网络安装功能方便快捷地升级己有 Linux 系统,文中的例子是从 ...
- 制作linux只读文件系统,一种Squashfs只读根文件系统的远程升级方法及系统的制作方法...
一种Squashfs只读根文件系统的远程升级方法及系统的制作方法 [技术领域] [0001]本发明涉及嵌入式Linux操作系统的根文件系统,具体是涉及一种Squashfs (南瓜文件系统)只读根文件系 ...
- 乐鑫esp8266学习rtos3.0笔记:仅1M flash 的安信可 ESP-01S 模块,如何二次开发?如何对其 OTA 远程升级固件!
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...
- 远程升级技术在汽车智能网联系统中的运用
本文由田端祥,段晖,陈洁,邹伟乐联合创作 摘要 在新的时代背景下,社会经济不断发展,与之汽车数量呈现出递增式的增长.汽车数量的不断激增,带来的是技术的不断革新,车辆配置技术日臻强大,进而使得驾驶者.汽 ...
- NRF52832在OTA基础上,同时支持UART升级(自定义串口协议、可远程升级)
NRF52832的程序升级,即DFU,有通过无线方式(OTA)升级,也有通过UART,USB等硬件接口进行升级,目前资料最多的是通过无线方式进行升级,大家可以参考"青风带你学蓝牙" ...
- STM32远程升级IAP功能+备份功能实现。(flash读写操作)
远程升级加备份一共需要4个扇区,要确保flash可以被分成四个扇区(F4的扇区好大,4个16k,1个64k,剩下都是128k,对于小容量芯片非常不友好). 第一个存放出厂程序,也叫启动程序boot l ...
最新文章
- inline-block元素4px空白间隙的解决办法
- oracle数据库逐步学习总结【基础一】
- BASIC-23_蓝桥杯_芯片测试
- java json 教程,【简明教程】JSON
- poj 1696(极角排序)
- jdbc连接各种数据库方式列表
- python format函数实例_python中强大的format函数实例详解
- k66 pit计时功能配置_PIT,JUnit 5和Gradle –仅需额外的一行配置
- Linux多线程实践(10) --使用 C++11 编写 Linux 多线程程序
- 获取指定路径下所有PDF文件的总页数
- 微信公开课讲师王泓渊:小游戏开放能力
- 【Javascript Demo】图片瀑布流实现
- 华为OSPF多区域+路由重发布/路由引入
- Android签名证书:jks和keystore
- 永中集成Office 2013 简体中文免费版
- 2022年了,零基础转行计算机还可靠么?
- uniapp更改switch大小
- 医疗图像论文笔记二:《Learning to recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks》
- oracle 中的递归查询
- 微信小程序flex布局怎么实现上中下3行铺满整个窗口。
热门文章
- 〖大前端 - 基础入门三大核心之 html 篇⑨〗- 有序列表与定义列表
- maya导出fbx没动画_maya做出的动画,导出FBX,在导入max时部分动画丢失,如何解决?...
- 超华科技:紧抓市场机遇,抢占“智慧城市”高地
- 计算机绘画小房子教案,大班美术活动教案:小房子教案(附教学反思)
- 兰州大学计算机专业复试流程,兰大计算机复试相关事宜
- 『津津乐道播客』#131. 日本异闻录·我曾经去了一个假的日本
- 结构型设计模式(适配器、桥接、组合、装饰、外观、享元、代理)
- 知网论文检测表格是否在查重范围内?
- 客户端有道云上的图片不能加载
- AI取代员工的例子来了!以后不能从事这些行业