火狐电竞使用MCU以太网接口实现IAP
发布时间:2022-10-04 03:20:29

  无论是IAP代码还是应用程序代码都位于微控制器的内置FLASH中,IAP代码通常存储在MCU FLASH的第一页,而用户应用程序代码则占据剩余的FLASH区域。 图1介绍了IAP操作流程

  如果有以太网可用,则它通常是嵌入式系统中实现IAP功能的首选接口,其优势包含:

  本应用笔记将介绍两种使用以太网通信外设在AT32F407上实现IAP的解决方案:

  这两种解决方案均基于LwIP栈(2.1.2), 它是轻量级的TCP/IP协议栈

  使用TFTP实现IAP的方法广泛应用于需要具有固件升级功能的嵌入式系统应用中(例如,嵌入式Linuxbootloader中)。

  TFTP是一种在UDP传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。为实现IAP,需要在LwIP协议栈上实现一个简单的TFTP服务器,服务器只须处理来自PC的TFTP客户端的写入请求即可。

  使用HTTP协议进行固件升级没有使用TFTP常见,但是在需要通过Internet进行远程编程时,这种解决方案就显得极为有用。这时,需要使用TCP传输协议来实现HTTP服务。

  本文档中的后续章节将详细介绍这两种IAP方法的实现,并会对如何使用软件进行说明。

  TFTP是一种基于UDP的简单文件传输协议。文件传输由TFTP客户端发起,会向TFTP服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块尽情发送(例如每块含512个字节)。

  必须在每个发出的数据块都得到接收方确认后火狐动态,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的编块号来实现。数据块小于固定块大小表示文件传输的结束。

  TFTP通常会将接收到的文件写入到文件系统,但是该服务器却并非如此火狐电竞,它会将接受到的数据块写入到MCU FLASH(用户FLASH区域中)。

  2. 重新编译软件。使用生成的映射文件,确保IAP代码区域之间没有重叠(从地址0x0开始),而且用户FLASH区域从以下地址开始:APP_START_SECTOR_ADDR(在iap.h中定义)。

  6. 在PC侧,打开TFTP客户端(例如Tftpd64),然后配置TFTP服务器地址(Tftpd64中的主机地址)

  8. 在IAP操作结束时,可以复位开发板并在AT32 FLASH中运行刚刚编写的应用程序

  RFC1867中定义了使用HTTP进行文件上传。此文件上传方法是基于HTTP表单。发送原始二进制数据时,要使用HTTP POST方法而不是GET方法。

  注:在发送文件数据前,Web客户端会首先发送HTTP头文件数据,其中包含诸如文件名称和内容长度等信息,Web 服务器必须对其中的一些信息进行解析。

  在浏览器中输入的AT32的IP地址后,将显示登录Web页面(图8)。此登录Web页面只有已获授权的用户才能使用IAP文件上传功能。 图8 登录web页面

  2. 如果User ID(用户ID)或Password(密码)不正确,登录Web页面会重新加载火狐电竞。

  单击Upload(上传)按钮后(参见图x),将向服务器发出POST请求。这时,服务器开始擦除用户FLASH区域的全部内容,等待接受二进制文件原始数据。然后将街收到的数据写入用户FLASH区域。

  注意,要接收的数据总长度信息将从传输开始时发出的HTTP头文件数据中提取。

  在IAP操作结束后,Web页面将只是IAP操作成功,同时显示一个可用于复位MCU的按钮。

  2. 重新编译软件,使用生成的映射文件,确保IAP区域代码之间没有重叠(从地址0x0开始),而且用户FLASH区域从以下地址开始:APP_START_SECTOR_ADDR(在iap.h中定义)。

  7. 会显示登录Web页面。在User ID(用户ID)字段中输入”user”,在Password(密码)字段中输入”at32”,然后按下Login(登录)按钮。

  8. IP操作结束后,将加载新的Web页面,只是文件上传操作已经成功完成。

  9. 可以按下Reset MCU(复位MCU)按钮复位MCU,然后在AT32 FLASH中运行刚刚编写的应用程序。

  Internet浏览器(Microsoft Internet Explorere或Mozilla Firefox)会在上传的二进制文件的末尾添加一个随机边界标记(根据RFC1521规定,此标记不得超过72个字节)。在最新的IAP软件版本中,并没有删除此边界标记,而是在空间足够的情况下将其存储在FLASH中。如果没有足够空间火狐电竞,则不会在FLASH中写火狐电竞入额外字节,也不会返回错误。

  IP地址可以设置为静态地址,也可以设置为由DHCP服务器分配的动态地址。默认的静态地址为:192.168.81.37。

  1. 编译/链接的软件必须从用户FLASH区域的起始地址开始运行(此地址应与iap.h的

  A. 在应用程序代码中,使用misc.h/.c驱动程序的NVIC_SetVectorTable函数来重新定位应用程序加载地址的向量表。