一、简介
TFTP简介:https://blog.csdn.net/young2415/article/details/91125718
二、步骤
1、TFTP是基于UDP的协议,所以要在LWIP配置中使能LWIP功能
2、配置ETH
注意stm32cube自动生成的引脚可能和实际电路不匹配,要注意下。
3、配置lwip
使能UDP,使用静态Ip
4、使能TFTP
三、调试过程
1、配置客户端
server interfaces 是电脑的ip,host是stm32设备的ip,local file选择要升级的bin文件,block size选择512.确认无误后点击Put。
2、串口软件会打印相应的提示
打开文件 RTC.bin *
打开模式 octet
写文件
开始擦除Flash 时间较长
Write File Init Succes
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020000
写FLASH成功 下一次地址 :0X08020200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020200
写FLASH成功 下一次地址 :0X08020400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020400
写FLASH成功 下一次地址 :0X08020600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020600
写FLASH成功 下一次地址 :0X08020800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020800
写FLASH成功 下一次地址 :0X08020A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020A00
写FLASH成功 下一次地址 :0X08020C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020C00
写FLASH成功 下一次地址 :0X08020E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08020E00
写FLASH成功 下一次地址 :0X08021000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021000
写FLASH成功 下一次地址 :0X08021200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021200
写FLASH成功 下一次地址 :0X08021400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021400
写FLASH成功 下一次地址 :0X08021600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021600
写FLASH成功 下一次地址 :0X08021800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021800
写FLASH成功 下一次地址 :0X08021A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021A00
写FLASH成功 下一次地址 :0X08021C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021C00
写FLASH成功 下一次地址 :0X08021E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08021E00
写FLASH成功 下一次地址 :0X08022000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022000
写FLASH成功 下一次地址 :0X08022200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022200
写FLASH成功 下一次地址 :0X08022400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022400
写FLASH成功 下一次地址 :0X08022600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022600
写FLASH成功 下一次地址 :0X08022800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022800
写FLASH成功 下一次地址 :0X08022A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022A00
写FLASH成功 下一次地址 :0X08022C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022C00
写FLASH成功 下一次地址 :0X08022E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08022E00
写FLASH成功 下一次地址 :0X08023000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023000
写FLASH成功 下一次地址 :0X08023200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023200
写FLASH成功 下一次地址 :0X08023400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023400
写FLASH成功 下一次地址 :0X08023600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023600
写FLASH成功 下一次地址 :0X08023800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023800
写FLASH成功 下一次地址 :0X08023A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023A00
写FLASH成功 下一次地址 :0X08023C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023C00
写FLASH成功 下一次地址 :0X08023E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08023E00
写FLASH成功 下一次地址 :0X08024000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024000
写FLASH成功 下一次地址 :0X08024200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024200
写FLASH成功 下一次地址 :0X08024400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024400
写FLASH成功 下一次地址 :0X08024600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024600
写FLASH成功 下一次地址 :0X08024800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024800
写FLASH成功 下一次地址 :0X08024A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024A00
写FLASH成功 下一次地址 :0X08024C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024C00
写FLASH成功 下一次地址 :0X08024E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08024E00
写FLASH成功 下一次地址 :0X08025000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025000
写FLASH成功 下一次地址 :0X08025200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025200
写FLASH成功 下一次地址 :0X08025400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025400
写FLASH成功 下一次地址 :0X08025600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025600
写FLASH成功 下一次地址 :0X08025800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025800
写FLASH成功 下一次地址 :0X08025A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025A00
写FLASH成功 下一次地址 :0X08025C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025C00
写FLASH成功 下一次地址 :0X08025E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08025E00
写FLASH成功 下一次地址 :0X08026000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026000
写FLASH成功 下一次地址 :0X08026200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026200
写FLASH成功 下一次地址 :0X08026400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026400
写FLASH成功 下一次地址 :0X08026600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026600
写FLASH成功 下一次地址 :0X08026800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026800
写FLASH成功 下一次地址 :0X08026A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026A00
写FLASH成功 下一次地址 :0X08026C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026C00
写FLASH成功 下一次地址 :0X08026E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08026E00
写FLASH成功 下一次地址 :0X08027000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027000
写FLASH成功 下一次地址 :0X08027200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027200
写FLASH成功 下一次地址 :0X08027400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027400
写FLASH成功 下一次地址 :0X08027600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027600
写FLASH成功 下一次地址 :0X08027800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027800
写FLASH成功 下一次地址 :0X08027A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027A00
写FLASH成功 下一次地址 :0X08027C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027C00
写FLASH成功 下一次地址 :0X08027E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08027E00
写FLASH成功 下一次地址 :0X08028000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028000
写FLASH成功 下一次地址 :0X08028200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028200
写FLASH成功 下一次地址 :0X08028400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028400
写FLASH成功 下一次地址 :0X08028600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028600
写FLASH成功 下一次地址 :0X08028800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028800
写FLASH成功 下一次地址 :0X08028A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028A00
写FLASH成功 下一次地址 :0X08028C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028C00
写FLASH成功 下一次地址 :0X08028E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08028E00
写FLASH成功 下一次地址 :0X08029000
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029000
写FLASH成功 下一次地址 :0X08029200
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029200
写FLASH成功 下一次地址 :0X08029400
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029400
写FLASH成功 下一次地址 :0X08029600
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029600
写FLASH成功 下一次地址 :0X08029800
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029800
写FLASH成功 下一次地址 :0X08029A00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029A00
写FLASH成功 下一次地址 :0X08029C00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029C00
写FLASH成功 下一次地址 :0X08029E00
写文件数据 数据长度 512
开始写FLASH 地址 :0X08029E00
写FLASH成功 下一次地址 :0X0802A000
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802A000
写FLASH成功 下一次地址 :0X0802A200
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802A200
写FLASH成功 下一次地址 :0X0802A400
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802A400
写FLASH成功 下一次地址 :0X0802A600
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802A600
写FLASH成功 下一次地址 :0X0802A800
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802A800
写FLASH成功 下一次地址 :0X0802AA00
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802AA00
写FLASH成功 下一次地址 :0X0802AC00
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802AC00
写FLASH成功 下一次地址 :0X0802AE00
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802AE00
写FLASH成功 下一次地址 :0X0802B000
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802B000
写FLASH成功 下一次地址 :0X0802B200
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802B200
写FLASH成功 下一次地址 :0X0802B400
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802B400
写FLASH成功 下一次地址 :0X0802B600
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802B600
写FLASH成功 下一次地址 :0X0802B800
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802B800
写FLASH成功 下一次地址 :0X0802BA00
写文件数据 数据长度 512
开始写FLASH 地址 :0X0802BA00
写FLASH成功 下一次地址 :0X0802BC00
写文件数据 数据长度 176
开始写FLASH 地址 :0X0802BC00
写FLASH成功 下一次地址 :0X0802BCB0
关闭文件
3、这里使用的升级代码是正点原子的RTC代码,只需要在原有的工程中做一些修改
选择程序起始位置
生成bin文件
修改中断向量表起始位置
五、实验现象
六、源码位置
https://download.csdn.net/download/crjmail/12100183
七、抓包分析
八、可参考代码