硬汉嵌入式论坛

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

[ThreadX全家桶] 请教下,使用 threadx + filex + levelx 读写 nand flash 的速度算不算慢 ?

  [复制链接]

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
发表于 2020-12-6 14:09:54 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2020-12-6 14:53 编辑

请教下,使用 threadx + filex + levelx 读写 nand flash 的速度算不算慢 ?

nand ok.png

也终于捣鼓成功了,
貌似读接近 2MB/S, 写就比较满了,只有 176KB/S

在此非常感谢 这位坛友提供的历程:
http://www.armbbs.cn/forum.php?m ... 8789&extra=page%3D1

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2020-12-6 15:03:18 | 显示全部楼层
有点慢,要优化,近期我也会捣鼓这个。
回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2020-12-6 16:20:48 | 显示全部楼层
eric2013 发表于 2020-12-6 15:03
有点慢,要优化,近期我也会捣鼓这个。

非常欢迎啊大神捣鼓啊,到时俺也好抄一把,
回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2020-12-6 16:22:17 | 显示全部楼层
eric2013 发表于 2020-12-6 15:03
有点慢,要优化,近期我也会捣鼓这个。

nand flash 8bit 接口的 貌似还不如 4bit 的qspi flash 的速度,也是醉了啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2020-12-7 06:48:49 | 显示全部楼层
hpdell 发表于 2020-12-6 16:22
nand flash 8bit 接口的 貌似还不如 4bit 的qspi flash 的速度,也是醉了啊

应该有地方没有配置好,正常写速度怎么也得搞个1MB。
回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2020-12-7 08:56:37 | 显示全部楼层
eric2013 发表于 2020-12-7 06:48
应该有地方没有配置好,正常写速度怎么也得搞个1MB。

现在只能等待大神的 filex + levelx 的作品出来呀,到时我再抄抄,改改啊
回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2020-12-10 09:00:51 | 显示全部楼层
eric2013 发表于 2020-12-7 06:48
应该有地方没有配置好,正常写速度怎么也得搞个1MB。

刚刚重新配置了一下 mpu 设置

        /* 配置 NAND Flash 的属性为Write through, read allocate,no write allocate */
        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;         //使能该保护区域
        MPU_InitStruct.BaseAddress      = 0x80000000;                //设置基址
        MPU_InitStruct.Size             = MPU_REGION_SIZE_2GB;   //设置保护区域大小
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;    //设置访问权限
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE; //允许缓冲 , 这个地方,允许缓冲开启后,貌似 写速度快了一些了
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;  //禁止cache, 不能用MPU_ACCESS_CACHEABLE;会出现2次CS、WE信号
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;  //禁止共用
        MPU_InitStruct.Number           = MPU_REGION_NUMBER6;        //设置保护区域
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;            //设置类型扩展域为level1
        MPU_InitStruct.SubRegionDisable = 0x00;                      //禁止子区域
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;  //允许指令访问(允许读取指令)
        HAL_MPU_ConfigRegion(&MPU_InitStruct);


nand+levelx+fliex rw test.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2020-12-10 10:49:15 | 显示全部楼层
hpdell 发表于 2020-12-10 09:00
刚刚重新配置了一下 mpu 设置

        /* 配置 NAND Flash 的属性为Write through, read allocate,no write  ...

300-400KB还是有点慢,这个是FlashFS的
你看下FileX里面是不是有什么缓冲空间可以加大的。

http://www.armbbs.cn/forum.php?m ... 94277&highlight=FMC

回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2020-12-10 11:00:03 | 显示全部楼层
eric2013 发表于 2020-12-10 10:49
300-400KB还是有点慢,这个是FlashFS的
你看下FileX里面是不是有什么缓冲空间可以加大的。

我这个读写都是使用外部 sdram 作为缓存的,跟这个有没有什么关系呀 ?
回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2020-12-10 12:16:00 | 显示全部楼层
真是没注意, 居然这么慢, 我以为单片机写nand赶不上SSD也总比机械硬盘要快,
瓶颈在哪里啊, 单片机速度不够吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2020-12-10 14:17:39 | 显示全部楼层
hpdell 发表于 2020-12-10 11:00
我这个读写都是使用外部 sdram 作为缓存的,跟这个有没有什么关系呀 ?

用内部试试。
回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2020-12-10 14:52:41 | 显示全部楼层
amfy 发表于 2020-12-10 12:16
真是没注意, 居然这么慢, 我以为单片机写nand赶不上SSD也总比机械硬盘要快,
瓶颈在哪里啊, 单片机速度不够 ...

估计跟单片机,nand falsh 芯片本身都有关系吧,ssd 的硬盘那使用的可是高速 nand flash 芯片 吧 ?

单片机上使用的 nand falsh 去跟 电脑上使用的 nand falsh 对比,估计有些 ... 不合适哟
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
发表于 2021-9-11 21:55:15 | 显示全部楼层
刚移植试了一下,写速度644K,读1.85M。感觉好慢啊,是不是有什么地方配置的不对?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2021-9-12 09:08:18 | 显示全部楼层
higeo 发表于 2021-9-11 21:55
刚移植试了一下,写速度644K,读1.85M。感觉好慢啊,是不是有什么地方配置的不对?

filex操作nand是这样的。
回复

使用道具 举报

0

主题

68

回帖

68

积分

初级会员

积分
68
发表于 2021-10-13 16:21:59 | 显示全部楼层
mark fileX levelX  nand,有技术含量
回复

使用道具 举报

14

主题

62

回帖

104

积分

初级会员

积分
104
发表于 2021-10-13 20:38:20 | 显示全部楼层
看来这个中间层效率损失挺大,我们用SPI-NAND,QPI模式,读取速度 9MB/s,写3.5MB/S左右,存日志,不用文件系统直接循环读写。
回复

使用道具 举报

7

主题

108

回帖

129

积分

初级会员

积分
129
发表于 2021-10-13 22:56:15 | 显示全部楼层
大家好 我是伸手党
回复

使用道具 举报

1

主题

16

回帖

19

积分

新手上路

积分
19
发表于 2021-10-15 17:41:25 | 显示全部楼层
fileX如果开启了错误冗余功能,写一个字节也是直接穿透写入,不会缓存写。不知道你有没有开错误冗余功能?如果开了需要自己做数据缓存写。
回复

使用道具 举报

1

主题

16

回帖

19

积分

新手上路

积分
19
发表于 2021-10-15 17:46:37 | 显示全部楼层
最近把filex的很多源代码看了下,缓存机制做的挺好,错误冗余功能需要深入代码才知道如何避坑,其实需要擦除后再写的存储外设,错误冗余无法实现100%的恢复。目前我是铁电+flash一起来搞,尽量把FAT表,目录簇都放到铁电里,flash只存数据。
回复

使用道具 举报

1

主题

30

回帖

33

积分

新手上路

积分
33
发表于 2021-11-16 15:43:21 | 显示全部楼层
您好 我想跟你请教下,threadx,filex,levelx移植使用nandflash模拟u盘的问题,谢谢啦
回复

使用道具 举报

615

主题

3074

回帖

4939

积分

至尊会员

积分
4939
 楼主| 发表于 2021-11-24 09:57:09 | 显示全部楼层
ldd69arm 发表于 2021-11-16 15:43
您好 我想跟你请教下,threadx,filex,levelx移植使用nandflash模拟u盘的问题,谢谢啦

你好,我直接使用 threadx + filex + levelx 读写 nand flash 芯片的,没有模拟u盘的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-11 07:44 , Processed in 0.226727 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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