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

在做在线远程升级的时候,一般需要两步: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 使能。然后就操作完成了,等待重新启动。


区块链治理方案是什么样的
变压器组能不能同时运行?变压器温度该如何控制?
万用表,万用表是什么意思
Thunderbolt™ 2将如何实现4k视频分辨率
华为出资对5G技术在瑞典的设备进行安全检查
远程升级之后程序加载的过程解析
如何设计一个好的电源系统
龙芯之后兆芯CPU也成功适配统一操作系统UOS
兆欧表的选用及测量
不戴眼镜就能看3D电视,三星的这项全息技术可以期待
利用金属-硅混合微结构中的导电性解决新型的光电器件制造
直播预告丨谈谈电机控制的 FOC
三星已获得美国许可,可以继续向华为供应部分显示屏
荣耀9发布会倒计时:荣耀9发布会3大亮点提前看,荣耀9高性能+高颜值走进用户的心
电化学传感器、光离子化传感器在有机挥发物TVOC快检中的应用
!销售AGILENT 4338B微电阻表HP4388B!小兵
大化工趋势下LFP差异化产品战略
分析RFID质量的成本 - 以及如何(不)失去客户
德沃先进、青松光电等企业角逐高工金球奖
高通发布《2018使用现状调研报告》:无线音乐设备和智能音箱受中国消费者欢迎