米联客 ZYNQ/SOC 精品教程 S02-CH29 基于TCP的QSPI Flash bin文件网络烧写

本教程介绍了一种基于TCP协议的ZYNQ SoC开发板QSPI Flash bin文件快速烧写方法,通过TCP Server与网络调试助手交互,提升了烧写速度并实现了远程更新,无需依赖JTAG接口。详细讲解了TCP Server的建立、bin文件接收、Flash烧写及验证过程。
摘要由CSDN通过智能技术生成

软件版本:VIVADO2017.4

操作系统:WIN10 64bit

硬件平台:适用米联客 ZYNQ系列开发板

米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!!

29.1 概述

      在之前的应用中,ZYNQ将BOOT.bin文件烧写至QSPI Flash基本都是通过USB Cable连接PC,通过JTAG接口连接开发板,在SDK软件中使用“Program Flash”功能进行现场在线烧写。这种常规方法存在两个缺点。

      1、速度慢。Flash的擦除(Erase)、写入(Program)、校验(Verify)3个过程所费的时间总和通常都需要若干分钟。

      2、无法脱离JTAG口。对于某些产品而言,当产品量产上市后,进入维护升级阶段,若需修改、更新Flash中的bin文件,则需对产品进行拆解才可进行。

      本例程实现了一种基于TCP协议的Flash bin文件更新方法。一方面,在较大程度上提高了bin文件的烧写速度(4MB大小bin文件可缩短至20秒左右);另一方面,提供了一种远程更新Flash的方法,可脱离JTAG接口,同时避免固件升级时对产品进行拆解。

29.2 基本原理

      首先,在ZYNQ的ARM中基于LWIP库建立一个TCP Server,板卡通过网线与电脑连接。在电脑中通过网络调试助手以TCP Client模式与ZYNQ中的TCP Server建立TCP连接。然后,通过网络调试助手将BOOT.bin文件以二进制形式发送至TCP Server,并存储在ZYNQ所连接的DDR中。最后,当TCP Server接收完bin文件所有的数据后,网络调试助手发送烧写启动命令,将bin文件的数据按顺序一一连续写入QSPI Flash中,随后再全部读出与所接收的bin文件进行一一比对检验。断电重启板卡,便可验证bin文件的更新。

29.3 Bin文件

      在SDK中所生成的BOOT.bin文件为普通二进制文件,通过UltraEdit或Binary Viewer软件可打开并查看bin文件的内容。将bin文件中所有的数据按顺序一一连续写入QSPI Flash中,即可完成bin文件的烧写,也就是说Flash中的数据与bin文件中的数据完全是一一对应的。由此可见,烧写bin文件的原理并不复杂,不存在类似编码、解码的过程,且与SDK中的“Program Flash”的所完成的功能相同。使用Binary Viewer软件打开查看bin文件的效果如下图所示。

6464bbe0d99880ccda99164f4e9a2ad0604.jpg

29.4 QSPI Flash

      Flash在写入数据之前必须先进行擦除(Erase),擦除过程以扇区(Sector)为单位。然后以页(Page)为单位,依次将数据写入Flash中连续的各页。

      以米联ZYNQ开发板所使用的QSPI Flash:S25FL256S为例。Sector的大小为64KB,Page的大小为256B。另外,还存在两个重要参数:单位Sector擦除时间和单位Page写入时间,这决定了Flash的烧写速度。S25FL256S所对应的单位Sector擦除时间为130ms,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值