您尚未登录。

楼主 # 2024-07-21 13:51:00

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用!

分区表为:

    "spi-nand": { // Device, The name should be the same with string in image:info:media:type
        "size": "128m", // Size of SPI NAND
        "partitions": {
            "spl": { "size": "1m" },
            "env":      { "size": "256k" },
            "env_r":    { "size": "256k" },
            "os":  { "size": "8m" },
            "rodata":  { "size": "16m" },
            "data": { "size": "16m" }
        }
    }

将data分区选择为littlefs格式在烧录时会出现以下错误:

Firmware Component:
name:      image.target.data
partition: data
attr:      mtd;optional
Media:     SPI_NAND(2)
[E] mtd_spinand_block_isbad()124 Offset: 0x1000000 is out of mtd size: 0x1000000.
[E] nand_fwc_mtd_write()348  Write block is bad, skip it.
[E] nand_fwc_mtd_write()320 Not enough space to write mtd data

并且RTOS内mount失败。

将data分区选择为uffs格式在编译时会出现以下编译错误:

page_2k_block_128k_oob_64_data.fs file_size: 0x1080000 is over much than part_size: 0x1000000
scons: *** [output/d21x_d213ecv-demo-v4_rt-thread_helloworld/images/d21x.elf] Error 1

data分区只有在格式为fat32时才能成功挂载,此格式在意外关机时容易出现错误,不能用于商用环境中的可读写的文件系统。

最近编辑记录 海石生风 (2024-07-21 13:54:03)

离线

楼主 #1 2024-07-21 15:33:00

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用!

进一步测试发现,只有选中FATFS格式下的auto calcuate image size选项才能成功,即不能实现一个可读写的分区。

即这SDK不能保存任何运行时数据,无法商用。

离线

楼主 #8 2024-07-22 20:35:31

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用!

工业产品,稳定性是第一指标,需要littlefs或uffs这类意外掉电不容易出错的fs,fatfs不是太合适。

离线

楼主 #9 2024-07-23 13:51:40

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用!

Fatfs data 分区是支持读写的,需要一个nftl 做中间层,配置那里不要用自动计算

加了nftl中间层 "nftl": { "data": { "size": "-" } }后Fatfs data 分区确实是可读写的

将data分区选择为uffs格式在编译时会出现以下编译错误
是因为分区太小。你可以改大试试

我把uffs分区大小改为100MB后依然出现同样的编译错误:

page_2k_block_128k_oob_64_data.fs file_size: 0x6720000 is over much than part_size: 0x6400000
scons: *** [output/d21x_d213ecv-demo-v4_rt-thread_helloworld/images/d21x.elf] Error 1

另外,littlefs是否优于fatfs和uffs?是否应该着重支持该格式?

离线

楼主 #11 2024-07-23 16:15:47

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用!

wujique 说:

sd卡用fat
nor flash用littlefs
nand用uffs?

在真实项目中在norflash建fatfs,我觉得路子就不对。

是的,我也觉得有问题。

littlefs起初是为nor flash设计的,不过看到也有人用于nand flash,不知是否真能用于nand flash。
uffs专用于nand flash。
fatfs用于SD卡或U盘,将它作为内部文件系统就有点奇怪了。

其中littlefs和uffs都对意外断电做了优化,而fatfs意外断电很大概率会出错,所以并不适用于内部文件系统

最近编辑记录 海石生风 (2024-07-23 16:23:09)

离线

楼主 #13 2024-07-24 11:23:33

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: D21x RTOS SDK 1.0.5的data分区不支持littlefs和uffs格式!难以商用!

tomyqg 说:

它的nftl套filex试试呗

这要花大精力去移植,还有不如修好uffs的编译bug

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn