前言
在之前的学习中,初步掌握了对文件系统的使用和配置,并将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模块了,并且示例项目带自动重连功能

编译进开发板后串口持续显示没有找到wifi,并且阻碍finsh的输入,下面分析原因

这块开发板我再其他地方使用过,链接的是当时那个地方的wifi,wifi帐号和密码已经被记录在flash里面,为了重新链接我现在位置的wifi,我使用另外一个串口输入输出不冲突的串口终端链接新的wifi如下图

新的wifi链接成功

配置文件系统
使能sdcard和flash文件系统

软件包中多出了littlefs这个文件系统,他是用来挂载板子上16MB的NOR Flash的其中一个分区的

16MB的NOR FLASH分区如下图,其中easyflash也管理着其中的一个分区,可以用来保存wifi密码等一些参数
而fliesystem分区就是被littlefs文件系统管理,最后将这个分区挂载到\flash这个文件夹中

编译并烧写程序

mount to ‘/flash’ success,现在是没插sd卡,虽然ls发现根文件系统中有两个目录,但是只有flash实现了挂载,没有插sd卡所以sdcard是不能用的
若sd卡插上了串口终端会显示上面的信息
配置FTP服务器
使能FTP Library

使用说明如下图

根据使用说明,在mian.c中添加如下代码

1 |
|
编译并烧写进板子

命令行输入ftp_server启动FTP服务器,看到板子连上wifi,ip地址为192.168.1.103
电脑端连接FTP服务器
电脑和开发板连接同一个wifi
打开xftp或者类似的ftp工具,输入开发板的ip地址,输入用户名,密码,默认都是loogg


记得不要勾选 使用被动模式,点击连接,就可以访问开发板上的文件系统了,可以相互传输文件

RT-Thread Git工具的使用
git工具可以便捷地向管理软件版本,这里记录git工具的使用过程
在工程右键打开小组,选择共享项目

创建代码仓库

然后点击完成,这时候小组下就出现了git的相关操作

点击提交

输入落实消息,点击commit提交到本地仓库,若配置了远程仓库如github,可以点击commit and push 提交到远端仓库


在Show in history中可以看到提交记录
在github上创建一个代码仓库,clone这个仓库的git地址

在rtt studio的git 存储库右键远程仓库,点击create remote


将github仓库地址复制进去,要注意最近github不再允许采用邮箱和密码的方式访问,要申请一个token或ssl密钥,这个要各位再去查下该怎么操作

设置完成后点击保存,完成与远程仓库的连接

可以看到已经创建成功

在小组中点击push,代码上传到github上

点击Preview

点击推送


完成后进入github可以看到已经上传成功