搜索
bottom↓
回复: 45

求助nuc980+spi nand,断电,系统里面的文件会损坏或者丢失。

[复制链接]
(59092671)

出0入16汤圆

发表于 2019-9-12 23:41:12 | 显示全部楼层 |阅读模式
本帖最后由 redworlf007 于 2019-9-13 09:28 编辑

1、求助大家,nuc980,外挂spi nand 型号:W25N01GVZEIG。
2、先把系统刷进板子,然后通过nfs拷贝应用程序进去,应用程序会开一个5M的空间,然后应用程序的会写运行日志,写文件的形式,写到flash。
3、系统起来后,应用程序启动,我就把电源断了,然后再打开,反复的话,大概率文件系统里面的文件或者依赖库,会损坏或者丢失。
4、我前面一直在用nuc972+并口的nand,型号:W29N02GVSIAA,随便怎么搞,都没有遇到丢文件或者文件损坏的。
5、跑的是Linux,yaffs2的文件系统。
请教大家,这个是什么问题,该怎么解决,谢谢。
(59058046)

出0入16汤圆

 楼主| 发表于 2019-9-13 09:18:17 来自手机 | 显示全部楼层
一楼焦虑置顶
(59055433)

出0入4汤圆

发表于 2019-9-13 10:01:50 | 显示全部楼层
最近存储丢失的案例挺多啊。看看是不是如下原因:
1. 芯片没使用电压监控芯片?
2. 写flash的时候正好掉电?加上掉电检测,检测到掉电时停止操作flash
(59054625)

出0入16汤圆

 楼主| 发表于 2019-9-13 10:15:18 来自手机 | 显示全部楼层
PPS 发表于 2019-9-13 10:01
最近存储丢失的案例挺多啊。看看是不是如下原因:
1. 芯片没使用电压监控芯片?
2. 写flash的时候正好掉电 ...

没有掉电监测
(59009380)

出0入0汤圆

发表于 2019-9-13 22:49:23 | 显示全部楼层
不丢才怪 。。。
(58844184)

出0入42汤圆

发表于 2019-9-15 20:42:39 | 显示全部楼层

1. 文件系统建议升级为UBI FS, 比你现在用的要可靠很多
2. 提升NAND FLASH 的ECC 纠错位, 例如之前用4 bit 的升级为8bit
(58796258)

出0入16汤圆

 楼主| 发表于 2019-9-16 10:01:25 | 显示全部楼层
polarbear 发表于 2019-9-15 20:42
1. 文件系统建议升级为UBI FS, 比你现在用的要可靠很多
2. 提升NAND FLASH 的ECC 纠错位, 例如之前用4 b ...

好的,我看看,谢谢了。
(58795668)

出0入16汤圆

 楼主| 发表于 2019-9-16 10:11:15 | 显示全部楼层
polarbear 发表于 2019-9-15 20:42
1. 文件系统建议升级为UBI FS, 比你现在用的要可靠很多
2. 提升NAND FLASH 的ECC 纠错位, 例如之前用4 b ...

我看了,这个spi nand的ecc 描述:On chip 1-Bit ECC for memory array,貌似只有1bit。。。
(58795336)

出0入0汤圆

发表于 2019-9-16 10:16:47 | 显示全部楼层
胆子真大, 敢把log和 系统搞到一起
(58793961)

出0入42汤圆

发表于 2019-9-16 10:39:42 | 显示全部楼层
redworlf007 发表于 2019-9-16 10:11
我看了,这个spi nand的ecc 描述:On chip 1-Bit ECC for memory array,貌似只有1bit。。。 ...

ECC 校正要靠每个页后面 64个字节的 spare 区做ECC校验 和坏块管理;

这个功能是linux 内核去处理的,linux 内核核有对应硬件(如果芯片支持)模块和软件去解决NAND 位反问题;

内核检测到NAND 数据错误时,通过spare区保存的ECC 校验数据,可以修复部分错误;

你进入linux内核编译的菜单找,找到ECC 相关部分,把ECC校验的位数 调高,

