RT-Thread中使用lwip自带的tftp功能传输文件

RTThread物联网操作系统 2023-07-24 19:10

TFTP协议


TFTP(简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行文件传输的协议,端口号为69号。TFTP基于UDP协议,开销小、效率高,但是TFTP只能从服务器上获得或者写入文件,不能列出目录,也不进行认证。


硬件框图


常见的组成框图差异不大,以STM32H7为例,ARM内核与MAC控制器集成在一个MCU芯片中,外部与PHY芯片相连,经过网络变压器之后通过网线连接到PC端,后者是通过无线WIFI的方式连到远端服务器。


而从操作系统的层面来看,硬件框图就显得不重要了,对于rt-thread来说,只关注协议应用本身,与硬件的交互在移植的时候做好适配即可。下面以RT-Thread源码包中的QEMU虚拟开发板为例,介绍如何使用lwip自带的tftp功能传输文件。


RT-Thread构建框架


RTThread源码包提供了完整的操作系统,从内核再到组件服务层,以及经过认证的第三方的软件包,非常便于开发人员进行应用开发。开发者只需要关心和使用网络应用层提供的网络接口,而无需关心底层具体网络 协议栈类型和实现,使用tftp传输文件需要提前挂载好文件系统,本文不多叙述,我们主要关注Lwip中的网络app。


修改构建配置


在lwip的apps文件夹下,有tftp相关的源文件,但是rtthread并未在构建工具中开放给用户,以2.0.3版本为例,打开对应的SConscript文件,路径为

1rt-thread/components/net/lwip/lwip-2.0.3/SConscript

61行到85行内容为:

1# The set of source files associated with this SConscript file.
2path = [GetCurrentDir() + '/src/include',
3    GetCurrentDir() + '/src/include/ipv4',
4    GetCurrentDir() + '/src/include/netif']
5if not GetDepend('RT_USING_SAL'):
6    path +
= [GetCurrentDir() + '/src/include/posix']
7if GetDepend(['RT_LWIP_SNMP']):
8    src +
= snmp_src
9    path += [GetCurrentDir() + '/src/apps/snmp']
10if GetDepend(['RT_LWIP_PPP']):
11    src +
= ppp_src
12    path += [GetCurrentDir() + '/src/netif/ppp']
13if GetDepend(['RT_USING_LWIP_IPV6']):
14    src +
ipv6_src
15if GetDepend(['RT_LWIP_USING_PING']):
16    src +
= Glob('src/apps/ping/ping.c')
17group = DefineGroup('lwIP', src, depend = ['RT_USING_LWIP''RT_USING_LWIP203'], CPPPATH = path)
18Return('group')
这段脚本的功能是指,如果定义了相应的宏定义,则把这部分的源代码添加到工程中,参与编译。但是从这里来看,是没有添加lwip自带的tftp的部分的,因此需要修改这部分脚本,增加一个宏的判断,以及添加tftp文件夹下的.c文件,修改内容为:


1....
2if GetDepend(['RT_LWIP_USING_PING']):
3    src +
= Glob('src/apps/ping/ping.c')
4if GetDepend(['RT_LWIP_USING_TFTP']):
5    src +
= Glob('src/apps/tftp/*.c')    
6group = DefineGroup('lwIP', src, depend = ['RT_USING_LWIP''RT_USING_LWIP203'], CPPPATH = path)

构建的脚本修改完成,还需要修改宏的添加,只有添加了RT_LWIP_USING_TFTP宏,才会把tftp下的c文件添加到工程中,这里有两种方法,一种是直接在工程根目录下的rtconfig.h中直接添加宏定义

1#define RT_LWIP_USING_TFTP

另一种是修改menuconfig菜单选项,增加宏的设置,修改方法为打开rt-thread/components/net/lwip/Kconfig文件,第8行左右,增加RT_LWIP_USING_TFTP的设置

1....
2if RT_USING_LWIP
3    config RT_LWIP_USING_TFTP
4        bool "Use tftp app"
5        default n
6    config RT_USING_LWIP_LOCAL_VERSION
7        bool "Use LwIP local version only"
8        default n
9        help
10            If don't select this option, both local version and upstream
11 ....
Kconfig修改完成之后,在配置界面就会多出一个菜单选项,使能该菜单,然后使用scons构建就会自动在rtconfig.h文件中增加这个宏。


效果演示


进入msh终端,输入help可查看支持的功能,其中 tftp_server 为以上操作实现的功能


输入tftp_server并回车运行后,就启动了tftp服务器,输入ifconfig可查看开发板的ip地址,我的是192.168.75.130


在电脑端低开tftp工具,作为tftp客户端,在Host输入开发板的ip,端口设置为69,选择一个电脑本地的文件然后点击put即可将文件发送到开发板,如我电脑上的TOP.bin文件



传输完成后,在开发板msh终端输入ls即可查看刚才传输的文件。




原文链接:http://club.rt-thread.org



———————End——————




👇 点击阅读原文进入官网

RTThread物联网操作系统 帮助您了解RT-Thread相关的资讯.
评论 (0)
  • 文/郭楚妤编辑/cc孙聪颖‍在人工智能与实体经济深度融合的时代浪潮中,究竟何种 AI 产品,方能切实契合用户对美好未来的向往与期待?3 月 20 日,备受全球瞩目的中国家电及消费电子博览会(AWE2025)于上海新国际博览中心盛大开幕。展会首日,长虹重磅推出首款治愈系 AI TV、客餐厅 PRO 共享空调,以及面向低空经济领域的通信模组等一系列创新产品。这一举动充分展现了长虹在家电领域全面推进 AI 化的坚定决心,以及为低空经济等新兴产业提供有力科技支撑的硬核实力 。“首发” 新品,领航用户价值
    华尔街科技眼 2025-03-21 21:13 54浏览
  • 在智慧城市领域中,当一个智慧路灯项目因信号盲区而被迫增设数百个网关时,当一个传感器网络因入网设备数量爆增而导致系统通信失效时,当一个智慧交通系统因基站故障而导致交通瘫痪时,星型网络拓扑与蜂窝网络拓扑在构建广覆盖与高节点数物联网网络时的局限性便愈发凸显,行业内亟需一种更高效、可靠与稳定的组网技术以满足构建智慧城市海量IoT网络节点的需求。星型网络的无线信号覆盖范围高度依赖网关的部署密度,同时单一网关的承载设备数量有限,难以支撑海量IoT网络节点的城市物联系统;而蜂窝网络的无线信号覆盖范围同样高度依
    华普微HOPERF 2025-03-24 17:00 150浏览
  • 无论你是刚步入职场的新人,还是已经有几年经验的职场老手,培养领导力都是职业发展中一个至关重要的环节。拥有良好的领导能力不仅能让你从人群中脱颖而出,也能让你在团队中成为一个值得信赖、富有影响力的核心成员。什么是领导力?领导力并不仅仅意味着“当老板”或者“发号施令”。它更多地是一种能够影响他人、激发团队潜能,并带领大家实现目标的能力。一位优秀的领导者需要具备清晰的沟通能力、解决问题的能力,以及对人心的深刻理解。他们知道如何激励人心,如何在压力下保持冷静,并能在关键时刻做出正确的决策。如何培养领导力?
    优思学院 2025-03-23 12:24 80浏览
  • 今年全国两会期间,“体重管理”和“育儿”整体配套政策引发了持久广泛关注。从“吃”到“养”,都围绕着国人最为关心的话题:健康。大家常说“病从口入”,在吃这件事上,过去大家可能更多是为了填饱肚子,如今,消费者从挑选食材到厨电都贯彻着健康的宗旨,吃得少了更要吃得好了。这也意味着在新消费趋势下,谁能抓住众人的心头好,就能带起众人的购买欲望,才能在新一轮竞争中脱颖而出。作为家电行业的风向标,在2025年中国家电及消费电子博览会(AWE)上,这两个话题也被媒体和公众频繁提及。深耕中国厨房三十余年的苏泊尔再次
    华尔街科技眼 2025-03-22 11:42 66浏览
  • 近年来,随着半导体产业的快速发展和技术的不断迭代,物联网设备种类繁多(如智能家居、工业传感器),对算力、功耗、实时性要求差异大,单一架构无法满足所有需求。因此米尔推出MYD-YT113i开发板(基于全志T113-i)来应对这一市场需求。米尔基于全志T113-i核心板及开发板part 01  T113-i芯片及OpenAMP简介T113-i芯片简介T113-i由两颗ARM A7 、一颗C906(RISC-V)和一颗DSP(HIFI 4)组成。C906(RISC-V核)特性:主频
    米尔电子嵌入式 2025-03-21 16:28 40浏览
  • 在人工智能与物联网技术蓬勃发展的今天,语音交互已成为智能设备的重要功能。广州唯创电子推出的WT3000T8语音合成芯片凭借其高性能、低功耗和灵活的控制方式,广泛应用于智能家居、工业设备、公共服务终端等领域。本文将从功能特点、调用方法及实际应用场景入手,深入解析这款芯片的核心技术。一、WT3000T8芯片的核心功能WT3000T8是一款基于UART通信的语音合成芯片,支持中文、英文及多语种混合文本的实时合成。其核心优势包括:高兼容性:支持GB2312/GBK/BIG5/UNICODE编码,适应不同
    广州唯创电子 2025-03-24 08:42 152浏览
  • 人形机器人产业节奏预估:2024年原型机元年,2025年小规模量产元年。当宇树科技H1人形机器人以灵动的手部动作在春晚舞台上演创意融合舞蹈《秧Bot》,舞出"中国智造"时,电视机前十几亿观众第一次深刻意识到:那个需要仰望波士顿动力的时代正在落幕。*图源:宇树科技短短数周后,宇树G1机器人又用一段丝滑的街舞在网络收割亿级播放量,钢铁之躯跳出赛博朋克的浪漫。2月11日,宇树科技在其京东官方旗舰店上架了两款人形机器人产品,型号分别为Unitree H1和G1。2月12日,9.9万元的G1人形机器人首批
    艾迈斯欧司朗 2025-03-22 21:05 121浏览
  • 核心板简介创龙科技 SOM-TL3562 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 ARM C ortex-A53 + 单核 ARM Cortex-M0 全国产工业核心板,主频高达 2.0GHz。核心板 CPU、R OM、RAM、电源、晶振等所有元器件均采用国产工业级方案,国产化率 100%。核心板通过 LCC 邮票孔 + LGA 封装连接方式引出 MAC、GMAC、PCIe 2.1、USB3.0、 CAN、UART、SPI、MIPI CSI、MIPI
    Tronlong 2025-03-24 09:59 161浏览
  • 文/Leon编辑/cc孙聪颖‍去年,百度公关部副总裁璩静的争议言论闹得沸沸扬扬,最终以道歉离职收场。时隔一年,百度的高管又出事了。近日,“百度副总裁谢广军女儿开盒孕妇”事件登上热搜,持续发酵,引起网友对百度数据安全性的怀疑。3月19日晚间,百度正式发布声明,表示坚决谴责窃取和公开他人隐私的网络暴力行为,同时强调,百度内部实施匿名化、假名化处理,经查验,泄露数据并非来自百度,而是海外的社工库,“当事人承认家长给她数据库”为不实信息,针对相关谣言百度已经向公安机关报案。然而,并非所有网友都对这份声明
    华尔街科技眼 2025-03-21 21:21 104浏览
  •       知识产权保护对工程师的双向影响      正向的激励,保护了工程师的创新成果与权益,给企业带来了知识产权方面的收益,企业的创新和发明大都是工程师的劳动成果,他们的职务发明应当受到奖励和保护,是企业发展的重要源泉。专利同时也成了工程师职称评定的指标之一,专利体现了工程师的创新能力,在求职、竞聘技术岗位或参与重大项目时,专利证书能显著增强个人竞争力。专利将工程师的创意转化为受法律保护的“无形资产”,避免技术成果被他人抄袭或无偿使
    广州铁金刚 2025-03-25 11:48 94浏览
  • 在智能终端设备快速普及的当下,语音交互已成为提升用户体验的关键功能。广州唯创电子推出的WT3000T8语音合成芯片,凭借其卓越的语音处理能力、灵活的控制模式及超低功耗设计,成为工业控制、商业终端、公共服务等领域的理想选择。本文将从技术特性、场景适配及成本优势三方面,解析其如何助力行业智能化转型。一、核心技术优势:精准、稳定、易集成1. 高品质语音输出,适配复杂环境音频性能:支持8kbps~320kbps宽范围比特率,兼容MP3/WAV格式,音质清晰自然,无机械感。大容量存储:内置Flash最大支
    广州唯创电子 2025-03-24 09:08 169浏览
  • 精益管理的理念和思维是源于日本的丰田模式,虽然精益管理有很多有效而丰有智慧的思想和方法,但在欧美企业要应用精益也并不容易,始终东西方的文化、人民习性都会存在着一点差异。不过,客观来说,精益管理是其优缺点的,以下,优思学院[1]综合吉朱·安东尼(Jiju Antony)教授《中小企业精益六西格玛》一书中的研究略作说明。精益的优点以下是精益生产系统的一些优点(Schonberger,2008):1)积极的劳动力效应。精益战略往往基于员工的主动性,那些从事实际工作的员工才是改善工作的最具创造力的人员。
    优思学院 2025-03-21 15:09 31浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