Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Filesystem
每天了解RTT多一点—简单快速创建一个文件系统工程
发布于 2019-06-11 11:27:24 浏览:2140
订阅该版
* 本帖最后由 黄侃 于 2019-7-24 14:16 编辑 * 我先吐槽一下官方文档,把原理和应用混着写写了一堆,DFS注册,初始化组件什么的跟普通用户关系不大,不如先简洁明了的告诉用户怎么使用。 硬件平台为正点原子的STM32F407探索者开发板,目标是在开发板的Nor Flash上创建文件系统。 1、首先在bsp/stm32/stm32f407-atk-explorer下dist一个工程模板,ENV自动生成一个dist目录,将其中的stm32f407-atk-explorer文件夹拷贝出来就可以作为一个工程文件了,这里还自动生成了一个压缩包,比较贴心。dist的方法即是在ENV环境中进入bsp/stm32/stm32f407-atk-explore目录,输入scons --dist。 2、可以顺手把stm32f407-atk-explorer中的template工程里面的芯片型号和编译器改好免得以后麻烦。 3、在新的工程下进入ENV,友情提醒在ENV>Settings>Integration中点击Register可以以后直接在目录里右键菜单里找到“ConEmu here"选项快速进入ENV环境下的指定目录。输入menuconfig进入ENV配置菜单。将RT-Thread Components > Device virtual file system > Enable elm-chan fatfs选项勾选。然后进入下面的elm-chan's Fatfs,Generic FAT Filesystem Module,将Maximun sector size to be handled的值改成4096. 4、将Hardware Drviers Config > Onboard Peripheral Drviers > Enable SPI FLASH (W25Q128 spi2)选中, 此时Device Drivers下的SPI驱动就自动选择好了不用二次配置,比较贴心。 5、一路ESC,然后save退出menuconfig界面,在ENV下输入scons --target=mdk5 -s 编译生成工程。 6、点击工程,进入MDK开发环境,编译后烧写到开发板,此时还无法使用文件系统。将USB串口接入电脑,打开任意终端软件(XCOM,串口助手,putty,个人喜欢Xshell)检查msh调试信息,可以看到W25Q128能够通过SFUD探测识别。 7、在main()函数中添加挂载文件系统代码:dfs_mount("W25Q128", "/", "elm", 0, 0)。 编译后烧写,msh应该会提示挂载failed。这是因为FLASH没有格式化导致挂载失败,此时在msh下输入mkfs -t elm W25Q128 。 注意W25Q128需要和msh提示的flash device名称完全一致,包括大小写。等待msh出现提示符后重启开发板。 8、此时挂载应该成功(可惜RTT没有挂载成功的提示,没关系可以手动添加),msh下输入ls指令,显示Directory /: 。可以输入mkdir rtt创建一个目录,再次输入ls可以看到rtt这个目录。 9、ENV选项中有一个Using mount table for file system。 如果使用这个选项则不需要在main里面显示调用dfs_mount("W25Q128", "/", "elm", 0, 0), 不过需要在dfs_fs.c或者其他某个地方声明一个常量: ``` const struct dfs_mount_tbl mount_table[] = { {"W25Q128", "/", "elm", 0, 0}, {0} }; ``` 10、我不推荐使用上面这个自动挂载功能。因为考虑到批量化生产设备,每次设备出厂测试前都需要mkfs,如果忘记可能会很麻烦。可以增加一些代码作为提醒,比如: ``` if(RT_EOK== dfs_mount("W25Q128", "/", "elm", 0, 0)) { //挂载成功,打印成功信息或者点亮某个灯 } else { //挂载失败,打印失败信息或者点亮某个灯 } ``` 或者是: ``` while(RT_EOK!= dfs_mount("W25Q128", "/", "elm", 0, 0)) { rt_pin_write(LED1_PIN, PIN_LOW); if(RT_EOK== dfs_mkfs("elm","W25Q128")) { rt_pin_write(LED1_PIN, PIN_HIGH); } else { //打印失败信息 break; } } ``` —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— 如果想同时将外部FLASH和SD都使用文件系统挂载。则需要根据官网首页的指南,先挂载一个romfs系统,记得将mkromfs.py从tools文件夹拷贝到romfs文件夹。 ENV中修改最大文件系统数量为4,最大挂载数量为4,然后使能外设中的sdcard即可。 修改sdcard_port.c中的sd_mount函数,使其挂载在根目录的sd文件夹下(前提是制作romfs的时候,创建了sd文件夹) if (dfs_mount("sd0", "/sd", "elm", 0, 0) == RT_EOK) 挂载flash的时候,函数改为(前提是制作romfs的时候,创建了flash文件夹): dfs_mount("W25Q128", "/flash", "elm", 0, 0); 此时就可以使用文件系统操作flash和sd了。
查看更多
1
个回答
默认排序
按发布时间排序
WillianChan
2019-06-11
-
关于官方文档存在的问题,可以单独发一篇帖子出来哦,尽量将文档中文不足点描述详细些:lol
撰写答案
登录
注册新账号
关注者
0
被浏览
2.1k
关于作者
黄侃
这家伙很懒,什么也没写!
提问
17
回答
37
被采纳
0
关注TA
发私信
相关问题
1
字库除了SD卡和http还有别的方式导入吗
2
如何同时使用RTT文件系统于NAND Flash 和 SD卡,针对Realboard4088?
3
EasyFlash好棒
4
SD卡挂在的SPI总线又要加个DA设备
5
sd卡与flash 同时挂载 挂载路径shell怎么区分 访问
6
请教ramfs使用方法
7
rtt stable2.0.x版本 sd卡及文件系统
8
nandflash文件系统UFFS请教
9
关于SD卡挂载文件系统的问题(已解决)
10
Yaffs采用GPL2许可
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
简单两步配置RTT源码阅读环境 vsc+clangd
2
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
3
LVGL使用字库IC芯片显示中文
4
基于STM32H750和Rt-Thread的CANFD通信实现的记录(一)
5
freemodbus主机在freertos的适配,参考rtthread例程
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部