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

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

3天内不再提示

【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十六章PS端网络远程更新QSPI

FPGA技术专栏 来源:芯驿电子科技 作者:芯驿电子科技 2021-01-29 10:02 次阅读

原创声明:

本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。

适用于板卡型号:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

vivado工程目录为“ps_hello/vivado”

vitis工程目录为“ps_remote/vitis”

在实际工作中,会遇到产品升级问题,如果按照程序烧录的方式,可能需要打开产品的外壳,这无疑。本章介绍一种通过网络远程更新FLASH程序的方法,包含UDP和TCP两种方法。

软件工程师工作内容

以下为软件工程师负责内容。

1. Vitis程序开发

1.1 UDP传输方式

1)LWIP部分主要处理BIN文件的接收,程序为lwip_app.c

o4YBAGAKMiaANHdtAAA_EWkkf2M029.jpg

2)在创建工程后,需要使能lwip库,并进行设置,使能DHCP功能,将pbuf空间尽可能设置大一些,增大缓存空间,提高效率。

pIYBAGAKMieAWzESAADdecxNhMY969.jpgo4YBAGAKMiiAMmb6AAGOcZFDTtw206.jpg

3)udp_receive函数为设置的接收回调函数,主要功能是接收数据,并将接收到的数据缓存到FlashRxBuffer空间,留待更新Flash使用,在发送数据后,再发送“update”命令,开始更新flash,在函数中判断此命令。

4)在while循环语句中,判断StartUpdate变量值,更新Flash。

pIYBAGAKMiiAVgCsAAASHmvQ2pA166.jpg

1.2 TCP传输方式

1)TCP的LWIP部分同样也是lwip_app.c文件,控制部分参考lwip echo server例程,建立一个TCP Server

o4YBAGAKMiiATFfDAABBlXTLRlc722.jpg

2)与UDP类似,在recv_callback接收回调函数中,缓存接收到的BIN文件,启动更新命令同样是update,其他部分也与UDP类似。

1.3 QSPI Flash读写控制

UDP和TCP两种方式使用的是同样的QSPI读写文件qspi.c和qspi.h

pIYBAGAKMimAOYi8AAAJLXdTPmk897.jpg

1)qspi.c文件是根据xqspipsu_generic_flash_polled_example做的修改

o4YBAGAKMimAN_o_AABbKIK2EpM269.jpg

2)主要有以下一些函数,写使能及关闭,flash擦除,flash写,flash读,读Flash ID等。

pIYBAGAKMimAJf7qAAAgkQnvjAQ573.jpg

3)主要的函数为update_qspi,其中TotalLen为要更新的总字节数,FlashDataToSend为存放更新数据的缓存区域,流程也比较简单,首先是擦除,在这里没选择擦除整个Flash,而是根据TotalLen大小进行Sector擦除,因此擦除的空间会比TotalLen稍微大一点;然后是写Flash,利用FlashWrite函数进行写入;最后是校验,从Flash里读出数据,并与写入的数据进行对比。

o4YBAGAKMiqAT6ZkAAAQBJ0sDkk913.jpg

2. 板上验证

我们可以选择其他例程的BOOT.bin文件。我们是设定网络环境理想状态下做的实验,在做此实验时,不要打开其他有关以太网传输的上位机软件,由于端口号一样,可能会造成冲突。

1)首先连接开发板,将网线连接到网口

2)如果有DHCP服务器,会自动分配IP给开发板;如果没有DHCP服务器,默认开发板IP地址为192.168.1.10,需要将PC的IP地址设为同一网段,如下图所示。同时要确保网络里没有192.168.1.10的IP地址,否则会造成IP冲突,导致无法显示。可以在板子未上电前在CMD里输入ping 192.168.1.10查看是否能ping通,如果ping通,说明网络中有此IP地址,就无法验证。

没有问题之后打开串口软件。

pIYBAGAKMiqANcCfAABvqUiukvk503.jpg

2.1 UDP方式

1)下载程序,可以看串口里的信息

o4YBAGAKMiqANPGNAAAnJNyVZR8467.jpg

2)打开工程目录下的板卡网络升级软件

pIYBAGAKMiqAbDjhAAANVF26Y60011.jpg

3)填入板卡的IP地址和端口号,选择UDP发送方式,选择BOOT.bin文件,点击发送

o4YBAGAKMiuAU_AOAABz106h2TU512.jpg

4)发送完毕后,会显示发送的字节数

pIYBAGAKMiuAVMmUAAByAEsAFq8981.jpg

5)在串口窗口可以看到板卡接收到的字节数,以及擦除,烧写,校验过程。

o4YBAGAKMiuAYo6iAAA55QUWT0E405.jpg

6)断电通拨码开关选择QSPI启动方式,打开电源启动,即可看到程序运行起来。

2.2 TCP方式

1)下载程序,可以看到串口信息

pIYBAGAKMiyAYjmhAAApfLXyAm4047.jpg

2)打开工程目录下的板卡网络升级软件

pIYBAGAKMiqAbDjhAAANVF26Y60011.jpg

