T5 外挂flash后littlefs挂载失败

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
Post Reply
Memory
Posts: 11

如题,在按照https://developer.tuya.com/cn/docs/developer/t5-flash?id=Kehot4x5zqh5j此部分教程完成外置flash的驱动添加后,我在应用层使用tkl_fs_mount("/", DEV_EXT_FLASH);函数挂载外置flash时返回失败错误码-84,报错log如下,这应该是什么原因导致,我应该从哪里开始排查问题。如果是驱动有问题该如何调试。

Code: Select all

[qflash_init] qspi flash, capacity: 16MB, block: 16KB, page: 256
fs flash conf:
	read_size: 256
	prog_size: 256
	block_size: 16384
	block_count: 1024
	cache_size: 4096
	lookahead_size: 4096
	block_cycles: 500
lfs_flashbd_createcfg(0x28048268 {.context=0x28032108, .read=0x21a0ec5, .prog=0x21a0f35, .erase=0x21a0fa5, .sync=0x21a0fdd, .read_size=256, .prog_size=256, .block_size=16384, .block_count=1024}, 0x2030d0c)
components/littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1}
[qflash_init] qspi flash, capacity: 16MB, block: 16KB, page: 256
fs flash conf:
	read_size: 256
	prog_size: 256
	block_size: 16384
	block_count: 1024
	cache_size: 4096
	lookahead_size: 4096
	block_cycles: 500
lfs_flashbd_createcfg(0x280323a8 {.context=0x28031ad0, .read=0x21a0ec5, .prog=0x21a0f35, .erase=0x21a0fa5, .sync=0x21a0fdd, .read_size=256, .prog_size=256, .block_size=16384, .block_count=1024}, 0x2030d0c)
components/littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1}
[06-25 22:02:47 ty N][3f9][app_flash.c:89] mount error

mkfs on qspi flash, total size: 16777216, block size: 16384
[qflash_init] qspi flash, capacity: 16MB, block: 16KB, page: 256
fs flash conf:
	read_size: 256
	prog_size: 256
	block_size: 16384
	block_count: 1024
	cache_size: 4096
	lookahead_size: 4096
	block_cycles: 500
lfs_flashbd_createcfg(0x280323a8 {.context=0x28031ad0, .read=0x21a0ec5, .prog=0x21a0f35, .erase=0x21a0fa5, .sync=0x21a0fdd, .read_size=256, .prog_size=256, .block_size=16384, .block_count=1024}, 0x2030d0c)
components/littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1}
[qflash_init] qspi flash, capacity: 16MB, block: 16KB, page: 256
fs flash conf:
	read_size: 256
	prog_size: 256
	block_size: 16384
	block_count: 1024
	cache_size: 4096
	lookahead_size: 4096
	block_cycles: 500
lfs_flashbd_createcfg(0x280323a8 {.context=0x28031ad0, .read=0x21a0ec5, .prog=0x21a0f35, .erase=0x21a0fa5, .sync=0x21a0fdd, .read_size=256, .prog_size=256, .block_size=16384, .block_count=1024}, 0x2030d0c)
components/littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1}
[qflash_init] qspi flash, capacity: 16MB, block: 16KB, page: 256
fs flash conf:
	read_size: 256
	prog_size: 256
	block_size: 16384
	block_count: 1024
	cache_size: 4096
	lookahead_size: 4096
	block_cycles: 500
lfs_flashbd_createcfg(0x280323a8 {.context=0x28031ad0, .read=0x21a0ec5, .prog=0x21a0f35, .erase=0x21a0fa5, .sync=0x21a0fdd, .read_size=256, .prog_size=256, .block_size=16384, .block_count=1024}, 0x2030d0c)
components/littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1}
[06-25 22:02:47 ty N][3f9][app_flash.c:94] mount error -84
liujt@tuya.com
Posts: 49

Re: T5 外挂flash后littlefs挂载失败

是首次使用片外flash吗?首次使用需要执行擦除,在串口执行指令 “xqspi fce\r\n”, 然后执行格式化指令“lfs mkfs\r\n”

Memory
Posts: 11

Re: T5 外挂flash后littlefs挂载失败

是的,首次使用,我用的不是sdk内置的demo,应该是没有启用串口指令功能,有没有接口可以直接进行调用来格式化

liujt@tuya.com
Posts: 49

Re: T5 外挂flash后littlefs挂载失败

串口的tx/rx都接上,日志打印口可以执行串口指令的。

Memory
Posts: 11

Re: T5 外挂flash后littlefs挂载失败

串口发送指令执行格式化后挂载成功了,之后如果量产也是只能从串口发指令执行格式化操作吗,这个格式化能不能在应用层调接口来自动完成首次上电格式化flash,以及如果后续出现未知原因文件系统损坏无法挂载,能否自动进行格式化来尝试恢复

liujt@tuya.com
Posts: 49

Re: T5 外挂flash后littlefs挂载失败

量产的时候,flash应该通过烧录器预先烧录好文件系统,然后贴片到板子上的。所有这些操作过后,在板子上的flash应该已经是挂载正常的。

Memory
Posts: 11

Re: T5 外挂flash后littlefs挂载失败

我们flash是不会预烧录的,仅作为app发送的图片存储使用,这种情况下首次挂载就会存在问题

liujt@tuya.com
Posts: 49

Re: T5 外挂flash后littlefs挂载失败

那你在量产前把flash通过工具格式化后,再贴片到PCBA

Post Reply