技术标签: stm32 网络 bootloader tftp iap STM32 TFTP
基于TFTP文件传输协议,实现STM32F407局域网内远程网络升级。单片机与网络IC均采用正点原子的STM32F407探索者,采用RAW LWIP例程进行移植,采用lwip1.4.1版本。
在学习本技术前,应以熟悉TCP/IP中UDP协议,面向无连接,可支持同时多设备在线同时TFTP远程升级。
BootLoader_TFTP程序下载:
APP应用程序:
Tftpd64工具:
TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。(百度百科)
重点了解:TFTP端口号69;TFTP基于UDP协议;TFTP操作码01-05;TFTP错误码01-07;TFTP各数据包,TFTP与FTP以及TFTP优势,等。
单片机以客户端模式向TFTP服务器请求数据包;TFTP服务器收到请求后,开启一个客户端(可多个客户端)随机端口,连接到单片机服务端,并向单片机发送数据包1;单片机收到数据包1并完成处理后,向服务器返回收到数据包1确认消息。
若TFTP服务器没有收到ACK确认码,或单片机收到数据包错误,如下图:
开启WIN10下FTP服务:
配置本机电脑开启FTP传输协议(以WIN10_64位为例),“控制面板--》程序--》启用或关闭windows功能”,找到Internet information service(信息服务),并选中“FTP服务”、“FTP扩展性”和“IIS管理控制台”前的复选框,点击“确定”,
完成配置后,重启电脑。
下载“Tftpd64”应用,可作为Windows的TFTP服务器使用。
下载地址:...
TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP 协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。
(1)安装xinetd “sudo apt-get install xinetd”
(2)安装tftp和tftpd “sudo apt-get install tftp tftpd”
(3)简历tftp的配置文件 “vi /etc/xinetd.d/tftp” 必须严格按照下面的格式输入
其中server_args 设置的/var/tftpboot 目录是tftp 服务器的目录,TFTP 客户端就是从这个目录里面获取服务器上的文件的
(4)新建tftp服务器目录 mkdir /var/tftpboot
(5)设置 /var/tftpboot 的访问权限为 777
(6)重启xinetd服务 “sudo /etc/init.d/xinetd restart”
根据上述操作,完成TFTP服务器搭建,并完成TFTP服务器配置。
linux系统建议采用静态IP。
服务器测试
(1)在/var/tftpboot 下面建立一个文件test,在里面输入tftptest success
(2)开启另外一个终端 输入 “tftp 127.0.0.1”
(3)输入get test
(4)通过ls 可以看到下载下来的那个文件 通过cat 输出文件内容
————————————————
原文链接:https://blog.csdn.net/zhuisaozhang1292/article/details/83047365
关于服务器上文件上传,前期可采用U盘,或TFTP命令来上传升级文件到服务器。
使用两条TFTP命令:
TFTP -i host GET source
TFTP -i host PUT source
将本地文件上传到TFTP服务器,具体操作如下:
host为服务器服务器IP地址。
将TFTP服务器文件下载到本地,具体操作如下:
推荐使用wireshark , 具体使用,参考其他
下载地址:...
使用网络抓包工具,进行抓包分析数据,如下:
本试验使用的网络芯片为LAN8720, 产品实际使用的是DP83848网络芯片,如有需求请联系博主。
LAN
修改tftp_example.c文件中的下载 文件名,目标IP
修改lwip_comm.c文件中的服务器IP,本地IP,子网掩码,默认网关
应用程序应注意首地址起始位置,内存映射等问题。(参考正点原子的IAP程序)
由于在BootLoader中将APP应用程序下载到0x08010000地址处(可修改),所以此处填写0x8010000。
偏移量设置为APP应用程序首地址:0x08010000
将RTC.bin放到服务器上,烧录BootLoader程序:
完成测试,速度还可以。
最好搭载W25QXX Flash与网络协议,做标志位判断,来判断是否升级APP应用程序。
因使用UDP方式,用于搭载本地服务器的设备。UDP外网技术涉及UDP穿透打洞技术,难以进行外网远程网络升级。
文章浏览阅读119次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼/***Getaparametervalue**@paramkeyString*@paramdefString*@returnString*/publicStringgetParameter(Stringkey,Stringdef){returnisStandalone?System.getProperty(ke..._java http隧道
文章浏览阅读913次。IP主机名备注192.168.117.14keepalived-master主节点192.168.117.15keepalived-slaver备节点192.168.117.100VIP1.主备节点均安装keepalived# yum install -y keepalived httpd2.主备节点均修改keepalived日志存放路径..._keepalived sendmail
文章浏览阅读469次。--==========================================--SPFILE错误导致数据库无法启动(ORA-01565)--========================================== SPFILE错误导致数据库无法启动 SQL> startup ORA-01078: failurein proce_ora01565 ora27046
文章浏览阅读6.1k次,点赞2次,收藏54次。功能测试基础知识总结_功能测试
文章浏览阅读3.2k次,点赞3次,收藏2次。pg 中文首字母排序_pg中文排序
文章浏览阅读3.1w次,点赞23次,收藏109次。本文主要讲解CONVERT函数_mysql convert
文章浏览阅读8.6k次,点赞2次,收藏2次。HTML5 的视频播放事件想必大家已经期待很久了吧,在HTML4.1、4.0之前我们如果在网页上播放视频无外乎两种方法: 第一种:安装FLASH插件或者微软发布的插件 第二种:在本地安装播放器,在线播放组件之类的 因为并不是所有的浏览器都安装了FLASH插件,就算安装也不一定所有的都能安装成功。像苹果系统就是默认禁用FLASH的,安卓虽然一开始的时候支持FLASH,但是在安卓4.0以后也开始不_微信开发者工具视频快进
文章浏览阅读5.4k次,点赞3次,收藏4次。在使用redis的过程常见错误总结1.JedisConnectionException Connection Reset参考这边文章:Connection reset原因分析和解决方案https://blog.csdn.net/cwclw/article/details/527971311.1问题描述Exception in thread "main" redis.clients...._jedisconnectionexception: java.net.socketexception: connection reset
文章浏览阅读8.3k次,点赞8次,收藏42次。目录1.Lua垃圾回收算法原理简述2.Lua垃圾回收中的三种颜色3.Lua垃圾回收详细过程4.步骤源码详解4.1新建对象阶段4.2触发条件4.3 GC函数状态机4.4标记阶段4.5清除阶段5.总结参考资料lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前..._lua5.3 gc
文章浏览阅读511次。最近家中的潮人,老妈闲着没事干,开始学玩电脑,引起他的各种好奇心。如看看新闻,上上微信或做做其他的事情。但意料之中的是电脑上会莫名出现各种问题?不翼而飞的图标?照片又不见了?文件被删了,卡机或者黑屏,无声音了,等等问题。常常让她束手无策,求助于我,可惜在电话中说不清,往往只能苦等我回家后才能解决,那种开心乐趣一下子消失了。想想,这样也不是办法啊, 于是,我潜心寻找了两款优秀的远程控制软件。两款软件...
文章浏览阅读1.8k次。二.初始化工作空间三.设置下载地址四.下载功能包此处可能会报错,请看:rosdep update遇到ERROR: error loading sources list: The read operation timed out问题_DD᭄ꦿng的博客-程序员宅基地接下来一次安装所有功能包,注意对应ROS版本 五.编译功能包isolated:单独编译各个功能包,每个功能包之间不产生依赖。编译过程时间比较长,可能需要几分钟时间。此处可能会报错:缺少absl依赖包_ros18.04 安装ca
文章浏览阅读4.1k次,点赞3次,收藏7次。Haobor2.2.1配置(trivy扫描器、镜像签名)docker-compose下载https://github.com/docker/compose/releases安装cp docker-compose /usr/local/binchmod +x /usr/local/bin/docker-composeharbor下载https://github.com/goharbor/harbor/releases解压tar xf xxx.tgx配置harbor根下建立:mkd_init error: db error: failed to download vulnerability db: database download