Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
littlefs
文件系统挂载
断电重启
nor挂载一个littlefs文件系统之后,再把装置断电重启,重启后装置没有运行进行?
发布于 2025-05-08 16:54:02 浏览:102
订阅该版
```c struct fal_flash_dev nor_flash0 = { .name = NOR_FLASH_DEV_NAME, /* If porting this code to the device with FLASH connected to XPI1, the address must be changed to 0x90000000 */ .addr = NOR_FLASH_MEM_BASE, .len = 8 * 1024 * 1024, .blk_size = 4096, .ops = { .init = init, .read = read, .write = write, .erase = erase }, .write_gran = 1 }; #define NOR_FLASH_DEV_NAME "norflash0" #define NOR_FLASH_MEM_BASE 0x80000000UL #define NOR_FLASH_SIZE_IN_BYTES 0x800000UL #define FAL_PART_TABLE \ { \ {FAL_PART_MAGIC_WORD, "app", NOR_FLASH_DEV_NAME, 0, 8*1024*1024, 0},\ } int littlefsfilesystem(void) { int result; result = fal_init(); if(result <= 0) { rt_kprintf("fal_init failed\r\n"); } // 创建 FAL MTD NOR 设备 struct rt_device *flash_dev = fal_mtd_nor_device_create("app"); if (flash_dev == NULL) { rt_kprintf("Can't create a block device on '%s' partition.", "app"); } if (dfs_mount(flash_dev->parent.name, "/", "lfs", 0, 0) == 0) { rt_kprintf("Filesystem %s is mounted directly! mount point name is %s\r\n","lfs",flash_dev->parent.name); } else { rt_kprintf("Directly mount lfs failed, formatting...\n"); // 检查是否为 MTD 设备 if (flash_dev->type != RT_Device_Class_MTD) { rt_kprintf("Error: %s is not an MTD device!\n", flash_dev->parent.name); result = -RT_ERROR; goto __exit; } // 格式化 result = dfs_mkfs("lfs", "app"); if(result) { rt_kprintf("dfs_mkfs app on the block device result:%d!\r\n",result); goto __exit; } //挂载 spi flash 中名为 "app" 的分区上的文件系统 if (dfs_mount(flash_dev->parent.name, "/", "lfs", 0, 0) == 0) { rt_kprintf("Filesystem %s is mounted! mount point name is %s\r\n","lfs",flash_dev->parent.name); } else { rt_kprintf("Failed to initialize %s!\r\n",flash_dev->parent.name); } } DIR* dir_tmp = opendir("/nor"); if(dir_tmp == RT_NULL) { result = mkdir("/nor", 0777); if(result) { rt_kprintf("mkdir %s failed\r\n","/nor"); return result; } } else { closedir(dir_tmp); } result = RT_EOK; __exit: return result; } int main(void) { printf("go into main ! world\r\n"); static uint32_t led_thread_arg = 0; int ret; app_init_led_pins(); rt_thread_t led_thread = rt_thread_create("led_th", thread_entry, &led_thread_arg, 1024, 30, 10); rt_thread_startup(led_thread); init_gpio_pins(); // rt_kprintf("RT_HW_HEAP_BEGIN=%02x RT_HW_HEAP_END=%02x\r\n",RT_HW_HEAP_BEGIN,RT_HW_HEAP_END); // ret = sdram_test(); ret = littlefsfilesystem(); rt_kprintf("littlefs_test ret=%d\r\n",ret); ret = Yaffs2filesystem(); rt_kprintf("Yaffs2filesystem ret=%d\r\n",ret); return 0; } ``` 装置再main中挂载一个littlefs文件系统,并再这个文件系统中创建一个文件夹,然后断电重启装置,装置没有再次正常启动程序,从串口看到得信息如下:  如果想要再次正常启动,就需要重新烧录程序,很奇怪,但是如果把文件系统挂载屏蔽掉,装置就能正常断电重启,有没有大佬能帮忙看一下?
查看更多
1
个回答
默认排序
按发布时间排序
qilian
2025-06-03
这家伙很懒,什么也没写!
是不是因为littlefs掉电之后开启掉电保护了? 参考:https://rui-docs.readthedocs.io/zh-cn/latest/%E6%9C%80%E4%BD%B3%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA/%E5%86%85%E6%A0%B8%E5%B1%82/littlefs%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.html
撰写答案
登录
注册新账号
关注者
0
被浏览
102
关于作者
guangxinzhao
这家伙很懒,什么也没写!
提问
2
回答
0
被采纳
0
关注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
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
五分钟玩转RT-Thread新社区
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
睿擎派RK3506开发板开箱记录&amp;初步调试
2
睿擎工业开发平台rk3506常用外设功能评测
3
RT-Thread BSP支持玄铁全系列RISC-V内核啦
4
ubuntu20搭建rtthead5.2.0开发环境
5
BitsButton嵌入式按键处理框架
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
ART-Pi
FinSH
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
UART
cubemx
ESP8266
BSP
ota在线升级
WIZnet_W5500
PWM
packages_软件包
flash
freemodbus
GD32
潘多拉开发板_Pandora
ADC
keil_MDK
定时器
flashDB
编译报错
ulog
socket
rt_mq_消息队列_msg_queue
msh
中断
Debug
SFUD
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
821
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部