2010 7 Doc ID 17570 Rev 1 1/17
AN3226
应用笔记
STM32F107 通过以太网实现在应用中编程 IAP
前言
本应用笔记的目标读者为使用 STM32F107 微控制器的开发者提供了如何使用 STM32F107
以太网接口实现在应用中编程 IAP)的解决方案。
LwIP TCP/IP 协议栈上提供了两种可行的解决方案:
使用 TFTP (简单文件传输协议)的 IAP
使用 HTTP (超文本传输协议)的 IAP
www.st.com
目录 AN3226
2/17 Doc ID 17570 Rev 1
目录
1IAP概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 工作原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 使用 MCU 以太网接口实现 IAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 STM32F107 上通过以太网实现 IAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 使用 TFTP 实现 IAP 的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 使用 HTTP 实现 IAP 的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 使用 TFTP 实现 IAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 TFTP 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 STM32F107 上使 TFTP 实现 IAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 使用软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 使用 HTTP 实现 IAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 HTTP 文件上传概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 STM32F107 上使 HTTP 实现 IAP . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.3 使用软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 已知限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.1 添加到二进制文件的额外字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1 MAC IP 地址设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 STM3210C_EVAL 板上的跳线设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 软件文件结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4 代码量测量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.5 构建 IAP 映像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17