QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1769|回复: 5

在s3c44b0上安装jffs2时的问题

[复制链接]
发表于 2005-9-9 15:56:23 | 显示全部楼层 |阅读模式
各位前辈好:  
    内核下载到板子上就出问题了,启动到中途时,发生了Internal error: Oops - undefined instruction: 10e00.
    请问谁能帮助我啊,这是什么原因造成的呢?或者提供给我在44b0上装jffs2的具体方法.
    谢谢啦!具体错误显示如下:
Internal error: Oops - undefined instruction: 10e00                                                   
CPU: 0      
pc : [<0c01183c>]    lr : [<0c012ae4>]    Not tainted
sp : 0c0a7f80  ip : 0000000e  fp : 00000000
r10: 0c00f750  r9 : ef900078  r8 : 0c0a7fbc
r7 : 60000013  r6 : 0c0ae390  r5 : 0c0d494c  r4 : 00001000
r3 : 0c011124  r2 : 00010e00  r1 : 00000000  r0 : 00010f00
Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  Segment user
Control: 0
Process swapper (pid: 0, stackpage=0c0a7000)
Stack:
0c0a7f60:                                      0c012ae4 0c01183c 40000093 ffffff
ff
0c0a7f80: 00010f00 00000000 00010e00 0c011124  00001000 0c0d494c 0c0ae390 0c0ae3
8c
0c0a7fa0: 0c0a8b34 07605781 0c00f750 0c0a7fd4  00000000 0c1dfea0 000ed360 0c012a
e4
0c0a7fc0: 60000013 00010f00 0c0a7fe4 0c0a7fd8  0c0110f0 0c012ad4 0c0a7ffc 0c0a7f
e8
0c0a7fe0: 0c00890c 0c0110e0 0c0a8b7c 0c0d494c  00000000 0c0a8000 0c008080 0c0087
c8
Backtrace: no frame pointer
Code: e59fc0a4 e59cc000 (ee01cf10) e3a0c013 e121f00c
Kernel panic: Attempted to kill the idle task!
In idle task - not syncing
发表于 2005-9-11 10:37:14 | 显示全部楼层
http://www.hzlitai.com.cn/download/nandflash/uclinuxnandflash1.asp
回复

使用道具 举报

发表于 2005-9-22 13:08:58 | 显示全部楼层
可能和我遇到的问题类似,由于44b0x的特殊性,没有地址重映射,所以中断向量表是放在Flash起始地址的,由于linux MTD中的Flash 芯片驱动在进入查询模式或者写模式的时候没有关闭中断,因此在读Flash Vender Info 或者写Flash的时候,遇到中断跳转就会出错,可以参考我的文章做修改:

http://sagitta.blogchina.com/164741.html
回复

使用道具 举报

 楼主| 发表于 2005-9-23 12:37:51 | 显示全部楼层
非常感谢john saqitta和haosf的回复
这个问题已经解决了,是通过注释掉了下面的if语句解决的.
if [ "$CONFIG_ALIGNMENT_TRAP" = "y" ]; then
   source drivers/mtd/Config.in
fi

但是现在又有新的问题了
就是用eraseall擦写mtd时,发生了如下错误:
/> erase /dev/mtd1
MTD_open
Erase Total 1 UniMTD_ioctl
MTD_ioctl
MTD_ioctl
ts
Erase Unit SBad mode in <NULL> handler detected: mode IRQ_32
Vectors:
Stubs:
Internal error: Oops: 0
CPU: 0
pc : [<00a5bfd4>]    lr : [<00134744>]    Not tainted
sp : 0c1effb8  ip : 0c1bfbbc  fp : 00000000
r10: 0c1b8004  r9 : 0c1ba624  r8 : 00000000
r7 : 0c1bfea0  r6 : 00000002  r5 : 00000002  r4 : 00000002
r3 : 14000000  r2 : 00134780  r1 : 0c1bfa9c  r0 : 0c1bfbbc
Flags: nzCv  IRQs off  FIQs on  Mode IRQ_32  Segment user
Control: 0
Process sh (pid: 12, stackpage=0c1ef000)
Stack:
0c1effe0:  00134744 00a5bfd4 20000092 ffffffff
Backtrace: no frame pointer
Code: da6a9edf 2c69066c (1fcbcf17) 58d91d8b ca8fc66b
                                                                                                           当第二次输入擦除命令又发生如下错误:
