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之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    通过物通博联PLC远程调试网关实现PLC远程升级程序

    远程调试网关,实现了PLC远程升级程序的功能,提高了生产效率,降低了运营成本,并使PLC的升级和维护更加便捷。 物通博联PLC
    的头像 发表于 03-09 17:19 80次阅读
    通过物通博联PLC<b class='flag-5'>远程</b>调试网关实现PLC<b class='flag-5'>远程</b><b class='flag-5'>升级</b><b class='flag-5'>程序</b>

    21489可以在启动加载程序过程中将SPIFLASH中的程序按照一定的解密算法解密后,加载到内部RAM运行吗?

    由于21489无内部ROM,程序都是放到SPIFLASH上的,这样做好的程序很容易将SPIFLASH中的程序读出来。21489可不以做到,在启动加载
    发表于 11-30 07:47

    python写完程序之后怎么运行

    Python是一门简洁、易学的编程语言,被广泛应用于数据分析、人工智能等领域。在学习Python编程的过程中,了解程序的运行机制是至关重要的。本文将详尽解析Python程序的运行
    的头像 发表于 11-22 11:10 657次阅读

    GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具

    GD32、STM32单片机,是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。 GD32/STM32单片机的在线下载通常需要以下几种方式完成: 1、使用ST
    发表于 11-10 15:03

    GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具

    GD32、STM32单片机,是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。使用该方法可以完成手机网页在线程序升级,网页
    的头像 发表于 11-09 12:31 1120次阅读
    GD32单片机STM32<b class='flag-5'>远程</b>下载手机<b class='flag-5'>程序</b><b class='flag-5'>升级</b>固件下载局域网网页<b class='flag-5'>升级</b>工具

    编程语言的加载和执行过程

    上一章着重讲了指令,我们用汇编、C语言等工具编写的代码最终也被转化成机器指令被执行。本章进一步阐述编程语言如何被加载和执行的过程
    的头像 发表于 10-31 10:13 349次阅读
    编程语言的<b class='flag-5'>加载</b>和执行<b class='flag-5'>过程</b>

    车规MCU的启动加载程序是什么

    启动加载程序(bootloader) 车规MCU的启动加载程序(bootloader)是一种用于在汽车电子控制单元(ECU)上加载和更新应用
    的头像 发表于 10-27 17:26 1090次阅读

    一种SCA波形库远程管理和SCA波形远程加载运行的技术方案

    电子发烧友网站提供《一种SCA波形库远程管理和SCA波形远程加载运行的技术方案.pdf》资料免费下载
    发表于 10-23 11:30 0次下载
    一种SCA波形库<b class='flag-5'>远程</b>管理和SCA波形<b class='flag-5'>远程</b><b class='flag-5'>加载</b>运行的技术方案

    类隔离实现之自定义类加载器的扩展

    机制。 2、类加载是什么? 类加载是一种过程,是将class文件加载到jvm内存的过程。当代码逻辑中需要引用类时,通过类
    的头像 发表于 10-08 15:17 249次阅读

    Ethernet远程固件升级

    本实验工程实现了Ethernet远程固件升级, 通过编译下载工程到STM32F769 Flash bank1并执行,能够实现从远程服务器下载程序到Flash bank2中做固件
    发表于 09-11 06:00

    远程升级单片机的设计思路

    上周给大家分享了《 Bootloader程序安全机制设计 》,今天为大家分享一下远程升级单片机的设计思路。
    发表于 09-05 10:34 588次阅读
    <b class='flag-5'>远程</b><b class='flag-5'>升级</b>单片机的设计思路

    Linux内核模块加载过程解析(1)

    `insmod_main()`函数是 insmod 命令的入口函数,该函数首先通过函数参数获取被加载模块的名字并存入局部指针变量 filename,然后调用`bb_init_module()`函数进行后续操作。
    发表于 06-27 15:42 387次阅读

    AN-2058: ADuCM355用户引导加载程序

    用户应用程序可以实现自己的引导加载程序,提供一个用于现场自我更新的机制。实现自己的用户引导加载程序要求以适当的方式构建用户应用
    的头像 发表于 06-16 16:31 595次阅读
    AN-2058: ADuCM355用户引导<b class='flag-5'>加载</b><b class='flag-5'>程序</b>

    使用微控制器上的引导加载程序使您的嵌入式设计面向未来

    检查是否存在上传请求。如果有,它将上传新固件并将其编程到闪存中。这是一个复杂且耗时的过程,但不用担心,我们通过在 MPLAB® 代码配置器 (MCC) 中提供引导加载程序库来简化将引导加载
    的头像 发表于 05-06 10:55 961次阅读

    为什么AN12218SW引导加载程序无法解析生成的.srec文件?

    当将提供的 S32K148 引导加载程序应用程序与 S32DS 生成的 .srec 文件一起使用时,它无法写入未对齐的短语。 请 NXP:修复 Bootloader 中的 srecord
    发表于 05-06 06:37