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/20210906/918e1a8db9d4444f99119bf2eb3d96de.jpg)
编译进开发板后串口持续显示没有找到wifi,并且阻碍finsh的输入,下面分析原因
![](https://image.cha138.com/20210906/d35a09e5dda0473da51c966b6c683e89.jpg)
这块开发板我再其他地方使用过,链接的是当时那个地方的wifi,wifi帐号和密码已经被记录在flash里面,为了重新链接我现在位置的wifi,我使用另外一个串口输入输出不冲突的串口终端链接新的wifi如下图
![](https://image.cha138.com/20210906/14747a19e9d344128f32c3bc495ce227.jpg)
新的wifi链接成功
![](https://image.cha138.com/20210906/7fecdba0506e464694960848f5ab3646.jpg)
配置文件系统
使能sdcard和flash文件系统
![](https://image.cha138.com/20210906/c2f944e42e324a16a90709be36b9dd32.jpg)
软件包中多出了littlefs这个文件系统,他是用来挂载板子上16MB的NOR Flash的其中一个分区的
![](https://image.cha138.com/20210906/40988c1cc2b14834aef7e62bac019705.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/20210906/969fb4485b244f36a55c71643a5c12f7.jpg)
编译并烧写程序
![](https://image.cha138.com/20210906/78531e2cced54ac6981e28da3c3aa7c6.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/20210906/ecef775e8493477c90df97eb143b6b32.jpg)
使用说明如下图
![](https://image.cha138.com/20210906/846d910ce31143e3b5ec9688ada3c2f3.jpg)
根据使用说明,在mian.c中添加如下代码
![](https://image.cha138.com/20210906/9acdf65711494f109bd9a1c8bf9a01b4.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/20210906/cbc630f9125644278dae60224d7e432b.jpg)
命令行输入ftp_server启动FTP服务器,看到板子连上wifi,ip地址为192.168.1.103
电脑端连接FTP服务器
电脑和开发板连接同一个wifi
打开xftp或者类似的ftp工具,输入开发板的ip地址,输入用户名,密码,默认都是loogg
![](https://image.cha138.com/20210906/bee1a1562e3b4801bca3eff81a75cce2.jpg)
![](https://image.cha138.com/20210906/3a24a74d138441e2a6c1010581523ee7.jpg)
记得不要勾选 使用被动模式,点击连接,就可以访问开发板上的文件系统了,可以相互传输文件
![](https://image.cha138.com/20210906/dc45f71804ac4a8c9e397a8a67131211.jpg)
RT-Thread Git工具的使用
git工具可以便捷地向管理软件版本,这里记录git工具的使用过程
在工程右键打开小组,选择共享项目
![](https://image.cha138.com/20210906/53ccb855290b48cdacf8aa22aa6943f4.jpg)
创建代码仓库
![](https://image.cha138.com/20210906/ba6638c0d312479b802658c37367203c.jpg)
然后点击完成,这时候小组下就出现了git的相关操作
![](https://image.cha138.com/20210906/c38975c07e024328af1a8517da6c12b2.jpg)
点击提交
![](https://image.cha138.com/20210906/d25200da93f04cac94720dcdc91cb463.jpg)
输入落实消息,点击commit提交到本地仓库,若配置了远程仓库如github,可以点击commit and push 提交到远端仓库
![](https://image.cha138.com/20210906/f30eba595a0c423bb97ff5eaffb26eb1.jpg)
![](https://image.cha138.com/20210906/781ded5f15ec4dcfaa9a7479a6035750.jpg)
在Show in history中可以看到提交记录
在github上创建一个代码仓库,clone这个仓库的git地址
![](https://image.cha138.com/20210906/ec55e8d451c943d7b1e59753b3e86577.jpg)
在rtt studio的git 存储库右键远程仓库,点击create remote
![](https://image.cha138.com/20210906/14e112648b6a4c67bf7eead71d181434.jpg)
![](https://image.cha138.com/20210906/b6c738f4961d40708283da4e21c26f9d.jpg)
将github仓库地址复制进去,要注意最近github不再允许采用邮箱和密码的方式访问,要申请一个token或ssl密钥,这个要各位再去查下该怎么操作
![](https://image.cha138.com/20210906/66806034e77347938a0b041aeb0c0cd8.jpg)
设置完成后点击保存,完成与远程仓库的连接
![](https://image.cha138.com/20210906/4cf450e102944124a57af1e858e73cf0.jpg)
可以看到已经创建成功
![](https://raw.githubusercontent.com/FranHawk/blogpic/main/image-20210815132406728.png)
在小组中点击push,代码上传到github上
![](https://image.cha138.com/20210906/8a78ca6d64854e8db9dfee6add6362ef.jpg)
点击Preview
![](https://image.cha138.com/20210906/aaf45dd784de4ea7ad0c7c566cbc5885.jpg)
点击推送
![](https://image.cha138.com/20210906/b3ce046fe769430aba253df91f4e324b.jpg)
![](https://image.cha138.com/20210906/1e02e541efd24e87b5f43eff4e2fe3d3.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通过文件系统读取图片