0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

远程升级之后程序加载的过程解析

FPGA之家 来源:CSDN博客 作者:CSDN博客 2020-10-23 10:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在做在线远程升级的时候,一般需要两步:1、将数据写到外挂的flash中。2重新启动FPGA配置。 不过要做到远程升级,一般需要在原始程序中就考虑到加入远程升级模块,remote updata IP, 在升级的时候才可以启动远程升级功能。

远程升级之后程序加载的过程:在进行远程升级成功以后,flash中应该会至少存储两个程序,出厂程序和升级程序。两个程序在不同的地址空间中(出厂程序从0X0000开始存储)。在FPGA上电之后,FPGA会加载出厂程序,出厂程序在运行之后,检测到remote updata IP中的一些参数(如配置镜像参数等,remote updata IP部分会介绍到)后,将读取flash中升级程序内容的开始地址指向读取地址,然后触发重新配置(如reconfig信号有效),开始加载重新配置程序。直到无错误的加载完成。也就是整个过程会加载两次程序。

一、如何将程序写到flash中。

在程序运行过程中,可以通过控制一些IP来将程序写到flash中,这里有两个IP可以使用:EPCS controller, ASMI 。

1、EPCS Controller:

该IP在Qsy系统中,一般需要配合NIOS II来使用,需要使用者对ARM编程有一定的基础。不过Altera 也提供了一些有关epcs操作的API,如读写,擦除等。不过在操作前会读取一下FLASH的ID来确定是EPCS还是EPCQ,或者EPCQL,还有容量是多大的。确定好Flash的类型之后就可以调用API函数对Flash操作了。网上也有例程,如锆石科技的参考例程。不过如果使用的是第三方的flash,而读取的ID不在官方flash的ID列表之后,则就会认为没有flash,也就无法读写操作了(不敢百分百确定的,但是肯定要改程序)。所以需要操作者对ARM的操作有一定的知识。

EPCS Controller IP在cyclone IV上使用的时候是需要手动绑定那四个pin的,在cyclone V上是不需要绑定的。

2、ASMI IP

该IP在IP库中,Qsys中也有,可以直接用verilog进行编程控制,网上也有中文文档:ug_altasmi_parallel_CH.pdf 。该文档会介绍如何擦除,读写flash等,只要时序控制好,EPCS/EPCQ/EPCQL的空间地址控制号就可以了。网上或官方都有参考例程,可以参考一下。

二、如何打开下载程序文件

远程烧录,需要PC等通过串口或网络将程序传给FPGA,程序文件一般是jic/sof/rbf等格式的文件,那么一般软件不能打开也看不到里面的内容,可以使用UltraEdit软件来打开这些文件,而且里面还会有一部分提示。

但是这个文件会很大,比如16MB,并不是所有的都是有效的信息,我现在也不知道该写哪一些数据到flash中,以后知道了再补充吧。 三、remote updata IP 该IP在IP库和Qsys中都有,可以用verilog来控制,建议使用前也要先看下他的说明书,ug_altremote.pdf,里面对寄存器有详细的说明。

