免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4261 | 回复: 8

9260驱动导致系统崩溃 [复制链接]

论坛徽章:
0
发表于 2008-11-25 21:11 |显示全部楼层
8可用积分
我用的9260开发板子,然后自己做的新板子去掉了spi,mmc,usb,i2c,can。
然后烧写kernel和yaffs文件系统。出现异常信息.

重新定制和不重新定制kernel,都一样。重新定制是这样设置的,在menuconfig中去掉了MMC,USB,CAN,I2C,SPI的驱动。

无论重新定制与否都是如下情况,我在rc.sysinit中已经去掉了hwclock之类和驱动有关系的。
多次重启,有2种情况:
1.现在系统还是重启多次,有的时候能进入shell,会有一次能进入shell。在进入shell
  时候查看ls /dev
  dev下面的设备文件如下:
  [root@(none) /]# ls /dev
  console  log      null    tty      tty1    ttyS0    zero
  [root@(none) /]#
  手动运行udev,会造成segmentation fault错误如下:
[root@(none) /]# /etc/rc.d/udev
<1>Unable to handle kernel paging request at virtual address e121f004
pgd = c3ff0000
[e121f004] *pgd=00000000
Internal error: Oops: 805 [#2]
Modules linked in:
CPU: 0
PC is at init_timer+0x18/0x28
LR is at sock_init_data+0x4c/0x128
pc : [ <c003d444>]    lr : [ <c013f314>]    Not tainted
sp : c3f1be40  ip : c3f1be50  fp : c3f1be4c
r10: 00000017  r9 : c3f24ba0  r8 : c001fee4
r7 : 00000000  r6 : 00000000  r5 : 00000000  r4 : c3e161e0
r3 : e121f004  r2 : c3e16240  r1 : c3e16284  r0 : c3e162c0
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  Segment user
Control: 5317F
Table: 23FF0000  DAC: 00000015
Process udevstart (pid: 263, stack limit = 0xc3f1a250)
Stack: (0xc3f1be40 to 0xc3f1c000)
be40: c3f1be68 c3f1be50 c013f314 c003d43c 00000000 c3e161e0 c0235a04 c3f1be88
be60: c3f1be6c c0196e4c c013f2d8 c01967dc 00000802 00000000 c3e16060 c3f1bec4
be80: c3f1be8c c0197770 c0196dec c3f1bed0 c3f1bed0 fffffff4 c3f1bed0 beb19060
bea0: c3f24ba0 00000070 c3f1bed0 c001fee4 c3f1a000 4015f000 c3f1bf6c c3f1bec8
bec0: c013cba0 c01976f0 00000000 00000000 762f0001 722f7261 6e2f6e75 2f646373
bee0: 6b636f73 00007465 00000000 4001bba4 4001bba4 00000002 beb190a8 00000004
bf00: 40009254 4001bba4 40022d70 beb19180 4003a3b0 40009254 00000000 00000000
bf20: 00000001 00000611 4001bbd0 4001b8e8 00008ac1 40042d10 0000873c 00000001
bf40: 00000000 00000000 c3f1bf6c 00000002 00000000 00000002 00000005 00000066
bf60: c3f1bfa4 c3f1bf70 c013d574 c013cb38 c3c09cc0 c3f1bfa4 00000003 beb19060
bf80: 00000070 00000802 00000004 00000003 00000003 00000000 00000000 c3f1bfa8
bfa0: c001fd40 c013d498 00000003 00000000 00000003 beb19054 00000070 00000000
bfc0: 00000003 00000000 00000005 beb19440 beb19130 00000000 4015f000 00000024
bfe0: 00000000 beb19054 401349d4 401023d0 60000010 00000003 00000000 00000000
Backtrace:
[ <c003d42c>] (init_timer+0x0/0x2 from [ <c013f314>] (sock_init_data+0x4c/0x12
[ <c013f2c8>] (sock_init_data+0x0/0x12 from [ <c0196e4c>] (unix_create1+0x70/0xf
4)
r5 = C0235A04  r4 = C3E161E0
[ <c0196ddc>] (unix_create1+0x0/0xf4) from [ <c0197770>] (unix_stream_connect+0x90
/0x40
r6 = C3E16060  r5 = 00000000  r4 = 00000802
[ <c01976e0>] (unix_stream_connect+0x0/0x40 from [ <c013cba0>] (sys_connect+0x78
/0x9
[ <c013cb28>] (sys_connect+0x0/0x9 from [ <c013d574>] (sys_socketcall+0xec/0x1e4
)
r7 = 00000066  r6 = 00000005  r5 = 00000002  r4 = 00000000
[ <c013d488>] (sys_socketcall+0x0/0x1e4) from [ <c001fd40>] (ret_fast_syscall+0x0/
0x2c)
r5 = 00000000  r4 = 00000003
Code: e24cb004 e3a03000 e5803000 e59f3008 (e5933000)
Segmentation fault


2. 大多时候不能进入shell,打印信息Freeing init memory: 92K,然后停住了。

贴出最后的部分串口打印信息。
Starting kernel ...

Linux version 2.6.19 (root@global.localdomain) (gcc version 3.4.1 20040714 (Time
Sys 3.4.1-7)) #604 Mon Nov 24 20:18:10 CST 2008
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: Atmel AT91SAM9260-EK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 199 MHz, master 99 MHz, main 18.432 MHz
CPU0: D VIVT write-back cache
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
Built 1 zonelists.  Total pages: 16256
Kernel command line: mem=64M console=ttyS0,115200 root=/dev/mtdblock0
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 62628KB available (1752K code, 382K data, 92K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
audit: initializing netlink socket (disabled)
audit(0.440:1): initialized
JFFS2 version 2.2. (NAND) (SUMMARY)  (C) 2001-2006 Red Hat, Inc.
yaffs Nov 24 2008 16:07:23 Installing.
io scheduler noop registered
io scheduler anticipatory registered (default)
Analog-to-Digital Converter (irq 5)
at91_adc.0: register at /dev/adc0 (254:0)
at91_adc.1: register at /dev/adc1 (254:1)
GPIO: PB17 PB18 PB19
Max706 Watchdog Timer (timeout = 1sec,)
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL
atmel_usart.3: ttyS3 at MMIO 0xfffb8000 (irq = is a ATMEL_SERIAL
atmel_usart.4: ttyS4 at MMIO 0xfffd0000 (irq = 23) is a ATMEL_SERIAL
RAMDISK driver initialized: 4 RAM disks of 81920K size 1024 blocksize
macb macb: detected PHY at address 1 (ID 0013:78e2)
eth0: Atmel MACB at 0xfffc4000 irq 21 (00:02:34:56:78:19)
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit
)
Scanning device for bad blocks
Bad eraseblock 1513 at 0x017a4000
Creating 1 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x04000000 : "AT91 NAND partition 1"
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 15
yaffs: dev is 32505856 name is "mtdblock0"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.0, "mtdblock0"
block 1514 is bad
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 92K。

请高手指点一下是什么原因造成的?

最佳答案

查看完整内容

跟踪undev,看走到了你的驱动里的哪条线。感觉应该是你驱动实现的不全。

论坛徽章:
0
发表于 2008-11-25 21:11 |显示全部楼层

回复 #1 againyuan 的帖子

跟踪undev,看走到了你的驱动里的哪条线。

感觉应该是你驱动实现的不全。

论坛徽章:
0
发表于 2008-11-26 11:56 |显示全部楼层
有没有高手指点一下,多谢拉

论坛徽章:
0
发表于 2008-11-28 22:31 |显示全部楼层
我不是高手,不过貌似初试化的时候没锁好?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2008-11-28 22:37 |显示全部楼层
觉得会分析OOPS是很重要的。很惭愧,偶也不太熟

论坛徽章:
0
发表于 2008-12-01 14:23 |显示全部楼层
原帖由 samon_fu 于 2008-11-29 21:27 发表
跟踪undev,看走到了你的驱动里的哪条线。

感觉应该是你驱动实现的不全。


说的很对,我觉得是驱动没有实现好,导致udev去读取sysfs的时候出现问题,才fault。

现在问题是在驱动上,也不运行udev了。
可是现在我去掉了除串口外的大部分驱动,然后系统不能正常启动。或者启动到文件系统后就oops了。但是文件系统在原开发板运行正常,放在我的板子上就不行了,因为我的flash用的是k9f1208uoc,原来的板子用的k9f1208uob,不知道是否是这里的问题。

论坛徽章:
0
发表于 2008-12-02 12:00 |显示全部楼层
Scanning device for bad blocks
Bad eraseblock 1513 at 0x017a4000
Creating 1 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x04000000 : "AT91 NAND partition 1"

是不是这里的问题?
要不你换个flash试试?是不是flash有坏块啊。
在uboot里有flash test,你最好测试一下

论坛徽章:
0
发表于 2008-12-02 14:23 |显示全部楼层
我在uboot下,nand info,nand bad.都没有坏块。而且有坏块应该也不会影响呀。yaffs会打上标记,忽略的。
而且做了擦除、烧写、读出nand flash。而且进行了mtest测试。只要在uboot下,都很稳定。就是启动内核的时候出现oops。这和硬件有问题很矛盾呀,大侠还有什么办法?请教

论坛徽章:
0
发表于 2008-12-03 16:28 |显示全部楼层
现在我经过修改主频降下来了,系统也不崩溃了。
看来是有干扰呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP