TFTP概述 TFTP是一种基于UDP的简单文件传输协议。文件传输由TFTP客户端发起,会向TFTP服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块尽情发送(例如每块含512个字节)。 必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的编块号来实现。数据块小于固定块大小表示文件传输的结束。 图2描述了各种TFTP数据包的格式: 图2 TFTP数据包 表1列出了TFTP操作码。 使用TFTP为AT32F407实现IAP 此IAP实现由基于LwIP TCP/IP栈的TFTP服务器组成。 此服务器会对远程TFTP客户端(PC)发来的写请求做出响应。 TFTP读请求会被忽略。 TFTP通常会将接收到的文件写入到文件系统,但是该服务器却并非如此,它会将接受到的数据块写入到MCU FLASH(用户FLASH区域中)。 注:在这个实现过程中,数据块大小固定为512个字节。 图3概述了使用TFTP实现IAP操作的过程。 使用软件 要通过TFTP对IAP进行测试,需执行以下步骤: 1. 在iap.h文件中,取消USE_IAP_TFTP选项的注释。 2. 重新编译软件。使用生成的映射文件,确保IAP代码区域之间没有重叠(从地址0x0开始),而且用户FLASH区域从以下地址开始:APP_START_SECTOR_ADDR(在iap.h中定义)。 3. 在AT32 FLASH中编写并运行软件程序。 4. 要进入IAP模式,需要在按住开发版上的USER Key。 5. 分配完IP后(可以是静态或动态地址),用户即可启动IAP流程。 6. 在PC侧,打开TFTP客户端(例如Tftpd64),然后配置TFTP服务器地址(Tftpd64中的主机地址) 7. 单击Tftpd64实用程序中的Put(写入)按钮,启动文件写请求 8. 在IAP操作结束时,可以复位开发板并在AT32 FLASH中运行刚刚编写的应用程序
|