3)填入IP地址和端口号,选择TCP发送方式,选择BOOT.bin文件,点击发送

o4YBAGAKMiyATCyOAAB06T56AuQ902.jpg

4)与UDP一样,也能看到发送的字节数

pIYBAGAKMiyAX94FAAByx9Epmo8925.jpg

5)在串口窗口可以看到板卡接收到的字节数,以及擦除,烧写,校验过程。

o4YBAGAKMi2ABQNVAAA66YnxmaI037.jpg

6)断电通过拨码开关选择QSPI启动方式,打开电源启动,即可看到程序运行起来。

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

    关注

    1602

    文章

    21305

    浏览量

    593112
  • FlaSh
    +关注

    关注

    10

    文章

    1549

    浏览量

    146637
  • Zynq
    +关注

    关注

    9

    文章

    598

    浏览量

    46609
  • QSPI
    +关注

    关注

    0

    文章

    38

    浏览量

    11960
  • MPSoC
    +关注

    关注

    0

    文章

    194

    浏览量

    24109
收藏 人收藏

    评论

    相关推荐

    Zynq UltraScale + MPSoC USB 3.0 CDC器件类设计

    Linux主机测试CDC功能履行实施细节设计类型仅PSSW类型Zynq®UltraScale+MPSoC Linux操作系统CPU的ARM Cortex A53 Core 0以1.1 GHz运行
    发表于 01-03 09:59

    如何利用ZYNQ MPSoC玩DOOM?

    赛灵思和 DornerWorks 的系统软件团队在赛灵思的 Zynq® Ultrascale+MPSoC 上启动 Xen Project 管理程序时,我们发现可通过运行当年叱诧一时的流行电子游戏
    发表于 10-09 06:21

    请问Zynq Ultrascale + MPSOC本身是否存在问题?

    你好我们正在考虑在我们的新设计中使用Zynq Ultrascale + MPSOC。我们想在我们的电路板设计中加入HDMI接口。 Zynq Ultr
    发表于 10-14 09:17

    如何调试Zynq UltraScale+ MPSoC VCU DDR控制器

      如何调试Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+
    发表于 01-07 16:02

    如何调试Zynq UltraScale+ MPSoC VCU DDR控制器

    如何调试 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    发表于 01-22 06:29

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    发表于 02-02 07:53

    模拟电路网络课件 第二十六节:差分式放大电路

    模拟电路网络课件 第二十六节:差分式放大电路 6.2 差分式放大电路 一、直接耦合多级放大电路的零点漂移
    发表于 09-17 11:35 1666次阅读
    模拟电路<b class='flag-5'>网络</b>课件 <b class='flag-5'>第二十六</b>节:差分式放大电路

    闲话Zynq UltraScale+ MPSoC(连载5)

    通过EMIO布线到PL; c)新增了四通道的高速GTR收发器; d)DDR控制更新到可支持DDR4L-2400速率。 (1)MIO资源 Zynq UltraScale+具有78个可配置复用的MIO,这些MIO可用作将
    发表于 02-08 08:29 515次阅读
    闲话<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>(连载5)

    Zynq UltraScale+ MPSoC的发售消息

    Zynq®UltraScale+MPSoC,现已开始发售。视频向您重点介绍了Xilinx UltraScale +产品组合的第一位成员
    的头像 发表于 11-27 06:47 3301次阅读

    米尔科技Zynq UltraScale+ MPSoC技术参考手册介绍

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多处理SoC系统,在第一代Zynq-7000的基础上做了全面升级,在单
    的头像 发表于 11-18 11:03 2612次阅读
    米尔科技<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>技术参考手册介绍

    如何调试 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款专用 DDR 控制器,只支持在 Zynq UltraScale+
    发表于 02-23 06:00 15次下载
    如何调试 <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b> VCU DDR 控制器?

    米尔电子zynq ultrascale+ mpsoc底板外设资源清单分享

    米尔电子推出的国内首款zynq ultrascale+ mpsoc平台核心板(及开发板):MYC-CZU3EG吸引了人工智能、工业控制、嵌入式视觉、ADAS、算法加速、云计算、有线/无线通信
    发表于 01-07 15:20 3次下载
    米尔电子<b class='flag-5'>zynq</b> <b class='flag-5'>ultrascale+</b> <b class='flag-5'>mpsoc</b>底板外设资源清单分享

    ZYNQ Ultrascale+ MPSoC系列FPGA芯片设计

    基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列 FPGA 芯片设计,应用于工厂自动化、机器视觉、工业质检等工业领域
    发表于 11-02 14:35 1171次阅读

    Zynq UltraScale+ MPSoC中的隔离方法

    电子发烧友网站提供《Zynq UltraScale+ MPSoC中的隔离方法.pdf》资料免费下载
    发表于 09-13 17:11 1次下载
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>中的隔离方法

    Zynq UltraScale+ MPSoC的隔离设计示例

    电子发烧友网站提供《Zynq UltraScale+ MPSoC的隔离设计示例.pdf》资料免费下载
    发表于 09-13 11:28 2次下载
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>的隔离设计示例