硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1475|回复: 12
收起左侧

[FileX] levelx nandflash驱动似乎并不完善

[复制链接]

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2024-12-3 15:53:47 | 显示全部楼层 |阅读模式
最近移植了levelx nandflash的驱动,跑通以后看了下源码,发现驱动竟然没有校验,也没有坏块管理。只能果断放弃,白忙活了。不知道大伙们都是怎么用的?

关于没有校验的分析如下:
①移植的时候需要对lx_nand_flash_driver_block_erased_verify和lx_nand_flash_driver_page_erased_verify两个函数进行补齐,但是其实这两个函数在驱动中没有用到。
②驱动中提供了lx_nand_flash_256byte_ecc_check和lx_nand_flash_page_ecc_compute 两个校验函数,但在驱动中没有用到,是作为外部调用函数。
③驱动中安排了ecc的放置位置,但在写入函数中并没有计算ecc,也没有写入ecc的操作。
④驱动中安装了坏块的放置位置,函数_lx_nand_flash_driver_block_status_get和_lx_nand_flash_block_status_set分别进行坏块信息的读取与设置。同样,set这个函数从没在别的函数中出现过。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2024-12-4 10:06:43 | 显示全部楼层
你要看源码里面的实现,应该是用的软件ECC。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2024-12-7 17:08:05 | 显示全部楼层
eric2013 发表于 2024-12-4 10:06
你要看源码里面的实现,应该是用的软件ECC。

就是看源码了没有发现,大佬有时间了可以看下
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2024-12-8 09:51:17 | 显示全部楼层
xiaozida 发表于 2024-12-7 17:08
就是看源码了没有发现,大佬有时间了可以看下

好的,后面有时间我也研究下
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2024-12-17 11:49:31 | 显示全部楼层
没有校验,也没有坏块管理,速度会快很多?我看了原子论坛的坏块管理好像是为文件系统FATFS调用的,但我又不想用FATFS,想祼机跑快一点
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2024-12-17 14:45:30 | 显示全部楼层
maidilong 发表于 2024-12-17 11:49
没有校验,也没有坏块管理,速度会快很多?我看了原子论坛的坏块管理好像是为文件系统FATFS调用的,但我又 ...

对于NAND来说,坏块管理,擦写均衡和ECC校验缺一不可。

对于NAND的这个管理有个专业的名词叫NFTL层,使用这个层,不使用文件系统,也可以的。下面的这个工程里面整理了,可以直接使用。

RTX5全家桶源码综合模板发布V3.0,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-10-30)
https://www.armbbs.cn/forum.php? ... d=124516&fromuid=58
(出处: 硬汉嵌入式论坛)


回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-2-17 23:07:15 | 显示全部楼层
被坑了,之前看的是st在git上的工程,里面对nand_flash -> lx_nand_flash_driver_pages_read和nand_flash -> lx_nand_flash_driver_pages_write 的移植只是简单的读写,没有校验。今天看了下原版的levelx,里面是有校验的。坏块状态写入也是有的。
回复

使用道具 举报

1

主题

15

回帖

18

积分

新手上路

积分
18
发表于 2025-2-25 13:51:27 | 显示全部楼层
xiaozida 发表于 2025-2-17 23:07
被坑了,之前看的是st在git上的工程,里面对nand_flash -> lx_nand_flash_driver_pages_read和nand_flash - ...

貌似这个坏块状态只有在format函数运行的时候才会执行,但是format函数对于一个新的nand来说,应该只能执行一次吧
回复

使用道具 举报

3

主题

75

回帖

84

积分

初级会员

积分
84
发表于 2025-2-28 15:19:59 | 显示全部楼层
可以参考NXP的I.MX RT系列的demo,用的是dhara管理的坏块和磨损均衡!
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2025-3-7 16:48:52 | 显示全部楼层
xiaozida 发表于 2025-2-17 23:07
被坑了,之前看的是st在git上的工程,里面对nand_flash -> lx_nand_flash_driver_pages_read和nand_flash - ...

老哥有原版的网站地址吗,我去github找了一个也没有校验。还是说要自己在读写的时候同时调用校验的那几个函数?
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-5-20 14:02:03 | 显示全部楼层
Fangsemi 发表于 2025-3-7 16:48
老哥有原版的网站地址吗,我去github找了一个也没有校验。还是说要自己在读写的时候同时调用校验的那几个 ...

https://github.com/orgs/eclipse-threadx/repositories,这个仓库里面都有
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-5-20 15:05:54 | 显示全部楼层
zorna 发表于 2025-2-25 13:51
貌似这个坏块状态只有在format函数运行的时候才会执行,但是format函数对于一个新的nand来说,应该只能执 ...

我也没找到在读写过程中对坏块状态的写入,可能也就format的时候标记下吧
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-5-20 15:11:44 | 显示全部楼层
跟着硬汉学 发表于 2025-2-28 15:19
可以参考NXP的I.MX RT系列的demo,用的是dhara管理的坏块和磨损均衡!

感谢回复,需要的时候研究下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-11 05:11 , Processed in 0.288412 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表