/> eraseall /dev/mtd1
MTD_open
MTD_ioctl
Erasing 64 KibytMTD_ioctl
Bad mode in <NULL> handler detected: mode IRQ_32
Vectors:
Stubs:
Internal error: Oops: 0
CPU: 0
pc : [<00a3bb2c>]    lr : [<0c07e3c8>]    Not tainted
sp : 0c1b1e48  ip : 0c1b1e90  fp : 0c1b1efc
r10: 0c0ea94c  r9 : 00180000  r8 : 0c1b0000
r7 : 0c17147c  r6 : 00000080  r5 : 0c0f3fa8  r4 : 00001e14
r3 : 00000191  r2 : 0000004b  r1 : 0000000d  r0 : 00000002
Flags: nzCv  IRQs off  FIQs on  Mode IRQ_32  Segment user
Control: 0
Process eraseall (pid: 15, stackpage=0c1b1000)
Stack:
0c1b1e80: 0c07e3c8 00a3bb2c 20000092 ffffffff  0c17147c 0c1b0000 0c15a2a0 00000003
0c1b1ea0: 00000000 00010000 00180000 0c171440  0c15a3a0 00000000 0c1b0000 00000000
0c1b1ec0: 00000000 00000000 0c1b0000 00000000  00000000 0c1b1f50 0c15a3a0 0c17a260
0c1b1ee0: 0c1b1f40 0c1b0000 00000000 0c1b0000  0c1b1f0c 0c1b1f00 0c081324 0c07da00
0c1b1f00: 0c1b1f88 0c1b1f10 0c082018 0c0812ec  00000000 00000000 00000000 0c1b0000
0c1b1f20: 0c1fd978 0c1fd978 00000000 00000028  00000000 0c1b0000 00000000 00000000
0c1b1f40: 00000000 0c1b0000 00000000 00000000  00000000 0c1b1f54 0c1b1f54 ffffffea
0c1b1f60: 0c010220 40084d02 ffffffe7 0c1abf3c  00000003 00000036 0c1a8004 0c1b1fac
0c1b1f80: 0c1b1f8c 0c03b494 0c081e40 00000040  00000020 00000003 0c1b0000 0c012880
0c1b1fa0: 00000000 0c1b1fb0 0c0126e0 0c03b2b0  00000040 0c017ec8 00000003 40084d02
0c1b1fc0: 0c1abf3c 00000000 00000040 00000020  00000003 00000028 0000000c 0c1a81d8
0c1b1fe0: 0c1a8004 00000000 00000001 0c1abf20  0010254c 00102518 60000010 00000003
Backtrace:
Function entered at [<0c07d9f0>] from [<0c081324>]
Function entered at [<0c0812dc>] from [<0c082018>]
Function entered at [<0c081e30>] from [<0c03b494>]
Function entered at [<0c03b2a0>] from [<0c0126e0>]
r8 = 0C012880  r7 = 0C1B0000  r6 = 00000003  r5 = 00000020
r4 = 00000040
Code: 499e67f3 ed1dcee7 (fff9ff7c) f397f69a 11bdf3eb
e @ 0 --  0 % complete.pid 15: failed 11

第三次擦除则出现如下错误,且死机了.
/> eraseall /dev/mtd1
MTD_open
MTD_ioctl
Erasing 64 KibytMTD_ioctl
e
@ 0 --  0 % complete.

这又是怎么回事呢?请各位指点.
回复

使用道具 举报

 楼主| 发表于 2005-9-28 12:28:07 | 显示全部楼层
我听有人说,44b0在擦除时不能产生中断,否则就会死机.
但是要在哪里,用什么办法禁止中断才好呢
我在eraseall.c中加入了cli和sti,可是却提示说没有定义
我们现在该怎么办呢
请大家帮忙!
回复

使用道具 举报

 楼主| 发表于 2005-10-10 17:25:57 | 显示全部楼层
为了避免擦除时无法擦除和死机的现象,我该在什么地方禁止中断呢
或者有什么其他办法可以使jffs2的flash分区可以正常擦除呢
请各位指点!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-3 02:24 , Processed in 0.067097 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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