RT-Thread ART-PI 学习笔记:FTP功能和RTTstudio Git插件使用和配置
Posted 张竞豪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RT-Thread ART-PI 学习笔记:FTP功能和RTTstudio Git插件使用和配置相关的知识,希望对你有一定的参考价值。
前言
在之前的学习中,初步掌握了对文件系统的使用和配置,并将AP6126作为WiFi网卡上网。SD卡和flash作为文件的存储载体,若想向其中置入文件,SD卡通常采用读卡器的方式向其中置入文件,而flash需要通过更为复杂些烧写算法才能向flash里置入文件。rtthread提供了FTP服务器功能的软件包,可以在嵌入式平台上开启一个FTP服务器,电脑端通过网络和FTP工具向板子上已经挂载到文件系统的SD卡和flash上烧写文件。
同时本文还将记录RT-Thread Git工具的使用
在实验过程中也借鉴了不少大佬博客里的操作,在这里感谢他们的分享
参考链接
【STM32H750】玩转ART-Pi(六)——添加FTP服务器
代码下载
本文演示代码:https://download.csdn.net/download/weixin_42487906/21110783?spm=1001.2014.3001.5503
前期准备
软件准备
- RT-Thread Studio 2.1.1:一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。官网链接
- Xshell或类似的串口调试工具
- Xftp或teamView等电脑端ftp工具
硬件准备
- RT-Thread 推出的ART-PI STM32H750开发板
实验步骤
创建项目
创建基于开发板的项目,BSP版本为1.2.1,基于art-pi-wifi示例创建项目,这样就不用手动配置wifi模块了,并且示例项目带自动重连功能
![](https://image.cha138.com/20221206/4e5c15ed5b43449c89dadcceb3383035.jpg)
编译进开发板后串口持续显示没有找到wifi,并且阻碍finsh的输入,下面分析原因
![](https://image.cha138.com/20221206/0177e8f4dcab4073979200aec12ce959.jpg)
这块开发板我再其他地方使用过,链接的是当时那个地方的wifi,wifi帐号和密码已经被记录在flash里面,为了重新链接我现在位置的wifi,我使用另外一个串口输入输出不冲突的串口终端链接新的wifi如下图
![](https://image.cha138.com/20221206/ccd436470f5242dba85af62e7b0b2e19.jpg)
新的wifi链接成功
![](https://image.cha138.com/20221206/78d50672dc6541d895725c14312fb12c.jpg)
配置文件系统
使能sdcard和flash文件系统
![](https://image.cha138.com/20221206/e2e820a359ec4ff0a25b08ef3e5d0db9.jpg)
软件包中多出了littlefs这个文件系统,他是用来挂载板子上16MB的NOR Flash的其中一个分区的
![](https://image.cha138.com/20221206/8450d18635b447319f7c1db113e298f7.jpg)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V6XJ7qxn-1629124217841)(https://raw.githubusercontent.com/FranHawk/blogpic/main/image-20210815111054164.png)]
16MB的NOR FLASH分区如下图,其中easyflash也管理着其中的一个分区,可以用来保存wifi密码等一些参数
而fliesystem分区就是被littlefs文件系统管理,最后将这个分区挂载到\\flash这个文件夹中
![](https://image.cha138.com/20221206/2e63d7f3a2514f71b8448c24f17d5906.jpg)
编译并烧写程序
![](https://image.cha138.com/20221206/35817f5a861e4c1a939b93e27270fd83.jpg)
mount to ‘/flash’ success,现在是没插sd卡,虽然ls发现根文件系统中有两个目录,但是只有flash实现了挂载,没有插sd卡所以sdcard是不能用的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RyUw90yZ-1629124217843)(https://raw.githubusercontent.com/FranHawk/blogpic/main/image-20210815112146462.png)]
若sd卡插上了串口终端会显示上面的信息
配置FTP服务器
使能FTP Library
![](https://image.cha138.com/20221206/72a126b1eb5d4260b7cb2e95549db05d.jpg)
使用说明如下图
![](https://image.cha138.com/20221206/70cf88ded49a4f07bbe6da24a93be3dc.jpg)
根据使用说明,在mian.c中添加如下代码
![](https://image.cha138.com/20221206/4039bab3452d4e139c3b7e7a817a8a6f.jpg)
#include <ftp.h>
#ifdef ART_PI_USING_FTP_LIB
int ftp_server()
ftp_init(2048,27,100);
return 0;
MSH_CMD_EXPORT(ftp_server,start ftp server)
#endif
编译并烧写进板子
![](https://image.cha138.com/20221206/e3f02586a2f0460080d009d4b1aef66c.jpg)
命令行输入ftp_server启动FTP服务器,看到板子连上wifi,ip地址为192.168.1.103
电脑端连接FTP服务器
电脑和开发板连接同一个wifi
打开xftp或者类似的ftp工具,输入开发板的ip地址,输入用户名,密码,默认都是loogg
![](https://image.cha138.com/20221206/68978210048c4fdb99e7f7b5cf9dc02c.jpg)
![](https://image.cha138.com/20221206/77d8cbd140934ab1a151cb487af8a349.jpg)
记得不要勾选 使用被动模式,点击连接,就可以访问开发板上的文件系统了,可以相互传输文件
![](https://image.cha138.com/20221206/2520f62969504ab1857e1c9426fe18d8.jpg)
RT-Thread Git工具的使用
git工具可以便捷地向管理软件版本,这里记录git工具的使用过程
在工程右键打开小组,选择共享项目
![](https://image.cha138.com/20221206/eb822f10544346a48be21cd13e6a3a83.jpg)
创建代码仓库
![](https://image.cha138.com/20221206/73473b4ee000428aa6a414bc13790735.jpg)
然后点击完成,这时候小组下就出现了git的相关操作
![](https://image.cha138.com/20221206/e6b623ce8687454e9bbf5629d9695040.jpg)
点击提交
![](https://image.cha138.com/20221206/5562cce14f004e89b8b471255e018c41.jpg)
输入落实消息,点击commit提交到本地仓库,若配置了远程仓库如github,可以点击commit and push 提交到远端仓库
![](https://image.cha138.com/20221206/0ddceb85aa7f4653bdf6451698c36856.jpg)
![](https://image.cha138.com/20221206/24c5dacb68554b52bee90d1114a36adc.jpg)
在Show in history中可以看到提交记录
在github上创建一个代码仓库,clone这个仓库的git地址
![](https://image.cha138.com/20221206/87fa3a69b2b546a29844ebd95be71703.jpg)
在rtt studio的git 存储库右键远程仓库,点击create remote
![](https://image.cha138.com/20221206/78168865c7d34e17800be846e9b4f79b.jpg)
![](https://image.cha138.com/20221206/fe9d13ba05be4cd1bb575fd393dc3d6f.jpg)
将github仓库地址复制进去,要注意最近github不再允许采用邮箱和密码的方式访问,要申请一个token或ssl密钥,这个要各位再去查下该怎么操作
![](https://image.cha138.com/20221206/329995e9986b4c1ababd2085918eca7d.jpg)
设置完成后点击保存,完成与远程仓库的连接
![](https://image.cha138.com/20221206/75a2b65602ad40fdb99321f1bbc27e6d.jpg)
可以看到已经创建成功
![](https://image.cha138.com/20221206/fe518fa89948452fb8f240332cdaa5b9.jpg)
在小组中点击push,代码上传到github上
![](https://image.cha138.com/20221206/6cc8788372124a508a304bce8d2016c7.jpg)
点击Preview
![](https://image.cha138.com/20221206/44354f8987a64f358f6f383771bc5ec8.jpg)
点击推送
![](https://image.cha138.com/20221206/12f66e0b04704d7498197c7b0c7487f5.jpg)
![](https://image.cha138.com/20221206/a0ac410fa7664c1ab4ac76102a6b238a.jpg)
完成后进入github可以看到已经上传成功
以上是关于RT-Thread ART-PI 学习笔记:FTP功能和RTTstudio Git插件使用和配置的主要内容,如果未能解决你的问题,请参考以下文章
RT-Thread ART-PI 学习笔记:轻量化GUI框架LVGL的使用和配置
RT-Thread ART-PI 学习笔记:轻量化GUI框架LVGL的使用和配置
RT-Thread ART-PI 学习笔记:TouchGFX通过文件系统读取图片
RT-Thread ART-PI 学习笔记:TouchGFX通过文件系统读取图片