Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
littlefs
Littlefs / FAL / SFUD / QSPI 组合报错
发布于 2021-10-14 05:25:05 浏览:1474
订阅该版
调试的时候频繁断电,导致norflash上的FAT文件系统很容易挂掉。然后我先试试littlefs 因为教程比较老,弄了好一会儿。[教程](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/components/dfs/an0027-littlefs?id=littlefs-%e7%9a%84%e7%a7%bb%e6%a4%8d) 由于RTT对STM32H7的QSPI/OSPI驱动支持不多,我是自己改的QSPI驱动。不过跑FAT很稳定,怎么写、读都没问题。换成Littlefs + FAL就出事了。 SFUD初始化正常 ``` initialize norflash_sfud_init[85] D/drv.qspi main: qspi init success! [89] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud.c:862) The flash device manufacturer ID is 0xEF, memory type ID is 0x40, capacity ID is 0x17. [103] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:132) Check SFDP header is OK. The reversion is V1.5, NPN is 0. [116] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:175) Check JEDEC basic flash parameter header is OK. The table id is 0, reversion is V1.5, length is 16, parameter table pointer is 0x000080. [136] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:203) JEDEC basic flash parameter table info: [147] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:204) MSB-LSB 3 2 1 0 [157] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0001] 0xFF 0xF9 0x20 0xE5 [167] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0002] 0x03 0xFF 0xFF 0xFF [177] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0003] 0x6B 0x08 0xEB 0x44 [187] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0004] 0xBB 0x42 0x3B 0x08 [197] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0005] 0xFF 0xFF 0xFF 0xFE [207] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0006] 0x00 0x00 0xFF 0xFF [218] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0007] 0xEB 0x40 0xFF 0xFF [228] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0008] 0x52 0x0F 0x20 0x0C [238] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:207) [0009] 0x00 0x00 0xD8 0x10 [248] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:215) 4 KB Erase is supported throughout the device. Command is 0x20. [261] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:234) Write granularity is 64 bytes or larger. [272] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:245) Target flash status register is non-volatile. [284] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:271) 3-Byte only addressing. [293] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:305) Capacity is 8388608 Bytes. [303] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:312) Flash device supports 4KB block erase. Command is 0x20. [316] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:312) Flash device supports 32KB block erase. Command is 0x52. [329] D/SFUD main: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:312) Flash device supports 64KB block erase. Command is 0xD8. ``` 分区表正常 ``` initialize filesystem_init[D/FAL] (fal_flash_init:49) Flash device | norflash0 | addr: 0x00000000 | len: 0x00800000 | blk_size: 0x00001000 |initialized finish. [I/FAL] ==================== FAL partition table ==================== [I/FAL] | name | flash_dev | offset | length | [I/FAL] ------------------------------------------------------------- [I/FAL] | filesystem | norflash0 | 0x00000000 | 0x00800000 | [I/FAL] ============================================================= [I/FAL] RT-Thread Flash Abstraction Layer (V0.5.99) initialize success. [I/FAL] The FAL MTD NOR device (filesystem) created successfully [479] I/SFUD main: norflash is mounted to '/internal' ``` 写大量数据的时候就会出现底层 state machine error的情况。  出错后文件大小显示为0 我的lfs配置都试了一遍,包括64~4096的读写大小等。如果我设置得大一点,通过的几率会大一些。 搞了很久都没有头绪。
查看更多
1
个回答
默认排序
按发布时间排序
李肯陪你玩赚嵌入式
认证专家
2021-10-14
2022年度和2023年度RT-Thread社区优秀开源布道师,COC深圳城市开发者社区主理人,专注于嵌入式物联网的架构设计
FAT文件系统在频繁断电的时候是很容易出问题的,尤其当它需要更新FAT表头的时候,如果掉电了,就直接损坏了FAT文件系统,导致无法正常挂载。 需要使用其他的方法规避下异常掉电对数据的破坏。
撰写答案
登录
注册新账号
关注者
0
被浏览
1.5k
关于作者
majianjia
这家伙很懒,什么也没写!
提问
5
回答
21
被采纳
2
关注TA
发私信
相关问题
1
dfs_mount挂载文件系统路径的路径必须为‘/’才能成功
2
romfs无法执行df命令
3
w25q128挂载littlefs出现assert failed?
4
使用littlefs出现Corrupted dir pair at 1 0
5
使用片上flash的 littlefs 无法创建多个目录
6
littlefs挂载总是在lfs.c文件中 LFS_ASSERT
7
littlefs文件系统卡顿问题
8
需要littlefs 挂载在片上flash
9
日志存储是使用fat如何做磨损平衡?
10
挂载littlefs文件系统的flash寿命计算方式?
推荐文章
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
【FRA156测评DM-MCX】- 环境配置篇
2
【基于HPM6750+RW007的网页服务器】---SD卡文件系统
3
有关RT_thread studio使用WDT的一点经验
4
ART-PI2 上手记录(一)
5
【基于HPM6750+RW007的网页服务器】---rw007软件包添加
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
Debug
keil_MDK
msh
ulog
SFUD
C++_cpp
MicroPython
本月问答贡献
张世争
1
个答案
2
次被采纳
crystal266
4
个答案
1
次被采纳
lchnu
3
个答案
1
次被采纳
聚散无由
2
个答案
1
次被采纳
sakumisu
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部