972Q群友





(58769599)

出0入16汤圆

 楼主| 发表于 2019-9-16 17:25:44 | 显示全部楼层
myiccdream 发表于 2019-9-16 10:16
胆子真大, 敢把log和 系统搞到一起

人傻胆大,哈哈。
(58769555)

出0入16汤圆

 楼主| 发表于 2019-9-16 17:26:28 | 显示全部楼层
polarbear 发表于 2019-9-16 10:39
ECC 校正要靠每个页后面 64个字节的 spare 区做ECC校验 和坏块管理;

这个功能是linux 内核去处理的,li ...

好的,谢谢,等等我去内核配置里面看看。
(58756100)

出0入0汤圆

发表于 2019-9-16 21:10:43 | 显示全部楼层
不建议使用UBIFS,UBIFS的掉电性能比jffs2和yaffs2差,这点在官方页也有说明,我前阶段也在项目中遇到了掉电文件系统损坏的问题,我们最后处理是把UBIFS换成了yaffs2,另外把系统和数据分成两个区,
我们的项目中log这些数据文件丢了是可以接受的。我们采用的nand flash 4bit硬件ECC。
另外在实时系统中用了RTEMS+jffs2,SPI NOR Flash,没有出现文件系统掉电问题。从我收集到的文档资料看yaffs2应该是这几个里面掉电性能最好的文件系统。
jffs2是在linux主线版本上的,也可以用jffs2试试。
(58755265)

出0入0汤圆

发表于 2019-9-16 21:24:38 | 显示全部楼层
遇到做静电实验会导致文件系统损坏问题,不知道怎么解决!
(58753773)

出0入16汤圆

 楼主| 发表于 2019-9-16 21:49:30 | 显示全部楼层
Yondyanyu1 发表于 2019-9-16 21:24
遇到做静电实验会导致文件系统损坏问题,不知道怎么解决!

你先看看静电,是从哪里进去的,要确定是静电问题。
(58660955)

出0入16汤圆

 楼主| 发表于 2019-9-17 23:36:28 来自手机 | 显示全部楼层
jameszxj 发表于 2019-9-16 21:10
不建议使用UBIFS,UBIFS的掉电性能比jffs2和yaffs2差,这点在官方页也有说明,我前阶段也在项目中遇到了掉 ...

你好,请教下,你的文件系统和log是在一个flash上的不同分区,还是在不同的flash上?
(58539705)

出0入0汤圆

发表于 2019-9-19 09:17:18 | 显示全部楼层
同一flash,不同分区
(58539640)

出0入0汤圆

发表于 2019-9-19 09:18:23 | 显示全部楼层
redworlf007 发表于 2019-9-17 23:36
你好,请教下,你的文件系统和log是在一个flash上的不同分区,还是在不同的flash上? ...

同一flash,不同分区
(58536389)

出0入16汤圆

 楼主| 发表于 2019-9-19 10:12:34 | 显示全部楼层
jameszxj 发表于 2019-9-19 09:18
同一flash,不同分区

你好,同一个flash,搞成不同的分区,log专门一个分区,如果掉电损坏文件,是不是只会损坏Log分区里面的东西,不会损坏同一flash上另外一个分区?
(58419275)

出0入0汤圆

发表于 2019-9-20 18:44:28 | 显示全部楼层
redworlf007 发表于 2019-9-19 10:12
你好,同一个flash,搞成不同的分区,log专门一个分区,如果掉电损坏文件,是不是只会损坏Log分区里面的 ...

基本上所说的损坏应该都是指因为写入的不完整导致的文件系统结构的破坏,分区就限定文件系统的范围,实际上分两个区都可以用不同的文件系统。因此一般情况下是不会损坏其他分区的。当然要说程序出错写到另外一个区的空间去,这也不是没有可能,如果程序真有BUG那也不会和断电关联到一起。
(58418831)

出25入4汤圆

发表于 2019-9-20 18:51:52 来自手机 | 显示全部楼层
ext4  日志模式,可以吗
(58222792)

