电影网站要怎样做才有出路,表白网页生成,做网站可以申请国家补助吗,厦门专业网站建设平台Xilinx 7系FPGA远程更新方案——QuickBoot方式远程更新bit
一、远程更新背景和架构
对于非ZYNQ系列的常规FPGA来说#xff0c;对于bit的更新一般使用JTAG进行烧录。而作为商用产品#xff0c;想要进行OTA升级时#xff0c;使用JTAG的升级方式显然不适合#xff0c;因此对于bit的更新一般使用JTAG进行烧录。而作为商用产品想要进行OTA升级时使用JTAG的升级方式显然不适合因此采用了Xilinx官方提供的QuickBoot方式进行能够更新固件根据xapp1081的描述得知该方式的系统结构图如图1所示。
图1 远程升级结构图
图2 系统构成图 由图1可以看出该远程升级方案支持以太网、PCIe、USB、SD卡、串口等方式实现通过这些通信方式将需要更新的bit文件发送到FLASH中当重新上电后FPGA会自动从FLASH中读取新的bit文件。
二、远程更新工作原理
FLASH中存储两套可执行文件分别为GOLDEN bits和UPDATE bits文件其中GOLDEN bits和UPDATE bits都具备远程更新功能。 可执行文件initial.mcs中包含header 、GOLDEN bits和UPDATE bits文件header文件中具备开关切换和地址跳转功能可引导FPGA启动GOLDEN bits或者UPDATE bits文件。 具体如下
header地址空间为0x000000000x00001020其中切换开关为0x00000FFC0x00000FFF四字节ON为0xAA995566OFF通常为0xFFFFFFFF地址跳转为0x00001008~0x0000100B四字节此为UPDATE bits文件的起始地址。 可执行文件update.mcs只具备一套update程序。 initial.mcs和update.mcs是通过bit文件调用脚本生成的initial.mcs文件是update.mcs文件的两倍大小具体大小通过脚本进行指定。
将initial.MCS通过VIVADO烧写至FLASH中后FPGA上电后启动逻辑会判断切换开关是否为0xAA995566如果是则读取地址跳转进行跳转启动UPDATE程序如果不是则继续读取大数据判断到GOLDEN程序中的0xAA995566启动GOLDEN程序。无论是GOLDEN还是UPDATE程序都具备程序更新功能即UPDATE损坏时可通过GOLDEN进行更新UPDATE程序UPDATE程序未损坏时可通过UPDATE更新自己。
三、具体实现
1、客户端服务器建立 本设计采用KC705平台实现通过AXI_ETHERNET IP核实现mac功能在SDK中使用echo server API调用LWIP协议创建服务器PC端采用适合项目要求的工具开发上位机软件使用TCP/IP协议实现客户端与服务器建立。 LWIP协议中每包数据最大1500字节因此上位机中选择实际有效数据为1280字节再加16字节协议头。 2、软核程序固化 程序在Vivado软件下生成system.bit文件导入到SDK中生成软核.elf的可执行文件在SDK中通过program FPGA中选择当前工程的.bit、.mmi和.elf文件生成download.bit此download.bit为融合了FPGA程序和软核程序的最终文件通过program FPGA可将程序烧写至FLASH中也可以在VIVADO中生成mcs或者bin文件将程序烧写至FLASH中。 3、软核AXI总线实现 软核通过网络收到PC机发送的数据包需要通过AXI总线将数据发送至FLASH 烧写功能的IPAXI总线具备字节读写和内存数据拷贝功能函数如下 static INLINE u32 Xil_In32(UINTPTR Addr) static INLINE u32 Xil_Out32(UINTPTR Addr) void Xil_MemCpy(void* dst, const void* src, u32 cnt); 4、FLASH烧写IP 目前FLASH型号为N25Q256,采用X1模式进行烧写。在FLASH中地址空间为0x01FFFFFF每个地址对应一个字节。在.vhd文件中每次烧写一个字节AXI总线收到数据后调整数据顺序按字节烧写至FLASH中。 5、远程更新文件生成 1将download.bit生成download.mcs文件和download.bin文件 cd 盘符:/工程文件夹/bin1 write_cfgmem -format bin -size 32 -interface SPIx1 -checksum -loadbit “up 0x0 download.bit” download.bin
cd 盘符:/工程文件夹/bin1 write_cfgmem -format mcs -size 32 -interface SPIx1 -checksum -loadbit “up 0x0 download.bit” download.mcs
其中 :-format支持bin和mcs文件两种格式。
2通过download.mcs生成download_initial.mcs和download_update.mcs exec xilPerl 盘符:/工程文件夹/bin1/MakeSpiFlashProgrammerMcsFiles.pl –imagesize 60 盘符:/工程文件夹/bin1/download.mcs
其中: download_initial.mcs可用于直接烧写FLASH包含header、GOLDEN 和UPDATE。 –imagesize单位为Mbit 可指定生成的download_initial.mcs和download_update.mcs文件大小60Mbit 7.5MB即download_update.mcs为7.5MBdownload_initial.mcs为15MB 地址分配为0x000000000x00001020-1为header其中跳转地址为0x007F0000,0x000010200x007F0000-1 为GOLDEN程序空间0x007F0000~0x00F00000-1为UPDATE程序空间。 3将download_update.mcs转化为download_update.bin文件 promgen -p bin -r download_update.mcs -o download_update.bin 其中; FLASH IP烧写中不具备将mcs文件转化为bin文件功能因此需要通过ISE将mcs转化成bin文件。 download_update.bin可直接用于远程更新。