相较于其他操作系统,RT-Thread是一款“小而美的物联网操作系统”,经过近15年的发展,RT-Thread已经在智能家居、安防、工业控制、穿戴设备等行业领域被广泛使用,经过了数亿台设备的装机验证;为了提升开发体验,RT-Thread为开发人员提供了RT-Thread Studio开发工具软件,具有图形化配置、一站式开发、低门槛等优点,便于我这种没用过RT-Thread的菜鸟快速上手。之前项目很少用到SD卡,正好这次可以一起学习下读写SD卡。
①新建项目工程
首先安装RT-Thread Studio软件、主控芯片STM32H750库文件及ART-PiSDK
安装完成后,打开RT-Thread Studio,左键单击选择“文件->新建->RT-Thread项目新建项目;
1.png
选择“基于开发板”,开发板选择“STM32H750-RT-ART-Pi”,类型选择“示例工程”,点击完成生成项目工程;
2.png
新建生成的项目如下图所示:
3.png
②配置RT-Thread组件
双击RT-Thread Settings,打开RT-Thread Settings配置界面;
4.png
打开后配置界面如下图所示;
5.png
点击开启SDIO、Fatfs组件;
6.png
SDIO属于片上外设,所以需要使能SDIO硬件配置,从开发板原理图上看出,ART-Pi使用的是SDIO1;
7.png
保存配置并编译,没有报错,说明组件配置成功;
③挂载系统文件
SD卡的读写操作,需要挂载文件系统,将块设备名设置为sd0,文件系统类型设置为elm,保存编译后下载;
8.png
打开RT-Thread Studio串行终端,显示dfs mount Failed;在终端输入“list_device”指令查看已经挂载的设备,显示Block Device  0,注册块设备失败,但能读到SD卡的内存;
9.png
经过调试后发现,SD卡系统初始化时存在延时,sd0块设备初始化线程挂起,SD_Init函数中挂载文件系统先执行,出现先挂载文件系统后注册块设备的情况;
在SD_Init函数执行挂载文件系统前增加延时后,注册块设备成功;
10.png
11.png
④读写数据
读写SD卡数据,打开test.txt文件,如果文件不存在新建一个文件,向文件写入Hello RT-Thread!,然后再次打开test.txt文件,读出文件中的内容;
12.png
成功读写SD卡后,终端显示“Write Success.”“Read(19):Hello RT-Thread!”;
13.png
在终端输入“cat test.txt”命令,也可读出文件内容“Hello RT-Thread!”;
14.png
用读卡器在电脑上读出SD卡内容“Hello RT-Thread!”;
15.png
至此,完成了用RT-Thread Studio实现读写SD卡功能的测试,后续会进行其他功能的测试。