3887|3

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

uclinux上jffs2擦除错误求助 [复制链接]

uclinux上挂载jffs2文件系统,eraseall 的时候失败。
CPU: S3C44B0X
Flash: Am29lv160D
MTD分区:
0x0~0x4ffff: u-boot, 0x50000~0x1effff: kernel & romfs, 0x1f0000~0x1fffff: user partition on jffs2
请问如下信息能说明什么问题?非常感谢~

eraseall /dev/mtd1
MTD_open
MTD_ioctl
Erasing 64 KibytMTD_ioctl
e @ 0 --  0 % comInternal error: Oops: b4bd70
CPU: 0
pc : [<0018412c>]    lr : [<0c6a247c>]    Not tainted
sp : 0c6aff1c  ip : 0c7b9e5c  fp : 0c7b9e58
r10: 0c2e8bf0  r9 : 0c2f3488  r8 : 001c0000
r7 : 00000000  r6 : 0000000b  r5 : 0000004c  r4 : 00000000
r3 : 00050000  r2 : 0c2f3480  r1 : 001c0000  r0 : 1848c05f
Flags: nzcv  IRQs off  FIQs on  Mode IRQ_32  Segment user
Control: 0
Process eraseall (pid: 29, stackpage=0c7b9000)
Stack:
0c7b9e20:                                                                 0c6a247c
0c7b9e40: 0018412c 00000092 1848c05f 0c7b9ee0  0c7b9e5c 0c0824ec 0c086b14 0c378580
0c7b9e60: 0c378598 0c7b8000 00000020 00000040  0c378540 0000ac65 0c378580 0c3282e0
0c7b9e80: 00000003 00000000 00010000 001c0000  0c378540 0c328520 00000000 0c7b8000
0c7b9ea0: 00000000 00000000 00000000 0c7b8000  00000000 00000000 0c7b9f44 0c328520
0c7b9ec0: 0c379460 0c7b9f34 0c7b8000 00000000  0c7b8000 0c7b9ef0 0c7b9ee4 0c0888a0
0c7b9ee0: 0c081894 0c7b9f7c 0c7b9ef4 0c089820  0c088868 0c0736e8 0c01c784 0c0890dc
0c7b9f00: 00000000 0c7b8000 00000000 00000000  00000000 0c7b8000 00000000 00000000
0c7b9f20: 00000000 00000000 0c7b8000 00000000  00000000 00000000 0c7b8000 00000000
0c7b9f40: 00000000 00000000 0c7b9f48 0c7b9f48  00000028 0c6aff38 40084d02 00000003
0c7b9f60: ffffffe7 0c015b20 00000036 0c0111a0  0c7b9fac 0c7b9f80 0c040c98 0c089618
0c7b9f80: 0c032550 0c7b9f90 00000040 00000003  0c6a7e0c 0c7b8000 0c015b20 0c6a6804
0c7b9fa0: 00000000 0c7b9fb0 0c015980 0c040a28  00000040 0c01b288 00000003 40084d02
0c7b9fc0: 0c6aff38 00000000 00000040 00000003  0c6a7e0c 0c6a7e08 0c6aff38 00000000
0c7b9fe0: 0c6a6804 00000000 00000001 0c6aff1c  0c6a247c 0c6a2448 60000010 00000003
Backtrace:
Function entered at [<0c086b04>] from [<0c0824ec>]
Function entered at [<0c081884>] from [<0c0888a0>]
Function entered at [<0c088858>] from [<0c089820>]
Function entered at [<0c089608>] from [<0c040c98>]
Function entered at [<0c040a18>] from [<0c015980>]
Code: 859df90d 3fb4bd70 (ad933530) 6ac94e59 92d7548a
Kernel panic: Aiee, killing interrupt handler

In interrupt handler - not syncing
plete.

最新回复

查到原因了,是中断引起的访问冲突,进amd_flash.c分别给 probe/erase/read/write 函数添加了中断屏蔽,现在已经能 mount 上jffs2分区了。 因为block数小于5,所以分区还是只读锁定,很多不懂的地方,请继续指教: http://topic.eeworld.net/u/20080422/09/83b3f21a-26e3-44db-b76c-662ab60a9ff8.html 谢谢各位的热心解答!  详情 回复 发表于 2008-4-22 10:52
点赞 关注

回复
举报

56

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
信息太少,给点提示,还是要靠你自己去跟踪调试:
不知道你这个问题是不是每次执行eraseall都会出来,如果是,我想还是比较好调一点
(1)用ksymoops处理下上面的错误信息,看看出错的堆栈;
(2)在关键函数,比如MTD_ioctl中,用prink打印一些重要数据的信息;
(3)如果有一些调试工具,比如BDI+调试器,可以跟踪调试内核;
(4)用KGDB来跟踪内核;

还有:
试下一块块擦除看有没有问题(其实就是写入0xff? 好像是的,好久没玩了,不确定)


 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
用ksymoops查查吧!
ksymoops配置方法
http://www.ucdot.org/article.pl?mode=thread&sid=04/02/29/2315219
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
查到原因了,是中断引起的访问冲突,进amd_flash.c分别给 probe/erase/read/write 函数添加了中断屏蔽,现在已经能 mount 上jffs2分区了。
因为block数小于5,所以分区还是只读锁定,很多不懂的地方,请继续指教:
http://topic.eeworld.net/u/20080422/09/83b3f21a-26e3-44db-b76c-662ab60a9ff8.html

谢谢各位的热心解答!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表