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

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

3天内不再提示

如何将程序写到flash中?

FPGA之家 来源:FPGA之家 2023-07-30 17:07 次阅读

Altera FPGA 远程升级有关的几个IP的使用

在做在线远程升级的时候,一般需要两步:

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软件来打开这些文件,而且里面还会有一部分提示。

c5099644-2e79-11ee-815d-dac502259ad0.png    

但是这个文件会很大,比如16MB,并不是所有的都是有效的信息,我现在也不知道该写哪一些数据到flash中,以后知道了再补充吧。

三、remote updata IP

该IP在IP库和Qsys中都有,可以用verilog来控制,建议使用前也要先看下他的说明书,ug_altremote.pdf,里面对寄存器有详细的说明。

c5ccd398-2e79-11ee-815d-dac502259ad0.png       c60978b6-2e79-11ee-815d-dac502259ad0.png     

在使用过程其实是读取寄存器或者写寄存器的过程,最后一步reconfig信号就可以了。

网友给出了一个思路:read 3'b000 (读取reconfig的条件) --》 write 3'b101(Anf配置模式选择:出厂or镜像) --》 read Anf 3'b101(确定一下) --》write 3'b011 (写看门狗使能) --》

write 3'b010(写看门狗溢出值) --》 write 3'b100 (写看门狗溢出值) --》 reconfig 使能。然后就操作完成了,等待重新启动。




审核编辑:刘清

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

    关注

    1603

    文章

    21326

    浏览量

    593245
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • FlaSh
    +关注

    关注

    10

    文章

    1551

    浏览量

    146689
  • ARM处理器
    +关注

    关注

    6

    文章

    346

    浏览量

    41325

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

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

收藏 人收藏

    评论

    相关推荐

    请问如何将镜像烧写到emmc上?

    如何将镜像烧写到emmc上?
    发表于 01-10 07:47

    FCX3如何将USBFlashProg写到内存,及时生效?

    当前使用CX3平台,如何将USBFlashProg写到内存,及时生效?
    发表于 02-28 06:45

    使用CCS6和TM4C LaunchPad烧写程序如何配置CCS程序写到FLASH呢?

    自己用TM4C123GH6PM搭建了一个最小系统。使用CCS6和TM4C LaunchPad可以正常debug自己的最小系统,程序可以正常跑,但是程序是不是只是烧写到了RAM里面?一掉电之后重新上电,自己的最小系统又没法运行了,
    发表于 08-14 06:13

    请问F28M35x如何将flash中部分程序加载到ram运行

    求教一个问题:如何将flash的部分程序加载到ram运行?因F28M35x片内ram空间较小,而且不准备外扩ram,所以
    发表于 08-20 06:16

    请问DSP28335用SCI程序的HEX码写到FLASH然后运行下载到flash的代码怎样做?

    我想实现用SCI程序的HEX码写到FLASH,然后运行下载到flash的代码怎样实现?望大神
    发表于 08-23 12:50

    请问程序如何烧写到指定的FLASH

    concerto f28m35请教:程序如何烧写到指定的FLASH?用仿真器可以直接下载吗?我对程序烧写没有清晰的概念,求赐教!
    发表于 10-30 10:14

    请问通过CCS程序下载到SPI0 Flash的原理是怎样的?

    通过CCS程序下载到SPI0 Flash其原理是怎样的?我理解的操作步骤如下:1. 待烧写到flas
    发表于 05-14 13:27

    CCS5.2下如何将.out文件烧写到28335的FLASH

    在CCS3.3有,ON Chip Flash Programmer,可以直接.out文件直接烧写到DSP的FLASH
    发表于 05-19 14:06

    如何stm32程序写到外扩nor flash

    有FSMC的初始化汇编代码。但是用U-LINK仿真时,总是说Flash Timeout,就是不能烧写进去,甚是苦恼!想问问,这个stm32程序写到外扩nor
    发表于 05-20 04:35

    28035程序程序写到Flash,请问Ramfuns段里都包含什么函数呢?

    28035程序程序写到Flash,其中使用的语句MemCopy(&RamfuncsLoa
    发表于 05-29 10:21

    请问F28027怎么把程序写到Flash

    F28027怎么把程序写到Flash,软件是CCSV5.3在软件仿真程序可以运行外部供电时
    发表于 06-08 15:43

    如何将float数据存到flash

    项目场景:在灵动MCU平台基于逐飞科技开源的RTT库,一个float类型的数据变量保存到flash;问题描述:写和读flash数据的接口是uint32类型的变量,
    发表于 12-13 06:54

    如何将rk3568_loader.bin烧写到eMMC

    如何将rk3568_loader.bin烧写到eMMC呢?有哪些烧写步骤?
    发表于 03-02 09:44

    如何将现有的bin文件烧写到外部的flash

    如何将现有的bin文件烧写到外部的flash
    发表于 06-25 08:37

    如何将程序写到flash中去

    将数据写到外挂的flash中。2重新启动FPGA配置。 不过要做到远程升级,一般需要在原始程序中就考虑到加入远程升级模块,remote updata IP, 在升级的时候才可以启动远程升级功能。
    的头像 发表于 10-12 14:16 2816次阅读
    <b class='flag-5'>如何将</b><b class='flag-5'>程序</b><b class='flag-5'>写到</b><b class='flag-5'>flash</b>中去