QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1057|回复: 0

求助: 2410,ARM Linux下程序运行十数分钟出错.

[复制链接]
发表于 2006-4-30 13:37:08 | 显示全部楼层 |阅读模式
华恒公司的2410开发板,配套kernel版本编号是Linux Kernel v2.4.18-rmk7-pxa1.
应用程序是一个基于MiniGUI 1.3的Ogg Vorbis播放器.
执行连续播放多个Ogg Vorbis文件,十数分钟后,出错停止,进程退出,终端提示:
                                                                                                                                             
kernel BUG at page_alloc.c:213!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0ab4000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: ffffffff
CPU: 0
pc : [<c0021b14>]    lr : [<c002959c>]    Not tainted
sp : c32dfdfc  ip : c32dfdb4  fp : c32dfe0c
r10: 00000afe  r9 : 00000000  r8 : 00000001
r7 : 00000000  r6 : c01e6634  r5 : c01e661c  r4 : 00000000
r3 : 00000000  r2 : 00000001  r1 : 00000001  r0 : 00000001
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment user
Control: C000317F  Table: 30AB4000  DAC: 00000015
Process angelage (pid: 79, stackpage=c32df000)
Stack: (0xc32dfdec to 0xc32e0000)
fde0:                            c002959c c0021b14 60000013 ffffffff c025cf80
fe00: c32dfe3c c32dfe10 c0042ba8 c0021ae0 20000013 00000101 c01e6838 c09e6470
fe20: 00000000 000001d2 c01e6834 c01e661c c32dfe6c c32dfe40 c0042f10 c0042964
fe40: c36014c0 00000000 c36014c0 c09e6470 00000047 c0356804 00000001 c36014c0
fe60: c32dfe7c c32dfe70 c0042c14 c0042ecc c32dfea4 c32dfe80 c003abfc c0042c04
fe80: 0000000c c36014c0 0000003b 00000556 00000020 0000001f c32dfed0 c32dfea8
fea0: c003b408 c003ab78 c0356774 c025d880 c36014c0 00000000 00000000 00000023
fec0: c09e6470 c32dff14 c32dfed4 c003b6a0 c003b2dc 00001000 00000001 c09e63c0
fee0: c003bba8 c32dff20 c36014e0 c09e63c0 c36014e0 00000000 c36014c0 c36014e0
ff00: c32de000 401e926c c32dff50 c32dff18 c003bca0 c003b4b4 c6b8281c c32dff78
ff20: 00001000 00001000 4001c000 00000000 c09e63c0 c36014e0 00002000 c36014c0
ff40: 4001b000 c32dff78 c32dff54 c0098f2c c003bc24 c3601440 00002000 c36014c0
ff60: ffffffea 00000000 4001b000 c32dffa4 c32dff7c c004983c c0098e80 c0026100
ff80: c01e4040 00002000 4001b000 00000009 00000003 c001c9a4 00000000 c32dffa8
ffa0: c001c820 c0049770 00002000 c0025dc8 00000009 4001b000 00002000 00000000
ffc0: 00002000 4001b000 00000009 020f2ca8 4001d000 00000001 401e926c bf1ff848
ffe0: 4012bed4 bf1ff828 4011ba68 4019ff24 60000010 00000009 00300425 000440a1
Backtrace:
Function entered at [<c0021ad0>] from [<c0042ba8>]
r4 = C025CF80
  Function entered at [<c0042954>] from [<c0042f10>]
  Function entered at [<c0042ebc>] from [<c0042c14>]
  Function entered at [<c0042bf4>] from [<c003abfc>]
  Function entered at [<c003ab68>] from [<c003b408>]
  Function entered at [<c003b2cc>] from [<c003b6a0>]
  Function entered at [<c003b4a4>] from [<c003bca0>]
  Function entered at [<c003bc14>] from [<c0098f2c>]
r8 = 4001B000  r7 = C36014C0  r6 = 00002000  r5 = C36014E0
r4 = C09E63C0
Function entered at [<c0098e70>] from [<c004983c>]
r8 = 4001B000  r7 = 00000000  r6 = FFFFFFEA  r5 = C36014C0
r4 = 00002000
Function entered at [<c0049760>] from [<c001c820>]
r8 = C001C9A4  r7 = 00000003  r6 = 00000009  r5 = 4001B000
r4 = 00002000
Code: eb001df9 e59f0014 eb001df7 e3a03000 (e5833000)
Aborted
                                                                                                                                             
程序出错,输出提示信息,退回到终端命令行,再运行程序或者BusyBox命令同样会出错.
                                                                                                                                             
"Process angelage (pid: 79, stackpage=c32df000)"中的angelage是应用程序可执行文件的名称.
程序中Vrobis的解码和播放在MiniGUI之外的一个线程中完成.
                                                                                                                                             
多次测试,都出现上述错误,发作时间却不都相同.
                                                                                                                                             
堆栈信息中可以回溯到的最早的函数调用是
"Function entered at [<c0049760>] from [<c001c820>]"?
根据System.map文件,地址<c001c820>对应的标号是ret_fast_syscall
<c0049760>对应的标号是sys_read
ret_fast_syscall是汇编代码中的标号?同进程调度有关?
                                                                                                                                             
                                                                                                                                             
请教各位大侠:
1.上述错误的具体含义是什么?释放NULL指针指向的空间?
2."Internal error: Oops: ffffffff"具体含义是啥?
3.导致上述错误的原因可能有哪些?
                                                                                                                                             
                                                                                                                                             
俺是新手,请各位不吝赐教,Thx.
BOW!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-26 21:15 , Processed in 0.174682 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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