出0入16汤圆

 楼主| 发表于 2019-9-23 01:19:11 来自手机 | 显示全部楼层
jameszxj 发表于 2019-9-20 18:44
基本上所说的损坏应该都是指因为写入的不完整导致的文件系统结构的破坏,分区就限定文件系统的范围,实际 ...

好的,谢谢了,我今天把sd nand先在pc上格式化为ext4,在戳到开发板上挂载上,然后反复重启或者断电,没有出现fat32的那种说没有卸载,或者需要fsck或者挂载不上的情况,明天试试用开发板格式化sd nand为ext4。
(58222770)

出0入16汤圆

 楼主| 发表于 2019-9-23 01:19:33 来自手机 | 显示全部楼层
john78 发表于 2019-9-20 18:51
ext4  日志模式,可以吗

可以,我正在弄。
(58146704)

出0入0汤圆

发表于 2019-9-23 22:27:19 | 显示全部楼层
坐等回复,正好入手了这个980的板子
(58141216)

出0入16汤圆

 楼主| 发表于 2019-9-23 23:58:47 | 显示全部楼层
renmin 发表于 2019-9-23 22:27
坐等回复,正好入手了这个980的板子

我已经开始用buildroot,自己做文件系统了。。。
(58093231)

出0入0汤圆

发表于 2019-9-24 13:18:32 | 显示全部楼层
关注一下
(58077006)

出0入0汤圆

发表于 2019-9-24 17:48:57 | 显示全部楼层
MARK一下。
(57757005)

出0入0汤圆

发表于 2019-9-28 10:42:18 | 显示全部楼层
redworlf007 发表于 2019-9-23 23:58
我已经开始用buildroot,自己做文件系统了。。。

我的板子到手了,准备学习学习了
(57735277)

出0入16汤圆

 楼主| 发表于 2019-9-28 16:44:26 | 显示全部楼层
renmin 发表于 2019-9-28 10:42
我的板子到手了,准备学习学习了

酷客的?
(57305553)

出0入0汤圆

发表于 2019-10-3 16:06:30 | 显示全部楼层
本帖最后由 renmin 于 2019-10-3 16:09 编辑


是的,谢谢,很有可能要吃灰了。
(57286285)

出0入16汤圆

 楼主| 发表于 2019-10-3 21:27:38 | 显示全部楼层
renmin 发表于 2019-10-3 16:06
是的,谢谢,很有可能要吃灰了。

我买的也是这个。
(53356142)

出0入42汤圆

发表于 2019-11-18 09:10:01 | 显示全部楼层
jameszxj 发表于 2019-9-16 21:10
不建议使用UBIFS,UBIFS的掉电性能比jffs2和yaffs2差,这点在官方页也有说明,我前阶段也在项目中遇到了掉 ...

UBI 的性能比YAFF2 好得多了; 就是耗费内存大点;
另外你说那个掉电后,文件系统坏的的,一般就是NAND 位反的问题;

反而YAFFS2 我才是不建议你用呢, 你可以看看大家用啥文件系统; 除了卖评估板配套的旧资料; 做项目用的都是UBI FS

文件系统性能比较:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(53354976)

出0入0汤圆

发表于 2019-11-18 09:29:27 | 显示全部楼层
polarbear 发表于 2019-11-18 09:10
UBI 的性能比YAFF2 好得多了; 就是耗费内存大点;
另外你说那个掉电后,文件系统坏的的,一般就是NAND  ...

谢谢建议,我说的是我们项目实际测试的情况,使用UBIFS出现好几次断电文件系统损坏的情况,换成YAFFS2就没再出现过。至于I/O性能,没有具体测过。
稳定性对我来说才是最重要的。

位反转是会由ECC算法来修正的,和文件系统关系不大,如果不能修正,就会报错了。
(50909639)

出0入0汤圆

发表于 2019-12-16 16:45:04 | 显示全部楼层
楼主你的980 uboot里可以使用网络嘛?
我的网络死活不通啊。。。
(41857976)