在使用过程其实是读取寄存器或者写寄存器的过程,最后一步reconfig信号就可以了。 网友给出了一个思路:read 3‘b000 (读取reconfig的条件) --》 write 3’b101(Anf配置模式选择:出厂or镜像) --》 read Anf 3‘b101(确定一下) --》write 3’b011 (写看门狗使能) --》write 3‘b010(写看门狗溢出值) --》 write 3’b100 (写看门狗溢出值) --》 reconfig 使能。然后就操作完成了,等待重新启动。
责任编辑人:CC

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:​Altera FPGA 远程升级有关的几个IP的使用

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux内核模块的加载机制

    。Linux内核模块的加载过程主要包含了ELF解析、动态链接、安全验证和资源管理技术。其核心步骤包括:权限检查→ELF解析→符号重定位→依赖加载
    发表于 11-25 06:59

    基于IAP功能实现远程升级,如何设计Flash双Bank热切换的回滚机制?

    基于IAP功能实现远程升级时,如何设计Flash双Bank热切换的回滚机制?
    发表于 11-21 07:26

    Bootloader固件升级的步骤

    BootLoader 就是用来管理单片机程序的更新。 3、在实际的单片机工程项目中,如果加入了 BootLoader 功能,就可以给单片机后面升级程序留出一个接口,方便之后的单片机
    发表于 11-19 07:41

    程序加载过程中遇到的问题及其解决方法

    HBird_Driver.exe驱动,这其实是不够的,可以参考https://rvmcu.com/column-topic-id-464.html进行驱动安装,之后就可以正常下载程序。 (3)遇到的问题3:下载
    发表于 10-30 07:59

    使用RTT的维护云进行远程固件升级(OTA),怎么没有网络升级的方式?

    使用RTT的维护云进行远程固件升级(OTA),怎么没有网络升级的方式的?只有蓝牙,近距离的固件升级。详细如图所示,只有蓝牙,没有连接互联网,通过固件上传服务器进行在线
    发表于 10-13 06:36

    如何使用 Bootloader 通过 BLE 模块升级 APROM?

    使用具有 IAP 模式功能的 LDROM 中的ISP_UART引导加载程序,通过 ESP32 BLE 模块升级 APROM 中的固件
    发表于 08-20 08:27

    ESP32通过OTA无线局域网远程升级下载程序

    本文介绍了ESP32通过OTA无线局域网远程升级固件的基本方法
    的头像 发表于 07-22 13:21 1470次阅读
    ESP32通过OTA无线局域网<b class='flag-5'>远程</b><b class='flag-5'>升级</b>下载<b class='flag-5'>程序</b>

    工业设备远程升级:CATCOM-100的高效解决方案

    在工业环境中,设备固件的更新往往因为设备分布广泛且位置偏远而变得低效。本期我们将介绍如何通过CATCOM-100智能网联DTU终端实现远程固件升级,提升设备管理效率。工业设备固件升级的挑战在日常生活
    的头像 发表于 07-21 11:35 348次阅读
    工业设备<b class='flag-5'>远程</b><b class='flag-5'>升级</b>:CATCOM-100的高效解决方案

    基于无线通信网关的PLC程序远程升级系统方案

    基于基于无线通信网关的PLC程序远程升级系统方案。通过将无线通信网关接入到现场PLC中,能够为工厂PLC提供一个远程通信的网络通道,技术人员即可在办公室对异地PLC进行
    的头像 发表于 07-07 10:53 504次阅读
    基于无线通信网关的PLC<b class='flag-5'>程序</b><b class='flag-5'>远程</b><b class='flag-5'>升级</b>系统方案

    【干货】基于串口的FPGA远程升级

    变得简单有趣,记得给我点赞留言,让我知道你也在这趟奇妙的旅程里哦。远程升级简介远程升级的实质是通过远程且不影响当前芯片工作状态的方式实现芯片
    的头像 发表于 04-14 09:53 1707次阅读
    【干货】基于串口的FPGA<b class='flag-5'>远程</b><b class='flag-5'>升级</b>

    FOTA远程升级的10个关键点!技术小白必须收藏

    本文将针对FOTA升级过程中的十大常见问题提供专业解答,帮助您规避风险,实现安全高效的固件更新。 一、FOTA远程升级常见问题   01. 远程
    的头像 发表于 04-10 14:53 529次阅读
    FOTA<b class='flag-5'>远程</b><b class='flag-5'>升级</b>的10个关键点!技术小白必须收藏

    EE-240: ADSP-BF533 Blackfin加载过程

    电子发烧友网站提供《EE-240: ADSP-BF533 Blackfin加载过程.pdf》资料免费下载
    发表于 01-05 10:00 0次下载
    EE-240: ADSP-BF533 Blackfin<b class='flag-5'>加载</b><b class='flag-5'>过程</b>

    EE-56:关于SHARC EPROM和主机引导加载程序的提示和技巧

    电子发烧友网站提供《EE-56:关于SHARC EPROM和主机引导加载程序的提示和技巧.pdf》资料免费下载
    发表于 01-05 09:57 0次下载
    EE-56:关于SHARC EPROM和主机引导<b class='flag-5'>加载</b><b class='flag-5'>程序</b>的提示和技巧

    使用wavevison5软件时,FPGA中的程序是在线加载的,CY7C68013A中的固件也是在线加载的吗?

    我现在没有使用Wavevison5软件,而是用JTAG接口把snar019文件夹中的FPGA程序直接下载到FPGA中,下载之后为什么指示灯显示的有点不正常,PII_LD和DCLK_LOCKED
    发表于 12-27 08:11

    Stellaris引导加载程序用户指南

    电子发烧友网站提供《Stellaris引导加载程序用户指南.pdf》资料免费下载
    发表于 12-23 16:24 0次下载
    Stellaris引导<b class='flag-5'>加载</b><b class='flag-5'>程序</b>用户指南