出0入0汤圆

发表于 2020-3-30 11:06:07 | 显示全部楼层
楼主,文件系统损坏问题解决没有?用的什么措施,最近也准备用NUC980,借鉴些经验。
文件系统选择:yaffs2?UBIFS?ext4?
(41773806)

出0入16汤圆

 楼主| 发表于 2020-3-31 10:28:57 | 显示全部楼层
openm4 发表于 2019-12-16 16:45
楼主你的980 uboot里可以使用网络嘛?
我的网络死活不通啊。。。

uboot下,我没用网路,我也不知道啊。
(41773755)

出0入16汤圆

 楼主| 发表于 2020-3-31 10:29:48 | 显示全部楼层
so_so_so_so 发表于 2020-3-30 11:06
楼主,文件系统损坏问题解决没有?用的什么措施,最近也准备用NUC980,借鉴些经验。
文件系统选择:yaffs2 ...

用并口的nand 和sd nand  没有问题,用spi nand会有问题,文件系统yaffs2.
(41768775)

出0入0汤圆

发表于 2020-3-31 11:52:48 | 显示全部楼层
redworlf007 发表于 2020-3-31 10:29
用并口的nand 和sd nand  没有问题,用spi nand会有问题,文件系统yaffs2.

谢谢,SPI-NAND的SPI时钟多高,会不会由于硬件走线影响?
(41760663)

出0入16汤圆

 楼主| 发表于 2020-3-31 14:08:00 | 显示全部楼层
so_so_so_so 发表于 2020-3-31 11:52
谢谢,SPI-NAND的SPI时钟多高,会不会由于硬件走线影响?

时钟多少我忘了,spi nand是断电丢数据或者损坏文件系统,这个应该和硬件走线没关系,我那个走线到CPU管脚很短的,而且是四层板。
(25149811)

出0入0汤圆

发表于 2020-10-9 20:15:32 | 显示全部楼层
jameszxj 发表于 2019-9-16 21:10
不建议使用UBIFS,UBIFS的掉电性能比jffs2和yaffs2差,这点在官方页也有说明,我前阶段也在项目中遇到了掉 ...

你的 rtems 用的什么芯片?好用吗
(24844519)

出0入0汤圆

发表于 2020-10-13 09:03:44 | 显示全部楼层
trigrass12 发表于 2020-10-9 20:15
你的 rtems 用的什么芯片?好用吗

稳定性和实时性都是比较出色的,芯片是cortex-A9,A7的国产芯片上也试过。
(18395106)

出0入0汤圆

发表于 2020-12-27 00:33:57 | 显示全部楼层
楼主 您内核里配置好spi nand flash了吗?我烧了rootfs到0x1600000,用的nuc980_iot_defconfig, 跑不起来啊...
挂不上文件系统。
(18360875)

出100入101汤圆

发表于 2020-12-27 10:04:28 来自手机 | 显示全部楼层
新唐的nuc980,用的人还蛮多的
(18149404)

出0入16汤圆

 楼主| 发表于 2020-12-29 20:48:59 | 显示全部楼层
sblpp 发表于 2020-12-27 00:33
楼主 您内核里配置好spi nand flash了吗?我烧了rootfs到0x1600000,用的nuc980_iot_defconfig, 跑不起来啊 ...

你检查下,那个默认配置貌似是ramfas。
(17972462)

出0入0汤圆

发表于 2020-12-31 21:58:01 | 显示全部楼层
redworlf007 发表于 2020-12-29 20:48
你检查下,那个默认配置貌似是ramfas。

已经把它去掉了,makemenuconfig里的一个配置,改成nandflash yaffs2的了。
真是服了xintang的骚操作了
(17652782)

出0入16汤圆

 楼主| 发表于 2021-1-4 14:46:01 | 显示全部楼层
sblpp 发表于 2020-12-31 21:58
已经把它去掉了,makemenuconfig里的一个配置,改成nandflash yaffs2的了。
真是服了xintang的骚操作了 ...

这个没啥问题啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-7-27 22:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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